当前位置: 首页 > 面试题库 >

如何在HttpSession中存储Java对象?

端木宏盛
2023-03-14
问题内容

因此,当请求该servlet时,我试图获取一个servlet来向用户会话添加Java对象。但是,在servlet重定向到下一页并尝试检索对象之后,我得到了一个null对象。

这是将对象添加到HttpSession(在servlet中)的操作:

request.setAttribute("object", obj);

然后,我尝试通过(在JSP中)检索它:

 Object obj = request.getAttribute("object");

那么,如何使obj不为null?

更新:我也没有尝试过这个:

HttpSession session = request.getSession();
session.setAttribute("object", obj);

在JSP中具有以下内容:

 Object obj = request.getSession().getAttribute("object");

两种方法仍然返回null。


问题答案:

你不是将对象添加到会话中,而是将其添加到请求中。
你需要的是:

HttpSession session = request.getSession();
session.setAttribute("MySessionVariable", param);

在Servlet中,你有4个范围可以存储数据。

  1. Application
  2. Session
  3. Request
  4. Page


 类似资料:
  • 从存储这些对象的性能和内存角度来看,哪种方法更好?单独的哈希映射或与所有这些哈希映射的列表。 我可以认为,将其存储为单独的哈希映射的一个优点是,我们不需要迭代列表来查找值是否存在。

  • 问题内容: 我想一次生成一个密钥对并重新使用它。 我该怎么办? 问题答案: 这里存在一个问题:Java几乎全部集中在TLS和实现TLS所需的加密上。对于TLS,需要私钥和证书。因此,您遇到了以下情况: 必须生成(伪造的)自签名证书以与您的公钥一起使用;或 必须找到另一种没有证书的私钥存储方式。 但是,使用(2.),您会很快得到一种不太兼容的方法。如果要这样做,可以创建一个使用PB​​E / CBC

  • 问题内容: 我有一个要存储在Redis中的对象数组。我可以分解数组部分,并将它们存储为对象,但是我不知道如何获得类似 然后根据名称搜索数据库,并获取返回的密钥。我需要这样的东西。但几乎无法做到正确。 首先是使这一部分正确。 其次是以某种方式从值中获取密钥,即 我觉得很难。或者,我可以将其直接存储为对象数组并使用简单的for循环。 请建议哪种路线最适合某些实现? 问题答案: 我发现工作是将密钥存储为

  • 问题内容: 如何在Java中存储一组成对的数字?我使用列表或数组,还是其他? 例如。[(1,1),(2,1),(3,5)] 问题答案: 有几种选择: 编写自定义的IntPair类 然后创建一个或一个。 或者,创建一个二维数组,并将行视为对。 Java没有内置类的几个原因,但最引人注目的是,它是很容易写出具有相同功能的类,但 很多 更多的启发,有帮助的名称为类,其字段,以及它的方法。 如果我们更多地

  • 我有以下对象需要存储在Cassandra中。我需要使用UDT还是有其他方法来存储对象。我需要最终使用存储库方法从spry-boot应用程序存储它。

  • 在我的客户端webapp中使用Apache HttpClient4.5.x,它连接到(并登录到)另一个(例如主)服务器webapp。 这两个webapp之间的关系是多对多的--这意味着对于客户端webapp中的某个用户的请求,它必须以另一个用户的身份登录+在服务器webapp中进行rest调用。所以我们需要对饼干进行一些分离,这是不可能的(是吗?)要在创建httpclient实例之后获取/设置co