我在 TestAction 类中设置会话对象,当我试图在 TestServlet 中获取会话对象时,它返回 null。任何人请告诉我如何将会话从动作类传递到 Seam 框架中的 servlet。
@Scope(ScopeType.EVENT)
@Name("testAction ")
public class TestAction {
public void setSessionObj(){
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
session.setAttribute("temp", "124563");
}
}
//Servlet 从这里开始
public class TestServlet extends HttpServlet {
public void init(ServletConfig servletConfig) throws ServletException {
super.init(servletConfig);
servletContext = servletConfig.getServletContext();
}
protected String doExecute(HttpServletRequest request,
HttpServletResponse response) throws Exception {
Session session = request.getSession(false);
String user1 = (String) session .getAttribute("temp");
}
}
下面是调试会话实例的观察
我检查了会话对象实例,以防我在操作和 servlet 中得到什么,它们都是不同的会话实例。例如,实例是 StandardSession[41CBDED6EBBBBECEBA001A70555F51CA5],而我在 servlet 中得到的是 StandardSession[EACBDED6E34BECEB3401A70555F51CA5],我得到不同会话实例的任何原因