我有一个 Java Web 应用程序,我使用 Tomcat7 在生产中部署它。
我在生产中使用 Tomcat Web 应用程序管理器页面,在上下文路径“/”中部署 WAR。在生产中,我在 URL 中没有看到 jsessionid
。
但在我的开发环境中,在 Eclipse 中使用 Tomcat7 启动的同一个应用程序(因此是相同的 web.xml
)在 URL 中显示 jsessionid
。
我的 web.xml
中唯一的 session 配置是:
<session-config>
<session-timeout>15</session-timeout>
</session-config>
我在 Tomcat7 中看到的唯一区别是 server.xml
:
生产:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
</Host>
本地:
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>
<Context docBase="MyApp" path="/" reloadable="true" source="org.eclipse.jst.jee.server:MyApp" />
</Host>
另一个区别是我在生产中使用 NGinx 从 Tomcat 进行从端口 80 到 8080 的代理传递。
我可能缺少什么?
谢谢
最佳答案
您可能在开发环境中使用不支持(或禁用)cookie 的浏览器或其他客户端。
另一个提示:您可以在 tomcat 7 中使用此代码(在您的 web.xml 文件中):
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
关于java - 如何在 Eclipse 中从本地 Tomcat7 的 URL 中删除 jsessionid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774531/