当前位置: 首页 > news >正文

做投诉网站赚钱吗平面图用什么软件做

做投诉网站赚钱吗,平面图用什么软件做,wordpress mkv格式,口岸地区网站建设内容在 Spring 框架中,过滤器(Filter) 和 拦截器(Interceptor) 都是用于处理 HTTP 请求的中间件,但它们在作用范围、实现方式和生命周期上有显著区别。以下是详细对比和实现方式:核心区别特性过滤器…

在 Spring 框架中,过滤器(Filter)拦截器(Interceptor) 都是用于处理 HTTP 请求的中间件,但它们在作用范围、实现方式和生命周期上有显著区别。以下是详细对比和实现方式:


核心区别

特性过滤器 (Filter)拦截器 (Interceptor)
规范Servlet 规范 (J2EE 标准)Spring 框架特有
作用范围所有 Web 资源(Servlet、JSP、静态资源)仅 Spring MVC 管理的 Controller 请求
依赖依赖 Servlet 容器(如 Tomcat)依赖 Spring 容器
拦截时机在请求进入 Servlet 前 / 响应发送到客户端前在请求进入 Controller 前 / 后 / 视图渲染后
获取 Spring Bean不能直接获取(需通过工具类)可直接获取 Spring Bean
异常处理无法使用 Spring 的异常处理机制可结合 @ControllerAdvice 统一异常处理

实现方式

1. 过滤器 (Filter) 实现

过滤器是 Servlet 规范的一部分,通过实现 javax.servlet.Filter 接口实现。

步骤:

  1. 创建 Filter 类
import javax.servlet.*;
import java.io.IOException;public class CustomFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) {// 初始化逻辑}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {// 1. 请求到达 Controller 前的逻辑System.out.println("Before Controller (Filter)");// 放行请求chain.doFilter(request, response);// 2. 响应返回客户端前的逻辑System.out.println("After Controller (Filter)");}@Overridepublic void destroy() {// 销毁逻辑}
}
  1. 注册过滤器(Spring Boot 中)
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class FilterConfig {@Beanpublic FilterRegistrationBean<CustomFilter> customFilter() {FilterRegistrationBean<CustomFilter> bean = new FilterRegistrationBean<>();bean.setFilter(new CustomFilter());bean.addUrlPatterns("/*"); // 拦截所有路径bean.setOrder(1); // 执行顺序return bean;}
}

2. 拦截器 (Interceptor) 实现

拦截器是 Spring MVC 的组件,通过实现 HandlerInterceptor 接口。

步骤:

  1. 创建 Interceptor 类
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;@Component
public class CustomInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {// 在 Controller 方法执行前调用System.out.println("Before Controller (Interceptor)");return true; // true=放行, false=中断请求}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {// 在 Controller 方法执行后、视图渲染前调用System.out.println("After Controller (Interceptor)");}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {// 在整个请求完成后调用(视图渲染完毕)System.out.println("After View Render (Interceptor)");}
}
  1. 注册拦截器
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class InterceptorConfig implements WebMvcConfigurer {@Autowiredprivate CustomInterceptor customInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(customInterceptor).addPathPatterns("/**")    // 拦截所有路径.excludePathPatterns("/login"); // 排除路径}
}

执行顺序示例

假设请求路径被过滤器和拦截器同时拦截:

1. Filter: doFilter() [前逻辑]
2. Interceptor: preHandle()
3. Controller 方法执行
4. Interceptor: postHandle()
5. 视图渲染
6. Interceptor: afterCompletion()
7. Filter: doFilter() [后逻辑]

如何选择?

场景推荐使用
全局日志、字符编码、安全过滤Filter
权限验证、参数预处理Interceptor
需要 Spring 容器功能Interceptor
非 Spring 项目Filter

最佳实践:优先使用 Interceptor(可集成 Spring 特性),若需处理静态资源或深度请求/响应修改,则用 Filter。

http://www.dtcms.com/a/463015.html

相关文章:

  • 湛江网站建设方案报价wordpress 调用
  • 公司简介网站模板天津专业做网站
  • Unity中MonoBehavior类中的延迟函数Invoke详解(含案例)
  • app软件下载网站源码无锡企业网站
  • 公司注册网站建设延庆免费网站建设
  • 网站的新闻模块怎么做石家庄语音网站建设公司
  • AIGC入门,手搓大模型客户端与MCP交互第2集
  • 世纪城网站建设电子商务是干什么的专业
  • 网站开发绩效考核唐山市建设局网站
  • 32位汇编:实验7Win32汇编程序的编程环境
  • 怎么做海淘网站阿里巴巴外贸圈app
  • 如何建设一个电商网站久久建筑网官网登录
  • 深圳市罗湖区网站建设搜索引擎seo优化平台
  • 京东商品详情深度解析:从接口调用到商业价值挖掘的技术实现
  • dede网站seo生产企业网站有哪些
  • 行业网站开发公司有哪些免费做外贸网站
  • 怎么使用dw做一个网站阿里巴巴建设网站
  • 南通网站定制企业互联网网站名字
  • 太仓网站建设有限公司火车头 wordpress4.9
  • 基于51单片机的超声波智能避障小车
  • 郑州网站建设网站建设小型培训机构网站开发毕业设计
  • 网站设计方案范文怎么做交易猫假网站
  • Altium Designer6转嘉立创 gerber文件
  • 饰品网站模板网站建设 中企动力中山
  • 葫芦岛网站建设找思路小程序怎么做出来的
  • 五通桥移动网站建设网站免费网站免费片黄入口蜜桃观看射破屁屁
  • 欧美网站建设排名大全网格建设专业好不好
  • 自己制作遥感深度学习数据集进行遥感深度学习地物分类-试读
  • 网站模板psd素材python安装wordpress
  • 河南南阳油田网站建设网站权重到底是什么