拦截器登录验证
Posted pinked
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拦截器登录验证相关的知识,希望对你有一定的参考价值。
拦截器登录验证
配置
<mvc:interceptor> <mvc:mapping path="/user/**"/> <bean class="cn.pinked.config.LoginInterceptor"/> </mvc:interceptor>
拦截器
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; } }
控制器
@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"; } }
主页
<h1>首页</h1> <span>${username}已登录</span> <p> <a href="${pageContext.request.contextPath}/user/logout">注销</a> </p>
登陆页面
<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>
以上是关于拦截器登录验证的主要内容,如果未能解决你的问题,请参考以下文章