1. 拦截器用途
(1)拦截未登录用户直接访问某些链接
(2)拦截日志信息
(3)拦截非法攻击,比如sql注入
2. 涉及jar、类
(1)spring-webmvc.jar
(2)HandlerInterceptor(org.springframework.web.servlet:接口)、
AsyncHandlerInterceptor(org.springframework.web.servlet:接口)、
HandlerInterceptorAdapter(org.springframework.web.servlet.handler.HandlerInterceptorAdapter:抽象类)
3.业务类
(1)实现(implements) 实现HandlerInterceptor接口或者子接口
(2)继承(extends) 继承HandlerInterceptor接口子类(抽象类)
(3)涉及的方法
preHandle、postHandle、afterCompletion
4.测试代码
LoginInterceptor
1 public booleanpreHandle(HttpServletRequest request, HttpServletResponse response, Object handlerthrowsException {2 LOGGER.info("--------preHandle-------" +request.getRequestURI());3 HttpSession session =request.getSession();4 String login_account = String.valueOf(session.getAttribute(CommonConstants.SESSION_KEY+session.getId()));5 if(!request.getRequestURI().contains("/baselogin/")){6 if (StringUtils.isBlank(login_account) || "null".equalsIgnoreCase(login_account)) {7 response.sendRedirect("/baselogin/loginPage.htm");8 return false; 9 }10 }11 return true;12 }13
14 public voidpostHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throwsException {15 LOGGER.info("--------postHandle-------" +request.getRequestURI());
16 }17
18 public voidafterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throwsException {19 LOGGER.info("--------afterCompletion-------" +request.getRequestURI());20 }21
22 public voidafterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throwsException {23 LOGGER.info("--------afterConcurrentHandlingStarted-------" +request.getRequestURI());24 }
执行顺序:preHandle -> controller -> postHandle -> afterCompletion
配置:
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
">