java - 如何在 jsp 页面和 servlet 之间共享数据

标签 java jsp session servlets

我有几个 .jsp 页面和几个 servlet。

我需要将一些信息保存到 session 变量中。在jsp页面中我简单的引用了

session.get...()

session.set...()

没有显式声明 HttpSession 对象。

但是在 servlet 中应用正确的编程规则,我必须先创建一个对象。

我担心的是如果我创建一个这样的对象

HttpSession session = new HttpSession();

然后用这样的方式写入它

session.setAttribute("files",fileList);

我担心的是我没有写入 .jsp 文件中引用的同一个 session 对象。

我该怎么做才能在任何 jsp 或 servlet 中写入同一对象。

最佳答案

您需要调用HttpServletRequest.getSession()方法获取HttpSession。

HttpServletRequest 被传递给您的doGet() 方法。如果此请求还没有 session ,则 getSession() 将创建一个。如果 session 已经就位并与此请求相关联,则 getSession() 将取而代之检索现有 session 。如果您使用此标准机制,那么您将自动在 JSP 和 servlet 之间共享相同的 session 。

您永远不应该尝试直接构建 HttpSession,因为它是由容器管理的。实际上,您不能通过调用 new HttpSesion() 来创建新的,因为 HttpSession 只是一个接口(interface),无法实例化。

关于java - 如何在 jsp 页面和 servlet 之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674197/

相关文章:

java - 解析 JSON 时 Jackson 错误 "Illegal character... only regular white space allowed"

java - 解压缩到 ByteArrayOutputStream - 为什么我会收到 EOFException?

javascript - 如何为每个用户处理多个 Node.js 服务器之间的通信?

session - 强制 Vim 的 mksession 使用相对路径?

java - 如何在 Hadoop Reduce 中获取当前文件名

java - 生成随机数并在Java中对它们进行排序

java - jsp中如何减少重复?

java - JBOSS 7 域 jsp 更改重新启动后未反射(reflect)

java - 使用 JDBC 时出现 SQL 错误

php - 在购物车 session 中存储和检索 woocommerce 自定义数据