import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpSession;
@Controller
@RequestMapping("/user")
public class UserController {
// 跳转到登录界面
@RequestMapping("/toLogin")
public String toLogin() {
return “login”;
}
// 跳转到成功页面
@RequestMapping("/toSuccess")
public String toSucess() {
return “success”;
}
// 登录提交
@RequestMapping("/login")
public String login(HttpSession session, String username, String password) {
// 向 session 记录用户身份信息
System.out.println("接收前端 ===> " + username);
session.setAttribute(“user”, username);
return “success”;
}
// 登录过期
@RequestMapping("/logout")
public String logout(HttpSession httpSession) {
// session 过期
httpSession.invalidate();
return “login”;
}
}
- 编写一个登陆成功的页面 success.jsp
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
登录成功页面
${user}
- 编写主页 index.jsp
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
首页
<%–登录–%>
测试:
点击 登录,会请求跳转到 登陆页面 login.jsp;
点击 成功页面,会请求跳转到 成功页面 success.jsp
这里就出现问题了,只要在 地址栏发出请求,可以直接 越过登录,进入登录成功的界面,这个肯定是有问题的。那要如何解决这个问题呢? —— 通过 拦截器。
- 编写用户登录拦截器 LoginInterceptor.java
package com.yusael.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAn