springmvc之拦截器(对比过滤器)
来源:互联网 发布:自学编程从入门到精通 编辑:程序博客网 时间:2024/06/14 02:25
拦截器的基本工作原理:对请求的东西做过滤;
过滤器跟拦截器很相似;
比如(过滤器案例):
[ 以上登录名是中文,则在控制中心接收过来的登录名参数值是乱码,解决办法就是拦截器]
springmvc提供的org.springframework.web.filter.CharacterEncoding.class,把它配置在web.xml里;
[<init-param>对过滤器encoding做一个初始化操作“*”所有请求都在这过滤]
1:拦截器的实现(编写拦截器的类),让此类去实现HandlerInterceptor接口并重写里面的虚方法(3个)
2:注册拦截器(写了拦截器类,不配到springmvc的配置文件里,就不起作用)
他的配置文件(spring-mvc.xml这个名字不固定,可改)名字一般是在web.xml里能找到
在里面加上
<!--多个拦截器-->
<mvc:interceptors>
<bean>拦截器实现类的全类名(带包的)</bean>
</mvc:interceptors>
注意一定得倒命名空间:xmlns:mvc="http://www.springframework.org/schema/mvc"
还有相关的mvc的包后面的xsd一定得注意;
【那这个所有的请求都会经过这个拦截器(也就是正确情况下,所有值都可传进来),但是我们要设规则,对部分请求做拦截】
3:配置拦截器的拦截规则
用<mvc:interceptor>
<mvc:mapping path=" /view"/>
<bean>拦截器实现类的全类名(带包的)</bean>
</mvc:interceptor>
<!--给访问的所有/view路径下的方法全部拦截具体拦截做什么在拦截类里边-->
拦截器里的三个重写方法:
postHandle(HttpservletRequest arg0,HttpServletResponse arg1,Object arg2,ModelAndView arg3);
这个方法一般对cotroller里返回的视图结果做修改
[以上.addObject()是对返回内容做了修改;.setViewName()是对返回的视图页面做修改,把原本返回到1页面的东西返回给了2页面]
afterCompletion 只是一般对请求后的资源,流,等做销毁等作用方法;
preHandle方法
请求被终止就访问不到;
举例,一个车去北京经过两个收费站,回来时先经过2在经过1;回来时发票应该先是2寄回来再是1;
拦截器的实现还有下面这种方法:
implements WebRequestInterceptor
但是preHandle不是boole类型,阻止不了请求,所以一般不用,其他配置,使用原理同上
1:场景代码,先在配置文件中(解决乱码这里是拦截器跟之前过滤器一个功能)
拦截器类里代码
2:解决权限(比如只有登录成功的人才能访问其他的事)
[假如所有登录信息存在session会话里,判断回话里有这个登录人没,没有则请求转发到登录页面,并把请求跟响应的参数传过去,且终止请求]
[拦截器就可以过滤资源等]
过滤器是java技术依赖于tomcat的;拦截器框架自带的框架接口
- springmvc之拦截器(对比过滤器)
- 过滤器和拦截器(SpringMVC实现)
- springmvc 拦截器及过滤器
- SpringMVC拦截器与过滤器
- Java过滤器,拦截器,监听器对比
- Java过滤器与SpringMVC拦截器
- springmvc过滤器和拦截器的区别
- SpringMVC使用拦截器和过滤器
- springMVC之拦截器
- SpringMVC之拦截器
- SpringMVC之Web-拦截器(八)
- Java过滤器与SpringMVC拦截器之间的关系与区别 过滤器与拦截器
- SpringMVC拦截器之拦截跳转页面
- Filter(过滤器/拦截器)
- springMVC之拦截器详解
- springMVC之拦截器-HandlerInterceptor
- SpringMVC之Interceptor拦截器
- SpringMVC-3之拦截器
- nodejs 在路由中使用通配符以及转交控制权
- 深入浅出UML类图
- 热销超极本iFunk翼S到底怎么样?
- 区块链技术相关论文、文档
- 一文弄懂神经网络中的反向传播法——BackPropagation
- springmvc之拦截器(对比过滤器)
- Java学习笔记之集合(七):Map集合的方法
- android吐司
- android获取ros数据
- 汽车ABS结构和工作原理分析
- 解决sping 定时任务在tomcat发布时执行2次的问题
- MyBatis实现原理和代码解读
- js&ajax 替换CKEDITOR中的值
- Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning论文笔记