spring拦截器

自定义拦截器

  1. 继承HandlerInterceptor
  2. xml文件里注册拦截器
  3. 配置拦截规则 可以正则 在里添加

具体方法:

  • boolean preHandle() 返回值:是否需要拦截请求 false请求会被终止 Object arg2表示被拦截的请求的目标对象
  • postHandle() 里面modelandview参数 可以更改c层传回视图层的数据modelandview

多个拦截器,执行顺序如下图:


spring拦截器_第1张图片

实现拦截器其他方式:
继承WebRequestInterceptor 注入springmvc框架方法不变 不同点是preHandle方法没有返回值

应用:

  1. 解决乱码问题。arg0.setCharacterEncoding("utf-8")
  2. 解决权限验证问题。if(arg0.getSession().getAttribute("user")==null){arg0.getRequestDispatcher("/login.jsp").forward(arg0,arg1); return false; }

拦截器和过滤器区别:
过滤器依赖于servlet容器,基于回调函数,过滤范围大
拦截器依赖框架容器,基于反射机制,只过滤请求

你可能感兴趣的:(spring拦截器)