登录验证(拦截器)

本文介绍了如何在Spring MVC中使用拦截器进行用户登录验证。在`preHandle`方法中,通过检查session来判断用户是否已登录,未登录则重定向到登录页面。配置拦截器拦截特定路径,并排除登录相关URL。同时,展示了登录退出功能,清除cookie,销毁session,确保用户安全退出并跳转到首页。
摘要由CSDN通过智能技术生成

拦截器:
     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";
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值