Spring 拦截器的使用 例子

来源:互联网 发布:ubuntu iso镜像文件 编辑:程序博客网 时间:2024/05/22 00:28

在applicationContext.xml 中配置如下:(此配置拦截 /dynamic/dynamic.do中  action 以 checklogin  字符串结尾的请求)

 

 <mvc:interceptors>          <mvc:interceptor>              <!--设置拦截的路径  mvc:mapping指定到哪个action ,  用mappingURL匹配方法-->              <mvc:mapping path="/dynamic/dynamic.do" />              <bean class="com.weshare.common.web.LoginInterceptorController">              <property name="mappingURL" value="^.*checklogin$" />            </bean>          </mvc:interceptor>      </mvc:interceptors>  


拦截器类: 说明都在注释里面

public class LoginInterceptorController extends HandlerInterceptorAdapter {public LoginInterceptorController() {// TODO Auto-generated constructor stub}private String mappingURL;// 利用正则映射到需要拦截的路径public void setMappingURL(String mappingURL) {this.mappingURL = mappingURL;}/** * 在Controller方法前进行拦截 */public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {/* 在aC-context.xml中匹配的 /dynamic/dynamic.do, 在这里匹配action 拦截对应的方法String url = request.getRequestURL().toString();  /dynamic/dynamic.dorequest.getParameter("action");   addDynamic*/String url = request.getParameter("action");if (mappingURL == null || url.matches(mappingURL)) {System.out.println("匹配成功、");//TODOreturn true;}System.out.println("preHandle()");return true;}/** * This implementation is empty. */public void postHandle(HttpServletRequest request,HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {System.out.println("postHandle()");}/** * 在Controller方法后进行拦截 */public void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex)throws Exception {System.out.println("afterCompletion()");}}


 

0 0