当前位置: 首页 > 知识库问答 >
问题:

在Spring MVC上保留用户会话

韩瀚
2023-03-14

我有一个Spring MVC 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个答案

拓拔坚
2023-03-14

这取决于:

>

  • 如果您想“练习”较低级别的东西是如何工作的,您可以简单地调用request.getSession()在登录时创建会话并在那里保存一些东西。注销时调用session.invalidate(),您就完成了。

    如果您对此有所了解,并希望事情更加简化,您也可以尝试在SpringMVC项目之上进入Spring安全。但是,如果您没有以前的经验,那么开始使用它是相当复杂的。

  •  类似资料:
    • 我正在使用Spring MVC和Hibernate创建应用程序,人们可以在其中注册并将一些数据存储在他们的帐户中。我创建了注册和登录过程。现在我有一个问题,如何保留用户会话?我不想在应用程序的每个页面中保留用户ID。例如:一旦用户登录,他就会到达页面 其中id是用户的id。我希望每个登录的用户看起来像这样: 如何使用Spring在会话中保存用户数据,并在用户关闭站点然后打开站点时保存数据的最佳实践

    • 我正在使用dialogflow节点SDK向dialogflow发送textRequests和eventRequests。fulfillment webhook显示,尽管sessionId相同,但上下文没有被保留。使用GoogleAssistant上的actions中的同一个dialogflow代理时,上下文将被保留。所以唯一的区别是我使用NodeSDK发送文本。 第二个请求不会触发INTENT_2

    • 在iOS7上的过渡分离器左侧有15px填充。我知道我可以在xib文件的UITableView设置中删除此填充与分隔符插入功能,但我需要保持标题文本与填充。怎么做呢? 默认: 自定义分隔符插入为0: 我需要保留如图2所示的分隔符,但标题中有如图1所示的“2013”。

    • 问题内容: 我有一个使用AJAX加载新php文件并更新显示的单页网站。 我从主页开始php会话,但是当我使用ajax更新内部html时,我需要这些会话变量来加载新的php文件。 这篇文章与此类似:PHP会话变量未保留。但是我检查了一下,我的php.ini有 主页PHP: 在用户输入之后,我使用ajax调用php文件并加载页面的一个小节: 有人可以告诉我我缺少哪些重要步骤吗?谢谢。 更新: 在主页和

    • 我有一个一页的网站,使用AJAX加载新的php文件和更新显示。 UPDATE:在将session_id()调用添加到主页面和子页面之后,我看到两个页面都有相同的session_id。然而,它仍然不能拉出会话变量,如果我给它赋值,两个同名会话变量将保持相互独立。 这个问题产生的问题的答案:我发现我必须在php.ini文件中设置一个静态session_save路径。对于大多数付费的webhosting

    • 全部的 我正在处理一个看似简单的案例,但它提出了一些设计挑战: 有一个带有客户端的本地参与者系统,它可以连接到运行大部分业务逻辑的远程系统。 远程系统将有一个固定的IP地址、端口等-因此,可以使用context.actorSelection(uri)策略来获取ActorRef,以获取当前参与者(或路由器后面的一组路由器)的化身。 作为服务器的远程系统不应该知道客户端的位置。 鉴于此,将消息从客户端