Session 单页应用程序,无Cookie,tomcat会话管理

Session 单页应用程序,无Cookie,tomcat会话管理,session,tomcat,jboss,session-cookies,session-management,Session,Tomcat,Jboss,Session Cookies,Session Management,以下是场景: 单页应用程序(基于AJAX),在一个不允许cookie但仍需要会话的环境中,以及后端的Tomcat(或JBoss) 保持后端容器(Tomcat)管理会话的最佳和最简单的方法是什么 我是否只需要将JSESSIONID=SESSION\u ID\u GOES\u添加到我发出的每个AJAX请求中,这是否足以让Tomcat拾取会话?是的,确实如此,如果您不能使用cookies,那么在调用服务器之间可以获得相同的JSESSIONID。这叫做URL重写 您必须将JSSessionID附加到返回

以下是场景: 单页应用程序(基于AJAX),在一个不允许cookie但仍需要会话的环境中,以及后端的Tomcat(或JBoss)

保持后端容器(Tomcat)管理会话的最佳和最简单的方法是什么


我是否只需要将JSESSIONID=SESSION\u ID\u GOES\u添加到我发出的每个AJAX请求中,这是否足以让Tomcat拾取会话?

是的,确实如此,如果您不能使用cookies,那么在调用服务器之间可以获得相同的JSESSIONID。这叫做URL重写

您必须将JSSessionID附加到返回到浏览器的链接中,这样,浏览器将使用相同的JSSessionID向服务器发送后续调用。但要做到这一点,您应该使用servlet的响应参数encodeURl()和setRedirect()的方法,以便它正确地附加deJSessionID(如果确实需要的话)

例如,如果在servlet/jsp中有以下链接:

out.println("<a href=\"/mycontext/newpage\">Next Page<a>");
有关更多信息,请参阅的JDK API

 out.println("<a href=\"");
  out.println(response.encodeURL ("/mycontext/newpage"));
  out.println("\">Next Page</a>");
response.sendRedirect (response.encodeRedirectURL
    ("http://myhost/mycontext/newpage"));