登录验证.
用户访问任何业务资源,都需要进行登录验证.
*只有登录成功的用户才能访问业务资源
*没有登录成功的用户访问业务资源,跳转到登录页面
分析
1.过滤器
①implements Filter{
init
doFilter
destroy
}
②配置过滤器web.xml
2.拦截器:
①提供拦截器类:implements HandlerInterceptor{
preHandle--控制器之前执行
postHandle--控制器之后执行
afterCompletion--渲染完执行
}
②配置拦截器:SpringMVC.xml
代码实现
LoginInterceptor implements HandlerInterceptor,实现三个方法
1.preHandle判断Session有没有user
// 控制器之前执行@Overridepublic boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {// 如果session有user那么登录了,否则没有。HttpSession session = httpServletRequest.getSession();User user = (User) session.getAttribute(Contants.SESSION_USER);if (user == null){// 拦截器自己重定向要带项目的名字httpServletResponse.sendRedirect("/crm");//跳转主页--登录页面return false; //拦截,未登录}return true; //放行}
2.在SpringMVC.xml配置拦截器
/** 多层目录拦截
<!--配置拦截器--><mvc:interceptors><mvc:interceptor><!--拦截的路径--><mvc:mapping path="/settings/**"/><mvc:mapping path="/workbench/**"/><!--排除的1.登录2.登录验证--><mvc:exclude-mapping path="/settings/qx/user/toLogin.do"/><mvc:exclude-mapping path="/settings/qx/user/login.do"/><!--拦截器的位置--><bean class="com.wzl.crm.settings.web.interceptor.LoginInterceptor"></bean></mvc:interceptor></mvc:interceptors>