1,创建LoginInterceptor
public class LoginInterceptor implements HandlerInterceptor { /*** * handler中处理请求的方法,完全执行完毕之后,执行该方法 对handler中的方法进行异常的统一处理 和 进行日志记录 * * **/ @Override public void afterCompletion(HttpServletRequest req, HttpServletResponse resp, Object obj, Exception ex) throws Exception { System.out.println("============afterCompletion"); } /*** * handler中处理请求的方法,返回ModelAndView对象之前执行 对象ModelAndView进行统一处理 * */ @Override public void postHandle(HttpServletRequest req, HttpServletResponse resp, Object obj, ModelAndView mav) throws Exception { System.out.println("============postHandle"); } /*** * handler中处理请求的方法之前执行 * * @return 控制者被拦截的handler是否进行放行 * **/ @Override public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object obj) throws Exception { System.out.println("============preHandle"); HttpSession session = req.getSession(); Object uname = session.getAttribute("user"); if (uname != null) { // 用户已经登陆,放行 return true; } // 跳转到登陆页面 resp.sendRedirect(req.getContextPath()+"/login.jsp"); return false; } }
42
1
public class LoginInterceptor implements HandlerInterceptor {
2
/***
3
* handler中处理请求的方法,完全执行完毕之后,执行该方法 对handler中的方法进行异常的统一处理 和 进行日志记录
4
*
5
* **/
6
@Override
7
public void afterCompletion(HttpServletRequest req,
8
HttpServletResponse resp, Object obj, Exception ex)
9
throws Exception {
10
System.out.println("============afterCompletion");
11
12
}
13
14
/***
15
* handler中处理请求的方法,返回ModelAndView对象之前执行 对象ModelAndView进行统一处理
16
* */
17
@Override
18
public void postHandle(HttpServletRequest req, HttpServletResponse resp,
19
Object obj, ModelAndView mav) throws Exception {
20
System.out.println("============postHandle");
21
}
22
23
/***
24
* handler中处理请求的方法之前执行
25
*
26
* @return 控制者被拦截的handler是否进行放行
27
* **/
28
@Override
29
public boolean preHandle(HttpServletRequest req, HttpServletResponse resp,
30
Object obj) throws Exception {
31
System.out.println("============preHandle");
32
HttpSession session = req.getSession();
33
Object uname = session.getAttribute("user");
34
if (uname != null) {
35
// 用户已经登陆,放行
36
return true;
37
}
38
// 跳转到登陆页面
39
resp.sendRedirect(req.getContextPath()+"/login.jsp");
40
return false;
41
}
42
}
2,在springmvc.xml里面注册自定义拦截器
<!-- 注册拦截器 --> <mvc:interceptors> <mvc:interceptor> <!-- 指定需要拦截的路径 --> <mvc:mapping path="/**"/> <!-- 指定不需要拦截的路径 --> <mvc:exclude-mapping path="/user/login*"/> <!-- 实例化自定义拦截器类 --> <bean class="com.sxt.inteceptor.LoginInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
1
12
1
<!-- 注册拦截器 -->
2
<mvc:interceptors>
3
<mvc:interceptor>
4
<!-- 指定需要拦截的路径 -->
5
<mvc:mapping path="/**"/>
6
<!-- 指定不需要拦截的路径 -->
7
<mvc:exclude-mapping path="/user/login*"/>
8
<!-- 实例化自定义拦截器类 -->
9
<bean class="com.sxt.inteceptor.LoginInterceptor"></bean>
10
</mvc:interceptor>
11
</mvc:interceptors>
12