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

Spring MVC 将用户数据保留在会话中

柴丰
2023-03-14

我正在使用Spring MVC和Hibernate创建应用程序,人们可以在其中注册并将一些数据存储在他们的帐户中。我创建了注册和登录过程。现在我有一个问题,如何保留用户会话?我不想在应用程序的每个页面中保留用户ID。例如:一旦用户登录,他就会到达页面

someurl/overview/1

其中id是用户的id。我希望每个登录的用户看起来像这样:

someurl/overview/

如何使用Spring在会话中保存用户数据,并在用户关闭站点然后打开站点时保存数据的最佳实践是什么?

提前感谢。

共有1个答案

韩刚洁
2023-03-14

您可以通过多种方式在会话中保存用户数据。最简单的方法是:

public ModelAndView yourMethod(HttpSession session){

    session.setAttribute("user", 1); 
    return new ModelAndView("home");

}

如果您使用的是spring组件,那么您可以随时使用会话,因此只需添加此参数并使用它。

编辑:也可以使用Spring的会话属性:http://fruzenshtein.com/spring-mvc-session/是否满足您的要求。

编辑(感谢@Serge Ballesta将其放在评论中,只是更新帖子供参考)

即使API不强制执行它,规范也要求所有会话属性都是可序列化的。如果存储多个id,请考虑这一点。

 类似资料:
  • 我有一个Spring MVC Web应用程序,用户可以在该应用程序上登录和注册帐户。一旦用户登录并且用户注销会话结束,我将尝试保留会话。 实现这一点的最佳方式是什么? 以下是我的登录控制器。

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

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

  • 问题内容: 我当前正在使用一个Web应用程序,每次都调用此Web应用程序,请删除所有当前的Express会话,因此我需要一种方法来保留所有这些会话。我试图用connect- mongodb和connect- redis保留所有这些会话,但是都无效,nodemon总是说req.session是未定义的。我不知道该怎么做才能保留所有会话。 我需要一种方法来保留所有会话,执行时不要丢失它们,并为其提供教

  • 问题内容: 我不确定这是否可能。 我的“活动”网站正在处理注册并将其保存到我们的数据库中,但是我们的主站点负责处理信用卡处理。通过在主网站上处理当前的购买,会话可用于将数据传递到付款/抄送屏幕。 不必更改我的付款代码(例如接受$ _GET参数),我的变量是否应该传递过来? 例: 我的页面在上面查找地址会话变量。 问题答案: 跨域会话ID 默认情况下,使用cookie传递会话ID。由于您的网站位于不

  • 我有以下代码: 但是由于某种原因,$_SESSION变量不保留值。输出如下: 注意:未定义的索引:lang in/home/claudio/public_html/index。第13行的php数组()数组([get]= 警告:需要(lang/. php):打开流失败:第23行的 /home/claudio/public_html/index.php中没有这样的文件或目录 致命错误:require(