gpt4 book ai didi

session - 单页应用,无 cookie,tomcat session 管理

转载 作者:行者123 更新时间:2023-11-28 23:46:39 25 4
gpt4 key购买 nike

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

仍然让后端容器 (Tomcat) 管理 session 的最好和最简单的方法是什么?

我是否只需要将 JSESSIONID=SESSION_ID_GOES_HERE 附加到我发出的每个 AJAX 请求,这足以让 Tomcat 接收 session 吗?

最佳答案

是的,确切地说,如果您不能使用 cookie,您可以在对服务器的调用之间实现相同的 JSessionid。这称为 URL 重写。

返回给浏览器的链接必须追加jsessionid,这样浏览器才会将其后续调用发送给具有相同jsessionid的服务器。但要做到这一点,您应该使用 servlet 的响应参数的方法:encodeURl() 和 setRedirect() 以便它正确附加 de JSessionId(如果确实需要)。

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

out.println("<a href=\"/mycontext/newpage\">Next Page<a>");

你应该这样写:

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

它会在需要时自动附加 JSessionId(例如,如果 cookie 被禁用)。

同理,如果你只是需要发送一个重定向,你应该:

response.sendRedirect (response.encodeRedirectURL
("http://myhost/mycontext/newpage"));

有关更多信息,请查看 HttpServletResponse 的 JDK API .

关于session - 单页应用,无 cookie,tomcat session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13355123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com