springMVC 拦截器

来源:互联网 发布:网上网络兼职是真的吗 编辑:程序博客网 时间:2024/06/05 01:12

使用SpringMVC的拦截器 需要继承HandlerInterceptorAdapter类 

package com.zf.inteceptor;import java.util.Iterator;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Component;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;@Component("MyInteceptor")public class MyInteceptor extends HandlerInterceptorAdapter{//该方法是在进入control之前会执行@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {System.out.println("preHandle......................");String requestUrl = request.getRequestURI();if (requestUrl.matches(".+goIndex.do.*")) {     //可以用这种方式对某个action进行拦截 ,如果不这样 默认就是对所有control都拦截if(request.getSession().getAttribute("loginUser") == null){   request.getRequestDispatcher("/login.jsp").forward(request , response);                      }}return super.preHandle(request, response, handler);}//该方法是在执行完control之后再执行@Overridepublic void postHandle(HttpServletRequest request,HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {System.out.println("postHandle......................");Map model = modelAndView.getModel();//这里可以遍历执行完control之后,control方法返回的ModelAndView对象,并且可以修改里面的内容for (Iterator it = model.entrySet().iterator(); it.hasNext() ;) {System.out.println(it.next() + "\t\t-----------------------------------");;}super.postHandle(request, response, handler, modelAndView);}