我有几个.jsp页面和几个servlet。
我需要将一些信息保存到会话变量中。在jsp页面中,我只是指
session.get...()
要么
session.set...()
无需显式声明HttpSession对象。
但是在servlet中,适用正确的编程规则,因此我必须首先创建一个对象。
我担心的是如果我创建这样的对象
HttpSession session = new HttpSession();
然后用这样的东西写
session.setAttribute("files",fileList);
我担心的是,我没有写入.jsp文件中引用的同一会话对象。
我该怎么做,以便可以在任何jsp或servlet中写入同一对象。
您需要通过调用 HttpServletRequest.getSession() 方法来获取HttpSession 。
HttpServletRequest传递给您的 doGet() 方法。如果没有针对该请求的会话,则 getSession() 将创建一个会话。如果一个会话已经存在并与此请求相关联,则getSession()将改为检索现有会话。如果使用此标准机制,那么您将自动在JSP和Servlet之间共享同一会话。
您永远不要尝试直接构造HttpSession,因为它是由容器管理的。实际上,您不能通过调用 new HttpSesion() 创建一个新的对象,因为HttpSession只是一个接口,无法实例化。