1

我正在尝试从 application1 中的操作类转发到 application2 中的 jsp。两个应用程序都在同一个 servlet 容器(glassfish 2.1)中运行。虽然我可以成功转发并显示 jsp,但在执行 ServletActionContext 的转发 api 之前,我无法从 application1 中设置的会话中检索属性/对象。我在 application2 的 jsp 中打印了 sessionID,它与我在 application1 中打印的 id 完全匹配。所以,我假设我的会话在这个过渡之间没有受到干扰。那么会话变量发生了什么?他们为什么/如何变成空的?

这是代码:

    request.getSession().setAttribute("commonQuestions", "abc");
    HttpServletRequest request = ServletActionContext.getRequest();
    HttpServletResponse response = ServletActionContext.getResponse();

    // Change the servletcontext to the second application 
    ServletActionContext.setServletContext(ServletActionContext.getServletContext().getContext("/TYP_PFRS_ETP"));

    // Define request dispatcher for resource in second application
    RequestDispatcher rd = 
        ServletActionContext.getServletContext().getRequestDispatcher("/jsp/helloworld.jsp");

    rd.forward(request, response);
4

0 回答 0