SpringMVC 拦截器(一):在写全局校验是否登录验证的时候碰到了一个问题,那就是拦截器,查了资料,晓得了 SpringMVC 的拦截器是配置在映射器中的。
- <bean class="org.springframework.web.servlet.mvc. method.annotation.RequestMappingHandlerMapping">
- <property name="interceptors">
- <list>
- <bean class="core.web.SpringMVCInterceptor">
- </bean>
- </list>
- </property>
- </bean>
上面是映射器配置 SpringMVCInterceptor 是我用于拦截器的类,最后再介绍拦截器类的编写。
RequestMappingHandlerMapping,RequestMappingHandlerAdapter 据我所知是在 Spring 3.1 中出现的(不知道准确不), 我们一般不写拦截器的时候一般不会去配置映射器和适配器,都是 SpringMVC 给我们默认配置,然而当你自己配置了映射器或适配器,那么这两个你必须自己配置完成,也就是必须成对配置如下:
然而自己当时特煞笔,一直没有配置适配器导致一直出错,所以大家一定不要忘记,哈哈。
下面介绍拦截器类:
- public class SpringMVCInterceptor implements HandlerInterceptor {@Autowired private SessionProvider sessionProvider;
- private static String notIntercept = "/manage";
- private static String login = "/login";
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception exception) throws Exception {}
- public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { // TODO Auto-generated method stub } //方法前拦截 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception { }}
- 1 preHandle方法实在请求处理前调用的,在此方法内,我们可以做登陆检查等前期工作。如果你返回true,
- 请求可以继续执行,返回false请求将被中断,
- 如果你没有用response重定向请求路径,那你就是会看到一片空白。2 postHandle: 处理后的回掉方法(在渲染视图前),你可以用ModelAndView对数据和视图进行处理。3 afterCompletion:整个请求完成后处理回调该方法(渲染试图完成后)。
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: http://www.92to.com/bangong/2017/03-06/18213930.html