springMVC之拦截器
2024-09-07 16:29:17
有两种方法配置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! -->
</mvc:interceptors>
方案2:
<!-- 配置自己定义拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/user/add" /> <!-- 仅仅拦截加入用户 -->
<bean class="com.zdp.interceptor.MyInterceptor2"></bean>
</mvc:interceptor>
</mvc:interceptors>
最新文章
- C /C++ 语言练习册
- 基于 jQuery 实现的精致作品集图片导航效果
- 学习Django
- codeforces 580C Kefa and Park(DFS)
- codeforces 682C Alyona and the Tree DFS
- 11个显著提升 ASP.NET 应用程序性能的技巧——第1部分
- xcode 6.4模拟器出现多个相同版本:OSX Yosemite 上安装xcode7 beta和xcode6.4
- Golang下通过syscall调用win32的dll(calling Windows DLLs from Go )
- mybaitis配置信息
- 让js调试更简单—console
- [UOJ] #217. 【UNR #1】奇怪的线段树
- 两个fragment之间简单的跳转
- Selenium 3----控制浏览器操作
- 【随笔】借鉴 &; KPI式设计
- Cassandra的数据模型的理解
- java Web的MVC最基础暂定分层包
- java接口对接——调用别人接口推送数据
- Limu:JavaScript的那些书
- bzoj2453/2120 数颜色
- JMeter ——Test fragment
热门文章
- LaTeX 插图片
- python多线程编程代码
- POJ 1715
- 【转载】tslib移植_freescale imx6
- POI 导入excel数据自己主动封装成model对象--代码分析
- hdoj-1312-Red and Black
- JDBC连接mysql增删改查整体代码
- cocos2d-x 移植到android中编译的一些问题:fatal error: Box2D/Box2D.h: No such file or directory&;quot;
- Sambaserver搭建
- Spannable对textview首行缩进的设置