spring拦截器(转自spring帮助文档)
来源:互联网 发布:java class 查看工具 编辑:程序博客网 时间:2024/05/22 07:41
Spring的处理器映射支持拦截器。当你想要为某些请求提供特殊功能时,例如对用户进行身份认证,这就非常有用。
处理器映射中的拦截器必须实现org.springframework.web.servlet包中的HandlerInterceptor接口。 这个接口定义了三个方法,一个在处理器执行前被调用,一个在处理器执行后被调用,另一个在整个请求处理完后调用。 这三个方法提供你足够的灵活度做任何处理前后的操作。
preHandle(..)方法有一个boolean返回值。 使用这个值,可以调整执行链的行为。 当返回true时,处理器执行链将继续执行,当返回false时,DispatcherServlet认为该拦截器已经处理完了请求(比如显示正确的视图),而不继续执行执行链中的其它拦截器和处理器。
下面的例子提供了一个拦截器,它拦截所有请求,如果当前时间不是在上午9点到下午6点,它将用户重定向到某个页面。
<beans> <bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="interceptors"> <list> <ref bean="officeHoursInterceptor"/> </list> </property> <property name="mappings"> <value> /*.form=editAccountFormController /*.view=editAccountFormController </value> </property> </bean> <bean id="officeHoursInterceptor" class="samples.TimeBasedAccessInterceptor"> <property name="openingTime" value="9"/> <property name="closingTime" value="18"/> </bean><beans>
package samples;public class TimeBasedAccessInterceptor extends HandlerInterceptorAdapter { private int openingTime; private int closingTime; public void setOpeningTime(int openingTime) { this.openingTime = openingTime; } public void setClosingTime(int closingTime) { this.closingTime = closingTime; } public boolean preHandle( HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Calendar cal = Calendar.getInstance(); int hour = cal.get(HOUR_OF_DAY); if (openingTime <= hour < closingTime) { return true; } else { response.sendRedirect("http://host.com/outsideOfficeHours.html"); return false; } }}
所有的请求都将被TimeBasedAccessInterceptor截获, 如果当前时间不在上班时间,用户会被重定向到一个静态html页面,提供诸如只有上班时间才能访问网站之类的告示。
Spring还提供了一个adapter类HandlerInterceptorAdapter让用户更方便的扩展HandlerInterceptor接口。
0 0
- spring拦截器(转自spring帮助文档)
- Interceptor登录拦截(Spring拦截器)
- myeclipse中关联spring doc帮助文档
- spring拦截器.学习.
- spring拦截器配置
- Spring 拦截器
- spring 拦截器例子
- Spring拦截器
- Spring MVC 拦截器
- Spring MVC 拦截器
- Spring MVC 拦截器
- spring MVC拦截器
- spring 拦截器例子
- Spring aop拦截器
- Spring MVC拦截器
- spring mvc 拦截器
- Spring动态拦截器
- spring mvc 拦截器
- eclipse项目中错误文件没有小红叉的解决办法
- Drupal 常用模块
- Android牛掰博客大搜集
- spring beans的写入工具——spring-beans-writer
- CentOS 6.0下SSH免密码登录配置
- spring拦截器(转自spring帮助文档)
- PageRank算法简介及Map-Reduce实现
- 论证是一门学问 如何让你的观点有说服力-13 信息来源 Sources
- POI操作 导出Excel表格
- java web mvc思想介绍
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- Eucalyptus学习汇总
- POJ 3667 Hotel (线段树区间合并 )
- inline elment new line