• 拦截器登录验证


    拦截器登录验证

    1. 配置

      <mvc:interceptor>
          <mvc:mapping path="/user/**"/>
          <bean class="cn.pinked.config.LoginInterceptor"/>
      </mvc:interceptor>
      
    2. 拦截器

      public class LoginInterceptor implements HandlerInterceptor {
          public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
              HttpSession session = request.getSession();
              //已登录,放行
              if (session.getAttribute("userLoginInfo") != null) {
                  return true;
              }
              //在登陆页面,放行
              if (request.getRequestURI().contains("login")) {
                  return true;
              }
              //未登录,转发到登录页面
              request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
              return false;
          }
      }
      
    3. 控制器

      @Controller
      @RequestMapping("/user")
      public class LoginController {
          //主页
          @RequestMapping("/main")
          public String main() {
              return "main";
          }
          //跳转到登陆页面
          @RequestMapping("/login")
          public String login() {
              return "login";
          }
          //登陆后回到主页
          @RequestMapping("/userlogin")
          public String login(HttpSession session, String username, String pwd, Model model) {
              session.setAttribute("userLoginInfo", username);
              model.addAttribute("username", username);
              return "main";
          }
          //注销后回到登陆页面
          @RequestMapping("/logout")
          public String logout(HttpSession session){
              session.removeAttribute("userLoginInfo");
              return "login";
          }
      }
      
    4. 主页

      <h1>首页</h1>
      <span>${username}已登录</span>
      <p>
          <a href="${pageContext.request.contextPath}/user/logout">注销</a>
      </p>
      
    5. 登陆页面

      <h1>登陆页面</h1>
      <form action="${pageContext.request.contextPath}/user/userlogin" method="post">
          用户名:<input type="text" name="username">
          密码:<input type="password" name="pwd">
          <input type="submit" value="登录">
      </form>
      
  • 相关阅读:
    二叉查找树
    二叉树
    广度优先搜索
    深度优先搜索
    algorithm:next_permutation
    Grafana Labs 携手阿里云,将提供国内首款 Grafana 托管服务
    台积电TSMC一些技术特点
    TSMC台积电各种制程工艺技术
    激光雷达激烈竞争市场
    边端云处理器系列技术参数
  • 原文地址:https://www.cnblogs.com/pinked/p/12234847.html
Copyright © 2020-2023  润新知