vk社交网站做婚介,网站服务器租用报价,wordpress数据库修改域名,263云通信企业邮箱1. 简介
拦截器#xff08;Interceptor#xff09;类似于过滤器#xff08;Filter#xff09; Spring MVC的拦截器作用是在请求到达控制器之前或之后进行拦截#xff0c;可以对请求和响应进行一些特定的处理。拦截器可以用于很多场景下#xff1a; 1. 登录验证#xf…1. 简介
拦截器Interceptor类似于过滤器Filter Spring MVC的拦截器作用是在请求到达控制器之前或之后进行拦截可以对请求和响应进行一些特定的处理。拦截器可以用于很多场景下 1. 登录验证对于需要登录才能访问的网址使用拦截器可以判断用户是否已登录如果未登录则跳转到登录页面。 2. 权限校验根据用户权限对部分网址进行访问控制拒绝未经授权的用户访问。 3. 请求日志记录请求信息例如请求地址、请求参数、请求时间等用于排查问题和性能优化。 4. 更改响应可以对响应的内容进行修改例如添加头信息、调整响应内容格式等。 拦截器和过滤器的区别在于它们的作用层面不同。 * 过滤器更注重在请求和响应的流程中进行处理可以修改请求和响应的内容例如设置编码和字符集、请求头、状态码等。 * 拦截器则更加侧重于对控制器进行前置或后置处理在请求到达控制器之前或之后进行特定的操作例如打印日志、权限验证等。 2. 定义拦截器
实现HandlerInterceptor接口 选择性实现preHandle、postHandle、afterCompletion方法 * preHandle处理器方法调用之前执行 只有该方法有返回值返回值是布尔类型true放行false拦截。 * postHandle处理器方法调用之后执行 * afterCompletion渲染完成后执行 public class Interceptor1 implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandle执行啦);return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(postHandle执行啦);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(afterCompletion执行啦);}
} 3. 配置拦截器
方式一 要在springmvc.xml中导入对应的包进行扫描 !--配置拦截器基本方式基于xml文件配置注意默认对所有请求进行拦截--mvc:interceptors!--第一种方式导入全类名--bean classcom.itgyl.springmvc.interceptors.Interceptor1/bean/mvc:interceptors
方式二基于注解实现 !--配置拦截器基本方式基于xml文件配置注意默认对所有请求进行拦截--mvc:interceptors!--第二种方式基于注解自动装配--ref beaninterceptor1/ref/mvc:interceptors
Component
public class Interceptor1 implements HandlerInterceptor {
4. 高级配置 !--拦截器高级配置--mvc:interceptorsmvc:interceptor!--对所有路径进行过滤--mvc:mapping path/**/!--除了该路径不过滤--mvc:exclude-mapping path/ok/ref beaninterceptor1/ref/mvc:interceptor/mvc:interceptors