我有一个Spring MVC Web应用程序,用户可以在该Web应用程序上登录和注册帐户。我试图在用户登录后和用户注销会话后结束会话。
实现此目标的最佳方法是什么?
以下是我的登录控制器。
@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;
}
}
答案 0 :(得分:1)
这取决于:
如果您想“练习”低级内容的工作方式,则可以简单地调用request.getSession()
在登录时创建会话并将其保存在那里。注销时致电session.invalidate()
,您就完成了。
如果您对此有所满意,并且希望简化一些事情,则还可以尝试进入Spring MVC项目顶部的Spring Security 。但是,如果您没有相关经验,那么入门非常复杂。