现在用户在他的权限中有很多角色,我将允许他点击href并在新窗口中扮演另一个角色。每个角色都有自己的会话。
由于浏览器打开窗口无法打开新会话,我必须在服务器端找到一种方法。
但是请求不支持request.createSession或request.setSession(new Session()),如何为这个用例分隔新会话?
答案 0 :(得分:0)
您可以通过HttpSession#invalidate旧会话创建新会话,但不能保留旧会话。可以通过以下几点帮助您
答案 1 :(得分:0)
你没有tomcat的支持。你自己必须这样做。
下一个策略不会在群集tomcat上工作。这里不保证。
更改为新会话
getAttributeNames()
和getAttribute(String)
将会议属性全部添加到HashMap
。HashMap
序列化为临时文件或静态并发映射,作为后者可以访问的内容。还存储当前HttpServletRequest.getRequestURL()
以用于后一个重定向。您 要序列化。removeAttribute(String)
全部。恢复旧会话
HashMap
。removeAttribute(String)
所有内容HashMap
和setAttribute(String, Object)
。我懒得编写代码并亲自测试,但我认为这样可行。