似乎GET请求中的参数名称(如Tomcat中的SessionID )在servlet规范中没有标准化吗?如何获得SessionID的(专用)名称?(至少在Websphere中,似乎有可能更改SessionID-Parameter的名称)
=>底层的问题是,我需要用会话ID在servlet中编码一个URL,但是"response.encodeURL()“方法似乎只在Cookies被禁用的情况下才这样做(=>therefor使用URL-用URL中的sessionID重写)。
在servlet中始终使用会话ID对URL进行编码的替代方案是什么?正如第一个问题所暗示的那样,我想自己构建sessionid,但是我需要会话I参数名称,但是这个名称似乎还没有标准化,所以我需要从某个地方获取参数名称.)
更新:目的是保留Servlet容器提供的SessionManagement功能,而不是完全关闭它。我需要将一个回调URL传递给一个第三方系统,我希望该系统始终包含SessionURL。因此,我只想将这个单一的 URL与sessionID一起编码,以最小化任何安全问题.
非常感谢简
发布于 2009-11-12 14:26:51
jsessionid实际上不是一个请求参数,它被编码到URL本身,然后在容器到达控制器之前被解码和删除。jsessionid本身的值可以从HttpSession.getId()中检索。
如果要阻止Tomcat使用cookie,则可以在WEB-INF下提供特定于tomcat的WEB-INF文件,其中包含如下内容:
<Context cookies="false" path="/path/to/my/webapp">
</Context>这将禁用该IDs应用程序的所有cookie,tomcat将自动将所有会话ID编码到URL上。
https://stackoverflow.com/questions/1722493
复制相似问题