拦截器:
a)提供拦截器类:implements HandlerInterceptor{
--pre
--post
--after
}
b)配置拦截器:springmvc.xml
编写controller类 实现HandlerInterceptor
preHandle(){} 方法 进行登录验证 ,请求到达目标对象之前执行此方法
登录验证 :判断用户是否登录成功,有没有session
a.提供拦截器类
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
//登录验证 请求到达目标对象之前执行此方法
//判断用户是否登录成功 又没有session
//如果用户没有登录成功 则跳转到登录页面
HttpSession session=httpServletRequest.getSession();
User user = (User) session.getAttribute("user");
if(user==null){
httpServletResponse.sendRedirect(httpServletRequest.getContextPath());
return false;
}
return true;
}
b.配置拦截器
<!--配置拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/settings/**"/>
<mvc:mapping path="/workbench/**"/>
<!--排除拦截-->
<mvc:exclude-mapping path="/settings/qx/user/toLogin.do"/>
<mvc:exclude-mapping path="/settings/qx/user/login.do"/>
<bean class="com.bjpowernode.crm.settings.web.Interceptor.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
当用户未登录访问主业务界面 被拦截 跳转到登录页面
登录退出 :
用户在任意的业务页面,点击"退出"按钮,弹出确认退出的模态窗口;用户在确认退出的模态窗口,点击"确定"按钮,完成安全退出的功能.
*安全退出,清空cookie,销毁session
*退出完成之后,跳转到首页
@RequestMapping("/settings/qx/user/logout.do")
public String logout(HttpSession session,HttpServletResponse response){
//清空cookie中保存的用户名,和密码
Cookie cookie1=new Cookie("loginAct","1");
cookie1.setMaxAge(0);
response.addCookie(cookie1);
Cookie cookie2=new Cookie("loginPwd","1");
cookie2.setMaxAge(0);
response.addCookie(cookie2);
//销毁session
session.invalidate();
return "index";
}