我希望在我的无状态或手动维护的状态Spring MVC应用程序中禁用Jetty 9中的各种会话跟踪功能,但我找不到任何显示如何执行此操作的工作示例.
我尝试了以下/WEB-INF/spring-config.xml标记:
...
<security:http use-expressions="true"
disable-url-rewriting="true"
create-session="stateless">
...
与战争中的以下/WEB-INF/jetty-web.xml描述符一起:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Get name="sessionHandler">
<Get name="sessionManager">
<Set name="usingCookies" type="boolean">false</Set>
</Get>
</Get>
</Configure>
但是,无论何时尝试打开我的应用程序的任何页面,我仍然会获得JSESSIONID cookie.任何提示为什么以及如何解决它?
解决方法:
使用servlet 3,可以将会话跟踪模式设置为servlet注册的一部分 – ServletContext#setSessionTrackingModes
……你可以试试.
但是在你的情况下,我会调查谁在调用HttpServletRequest#getSession(…).在此方法中放置断点以查看谁在调用它.应用程序中的某些代码正在初始化会话.