我有几个 .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/