在Spring MVC上保持用户会话

时间:2020-04-09 10:29:04

标签: java spring

我有一个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;
    }
}

1 个答案:

答案 0 :(得分:1)

这取决于:

  1. 如果您想“练习”低级内容的工作方式,则可以简单地调用request.getSession()在登录时创建会话并将其保存在那里。注销时致电session.invalidate(),您就完成了。

  2. 如果您对此有所满意,并且希望简化一些事情,则还可以尝试进入Spring MVC项目顶部的Spring Security 。但是,如果您没有相关经验,那么入门非常复杂。