springmvc拦截器和拦截器执行顺序
来源:互联网 发布:java保留小数点后一位 编辑:程序博客网 时间:2024/06/05 05:01
springmvc拦截器和拦截器执行顺序
HandlerInterceptor和HandlerInterceptorAdapter
HandlerInterceptor接口,子类实现后要实现接口中所有方法。
HandlerInterceptorAdapter抽象类,子类继承后重写需要使用到的方法即可。
自定义拦截器执行顺序
自定义拦截器FirstInterceptor:
public class FirstInterceptor implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("FirstInterceptor.afterCompletion()"); } @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { System.out.println("FirstInterceptor.postHandle()"); } @Override public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("FirstInterceptor.preHandle()"); return true; }}
自定义拦截器SecondInterceptor
public class SecondInterceptor implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("SecondInterceptor.afterCompletion()"); } @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { System.out.println("SecondInterceptor.postHandle()"); } @Override public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("SecondInterceptor.preHandle()"); return true; }}
springmvc配置文件的配置如下:
<mvc:interceptors> <bean class="com.springmvc.intercepter.FirstInterceptor" /> <bean class="com.springmvc.intercepter.SecondInterceptor" /> </mvc:interceptors>
执行顺序:
FirstInterceptor.preHandle()SecondInterceptor.preHandle()SecondInterceptor.postHandle()FirstInterceptor.postHandle()SecondInterceptor.afterCompletion()FirstInterceptor.afterCompletion()
自定义拦截器抛出异常的执行处理
- FirstInterceptor方法preHandle抛异常
FirstInterceptor.preHandle()七月 06, 2017 9:48:33 上午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet [springDispatcherServlet] in context with path [/springmvc] threw exception [Request processing failed; nested exception is java.lang.Exception] with root causejava.lang.Exception
以上,
FirstInterceptor.preHandle()执行抛异常
->SecondInterceptor.preHandle()不执行
->SecondInterceptor.postHandle()不执行
->FirstInterceptor.postHandle()不执行
->SecondInterceptor.afterCompletion()不执行
->FirstInterceptor.afterCompletion()不执行
- SecondInterceptor方法preHandle抛异常
FirstInterceptor.preHandle()SecondInterceptor.preHandle()FirstInterceptor.afterCompletion()七月 06, 2017 9:51:45 上午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet [springDispatcherServlet] in context with path [/springmvc] threw exception [Request processing failed; nested exception is java.lang.Exception] with root causejava.lang.Exception
以上,
FirstInterceptor.preHandle()执行
->SecondInterceptor.preHandle()执行抛异常
->SecondInterceptor.postHandle()不执行
->FirstInterceptor.postHandle()不执行
->SecondInterceptor.afterCompletion()不执行
->FirstInterceptor.afterCompletion()执行
- FirstInterceptor方法postHandle抛异常
FirstInterceptor.preHandle()SecondInterceptor.preHandle()SecondInterceptor.postHandle()FirstInterceptor.postHandle()SecondInterceptor.afterCompletion()FirstInterceptor.afterCompletion()七月 06, 2017 10:05:56 上午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet [springDispatcherServlet] in context with path [/springmvc] threw exception [Request processing failed; nested exception is java.lang.Exception] with root causejava.lang.Exception
FirstInterceptor.preHandle()执行
->SecondInterceptor.preHandle()执行
->SecondInterceptor.postHandle()执行
->FirstInterceptor.postHandle()执行抛异常
->SecondInterceptor.afterCompletion()执行
->FirstInterceptor.afterCompletion()执行
- SecondInterceptor方法postHandle抛异常
FirstInterceptor.preHandle()SecondInterceptor.preHandle()SecondInterceptor.postHandle()SecondInterceptor.afterCompletion()FirstInterceptor.afterCompletion()七月 06, 2017 10:00:10 上午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet [springDispatcherServlet] in context with path [/springmvc] threw exception [Request processing failed; nested exception is java.lang.Exception] with root causejava.lang.Exception
FirstInterceptor.preHandle()执行
->SecondInterceptor.preHandle()执行
->SecondInterceptor.postHandle()执行抛异常
->FirstInterceptor.postHandle()不执行
->SecondInterceptor.afterCompletion()执行
->FirstInterceptor.afterCompletion()执行
- springmvc拦截器和拦截器执行顺序
- 拦截器执行顺序
- springMVC拦截器执行过程和使用
- 12.2、拦截器配置和执行顺序
- springMVC中多个拦截器Interceptor的执行顺序
- springMVC中多个拦截器Interceptor的执行顺序
- springMVC中多个拦截器Interceptor的执行顺序
- SpringMVC多拦截器的方法执行顺序
- SpringMVC自定义多个拦截器执行顺序
- springMVC中多个自定义拦截器方法的执行顺序
- springMVC中多个拦截器Interceptor的执行顺序
- java拦截器执行顺序
- Struts2拦截器执行顺序
- Struts2拦截器执行顺序
- Struts2拦截器执行顺序
- Struts2拦截器执行顺序
- Struts2拦截器执行顺序
- 拦截器的执行顺序
- 算法竞赛入门经典 文件输入输出 重定向和fopen
- 【ML--01】第一课 机器学习概述
- pclint 常用屏蔽错误方法,已实测
- 牛人阿里面试总结
- 求空间两条直线之间的距离
- springmvc拦截器和拦截器执行顺序
- 多表sql查询求和
- android 限制 EditText 最大输入字符数并显示已经输入字符数
- 为什么负数除二和右移一位的结果不一样?
- AngularJs之helloWorld,初步了解control
- 32位浮点数转十进制
- 操作系统之处理机调度与死锁
- 康拓展开 讲解+模板
- IIS设置HTTP 响应标头控制文件下载