SSM-拦截器
来源:互联网 发布:漫画快速制作软件 编辑:程序博客网 时间:2024/06/10 03:47
ssm拦截器细节不用说了
1.DispatcherServlet
SpringMVC具有统一的入口DispatcherServlet,DispatcherServlet是ssm框架前置控制器,所有的请求都通过DispatcherServlet。配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则可以自己定义,定义规则可以上网查,这里不一一叙述了,把拦截下来的请求,首先进入方法doDispatch(HttpServletRequest request, HttpServletResponse response)经过一系列步奏,找到你要请求的目标Controller,最后交给他处理(没有其他的拦截器)来处理。如果没有handle处理器就会返回去,不再执行后面,所以说能拦截jsp页面,JS等静态资源,但是不能处理(缺陷解决在下面)。
那么在web.xml配置如下:
2.自定义拦截器
那么自定义拦截器又是怎么实现的了,和前置拦截器有什么关系了?首先请求通过统一入口进入DispatcherServlet,再DispatcherServlet里面有个方法寻找这个这个请求的处理器和Interceptor,这时候就会寻找到HandlerInterceptor 接口,或者是这个类继承实现了HandlerInterceptor 接口的类,就会找到你自定义的拦截器,继承HandlerInterceptor 有是三个方法,preHandle , postHandle 和 afterCompletion,preHandle 在业务处理器处理请求之前被调用,然后处理完请求就会调用postHandle,或者在视图渲染之前调用它,最后请求执行完,视图渲染完调用,DispatcherServlet完全处理完请求后被调用afterCompletion,可用于清理资源,如果定义多个拦截器,先定义的拦截器先执行preHandle,但是没有另外的两个方法,而是等待其他拦截器执行prehandle方法,知道最后一个拦截器执行完毕,也是从最后一个拦截器逆序执行这两个方法。
举个栗子: 自定义拦截器类处理未登录问题
- 注意:在login页面操作要放过
3-filter
spring mvc的拦截器只拦截controller不拦截jsp,html 页面文件,如果想要拦截那怎么办?
可以利用用过滤器filter,filter是在servlet前执行的,所以先执行filter后执行拦截器。访问页面时都进行过滤验证,如果存在该用户session,则访问该页面,否则跳转到登陆页面登录,保存session后访问其它页面,具体实现如下:
上面是具体实现,在web.xml配置如下:
- SSM-拦截器
- ssm配置拦截器
- 自定义拦截器(SSM)
- ssm:拦截器
- ssm--之拦截器
- ssm 拦截器
- SSM-8 登陆拦截器
- ssm框架之拦截器
- SSM整合之拦截器
- ssm拦截器和配置文件
- ssm(spring + springMVC + mybatis)拦截器
- SSM整合中拦截器的配置
- ssm整合拦截器的配置
- ssm整合拦截器JSP界面
- ssm整合中的拦截器的使用
- ssm之Struts(拦截器)
- SSM 框架拦截器:实现用户验证
- SSM设置拦截器不拦截某个页面
- xml 中需要用><时 <![CDATA[]>的用发
- 工厂设计模式的两种实现方式
- SSM框架搭建常见错误
- 字符串计数
- Hibernate查询Query给参数赋值的部分方法
- SSM-拦截器
- weightad interval scheduling problems
- 分布式数据库 HBase
- 19. Remove Nth Node From End of List
- android之一些骚操作
- Deep Learning(深度学习)学习笔记
- Android Studio----- 无法打印---log----问题总结
- spark on yarn 基本用法
- iOS Swift 检测网络是否连接