刷新其他servlet的会话

时间:2016-04-26 06:44:28

标签: java jsp session servlets struts

我在处理Java servlet,jsp页面和Struts Action之间的会话时遇到问题。 Java servlet在获取请求时向会话添加一些参数,并将sendRedirect添加到某个page1.jsp。在第1页,我有一个Struts Action的URL,如strutsAction.do。当StrutsAction接收请求时,会话不包含我在Java servlet中添加的属性。单击此操作返回的页面不会刷新Java Servlet的会话,但它们具有相同的SessionId。因此,在session.getMaxInactiveInterval() servlet会话传递后,我得到sessionDestroyed()事件,即使我在StrutsAction返回的页面上执行操作。 enter image description here如何解决此问题?

1 个答案:

答案 0 :(得分:0)

如果SendRedirect调用旧请求和响应对象丢失,因为它被视为新请求,

您应该尝试以下代码

RequestDispatcher rd = servletContext.getRequestDispatcher("/pathToResource");
  rd.forward(request, response);

因为在requestdispather对象上调用forward我们传递请求和响应对象,所以我们的旧请求对象出现在将要处理我们请求的新资源上。