java - 在 Spring MVC 上保持用户 session

标签 java spring

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

最佳答案

这取决于:

  1. 如果您想“练习”较低级别的内容如何工作,您可以简单地调用 request.getSession() 在登录时创建 session 并在其中保存一些内容。注销时调用 session.invalidate() 即可完成。

  2. 如果您愿意并希望事情更加精简,您也可以尝试进入 Spring Security 在您的 Spring MVC 项目之上。不过,如果您之前没有相关经验,那么上手会非常复杂。

关于java - 在 Spring MVC 上保持用户 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61119098/

相关文章:

Java 异步等待 http 重定向

java - JVM 的 Xss 选项是只覆盖 Java Stacks 还是也包括 Native Stacks?

java - 如何使用Spring Security自定义登录页面?

java - 使用数据成员组合类

java - 我们可以在Java独立应用程序(Swing)中实现Spring Autowiring 吗

java - 如果我使用 @ControllerAdvice 填充 @ModelAttribute,是否会发生任何冲突

java - 如何将带有空格的属性绑定(bind)到Spring application.properties文件中的Map键?

java - 使用@ResourceMapping 和@ModelAttribute 在 Spring Portlet Controller 中访问 RequestBody

spring - 模板解析时发生错误。 (Spring Boot + Thymeleaf)

spring - Gradle 1.0 +Spring + AspectJ 构建问题