为了防止用户在不登录的情况下通过并接请求直接访问系统,我们需要通过session和拦截器来防止这样的情况。
拦截器的配置:
为拦截器建立一个包:interceptor,并在包里建立 LoginInterceptor 拦截器类

拦截器需要 implements HandlerInterceptor,并实现 HandlerInterceptor 的方法:
1/** 2 * 登录拦截器 3 */ 4public class LoginInterceptor implements HandlerInterceptor { 5 6 @Override 7 public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { 8 9 HttpSession session = httpServletRequest.getSession(); 10 if ( session.getAttribute("LOGIN_USER") != null ){ 11 return true; 12 }else { 13 httpServletResponse.sendRedirect( httpServletRequest.getContextPath() + "/gradu/dologin"); 14 return false; 15 } 16 } 17 18 @Override 19 public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { 20 21 } 22 23 @Override 24 public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { 25 26 } 27}
配置spring-mvc文件:
1<!--拦截器--> 2 <mvc:interceptors> 3 <mvc:interceptor> 4 <mvc:mapping path="/**" /> 5 <mvc:exclude-mapping path="/gradu/dologin" /> 6 <bean class="com.hwl.interceptor.LoginInterceptor"></bean> 7 </mvc:interceptor> 8 </mvc:interceptors>
注意:
<mvc:mapping path="/**"/> 是已经拦截了所有请求,包括登录,
如果后来想不拦截某个页面,就添加:<mvc:exclude-mapping path="/system/login" />
另外。记得登录时添加session。