首页 > 代码库 > springMVC之拦截器
springMVC之拦截器
有两种方法配置spring的拦截器
1. 实现接口: HandleInterceptor
public class MyInterceptor1 implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception e) throws Exception { System.out.println("最后运行。!!一般用于释放资源。。"); } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView model) throws Exception { System.out.println("Action运行之后,生成视图之前运行!!"); } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception { System.out.println("action之前运行!!
!"); return true; // 继续运行action } }
a) preHandle
该方法在action运行前运行。能够实现对数据的预处理。比方:编码、安全控制等。
假设方法返回true,则继续运行action。
b) postHandle
该方法在action运行后,生成视图前运行。在这里。我们有机会改动视图层数据。
c) afterCompletion
最后运行。通经常使用于释放资源,处理异常。
我们能够依据ex是否为空,来进行相关的异常处理。
由于我们在平时处理异常时,都是从底层向上抛出异常。最后到了spring框架从而到了这种方法中。
2. 继承适配器: HandleInterceptorAdapter
public class MyInterceptor2 extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("MyInterceptor2.preHandle()"); return true; // 继续运行action } }
3. 配置user-servlet.xml
方案1:
<!-- 配置自己定义拦截器 --> <mvc:interceptors> <bean class="com.zdp.interceptor.MyInterceptor1"></bean> <!-- 拦截全部的url!方案2:--> </mvc:interceptors>
<!-- 配置自己定义拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/user/add" /> <!-- 仅仅拦截加入用户 --> <bean class="com.zdp.interceptor.MyInterceptor2"></bean> </mvc:interceptor> </mvc:interceptors>
springMVC之拦截器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。