我将会话参数存储在Struts2会话映射中,该会话映射是使用SessionAware接口在操作中获得的。我的应用程序位于/ MyApp路径中。
在具有反向代理重定向的Apache服务器上设置struts2应用程序之后,该重定向使URL http://www.appdomain.com/ 指向本地 主机 上的本地tomcat :8080 / MyApp ,Struts2会话处理不再起作用。我希望会话cookie存储在http:// localhost:8080 / MyApp的Struts2上下文中,而不是http://www.appdomain.com/ …
Struts2配置中有解决方案吗?还是以编程方式以某种方式更改会话cookie?在互联网或官方文档中找不到有关此的任何信息。请帮忙,我已经在生产中,我的登录信息不起作用;-)
我只是用一个肮脏的技巧解决了这个问题:我将会话ID传递给JSP,并使用JavaScript设置了所需的JSESSIONID cookie客户端。
函数createCookie(name,value,days){if(days){var date = new Date(); date.setTime(date.getTime()+(days * 24 * 60 * 60 * 1000)); var expires =“; expires =” + date.toGMTString(); } else var expires =“”; document.cookie = name +“ =” + value + expires +“; path = /”; }
$(document).ready(function(){createCookie(“ JSESSIONID”,“”,3);});
从此页面获取了JS代码:http : //www.quirksmode.org/js/cookies.html
谢谢,问题解决了!