我有一个 Spring MVC Web 应用程序,用户可以在其中登录并注册帐户。我试图在用户登录后保持 session ,并且一旦用户注销, session 就结束。
实现这一点的最佳方法是什么?
以下是我的登录 Controller 。
@Controller
public class LoginController {
@Autowired
UserService userService;
@RequestMapping(value = "/login", method = RequestMethod.GET)
public ModelAndView showLogin(HttpServletRequest request, HttpServletResponse response) {
ModelAndView mav = new ModelAndView("login");
mav.addObject("login", new Login());
return mav;
}
@RequestMapping(value = "/loginProcess", method = RequestMethod.POST)
public ModelAndView loginProcess(HttpServletRequest request, HttpServletResponse response,
@ModelAttribute("login") Login login) {
ModelAndView mav = null;
User user = userService.validateUser(login);
if (null != user) {
mav = new ModelAndView("loginProcess", "firstname", user.getFirstname());
} else {
mav = new ModelAndView("login");
mav.addObject("message", "Username or Password is wrong!!");
}
return mav;
}
}
最佳答案
这取决于:
如果您想“练习”较低级别的内容如何工作,您可以简单地调用
request.getSession()
在登录时创建 session 并在其中保存一些内容。注销时调用session.invalidate()
即可完成。如果您愿意并希望事情更加精简,您也可以尝试进入 Spring Security 在您的 Spring MVC 项目之上。不过,如果您之前没有相关经验,那么上手会非常复杂。
关于java - 在 Spring MVC 上保持用户 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61119098/