我的web应用程序使用Tomcat 8.0.35。这个职位
https://www.logicbig.com/tutorials/java-ee-tutorial/java-servlet/session-tracking-mode.html
说明我们可以在web.xml中的单个会话配置元素中使用多个跟踪模式元素。
<web-app>
<session-config>
<tracking-mode>???</tracking-mode>
</session-config>
</web-app>我无法找到关于“多跟踪模式元素”的附加信息。如果我有以下情况,Tomcat的行为会是什么?
<web-app>
<session-config>
<tracking-mode>URL</tracking-mode>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
</web-app>发布于 2019-07-09 04:24:19
这个问题的答案可以在org.apache.catalina.connector.CoyoteAdapter#postParseRequest中找到
以下代码来自tomcat 8.5:
String sessionID;
if (request.getServletContext().getEffectiveSessionTrackingModes()
.contains(SessionTrackingMode.URL)) {
// Get the session ID if there was one
sessionID = request.getPathParameter(
SessionConfig.getSessionUriParamName(
request.getContext()));
if (sessionID != null) {
request.setRequestedSessionId(sessionID);
request.setRequestedSessionURL(true);
}
}
// Look for session ID in cookies and SSL session
parseSessionCookiesId(request);
parseSessionSslId(request);
sessionID = request.getRequestedSessionId();发生了以下情况:
我不知道为什么不像SSL和Cookie跟踪模式那样在sepratate方法中提取URL跟踪,但它们看起来几乎相同:
发布于 2019-07-09 04:24:42
Tomcat 7的tracking-mode功能取代了tomcat 6的disableURLRewriting
Context.disableURLRewriting:这个已经被删除了。可以通过在web应用程序或全局CATALINA_BASE/conf/web.xml文件中配置会话-config/跟踪模式元素来获得等效效果。
Servlet3.0标准为您提供了两种禁用URL会话重写的方法。这适用于Tomcat 7、Glassfish v3和任何其他符合Servlet 3.0的servlet容器。
https://stackoverflow.com/questions/56945183
复制相似问题