javascript
java url后面带sessionid_Spring Mvc boot解决静态url带jsessionid问题
1.jsessionid是什么?
Jsessionid只是tomcat的對sessionid的叫法,其實就是sessionid;在其它的容器也許就不叫jsessionid了。
2.那么有什么問題?
首先這是一個保險措施 因為Session默認是需要Cookie支持的,但有些客戶瀏覽器是關閉Cookie的,所以在這個時候就需要在URL中指定服務器上的session標識,也就是EDE802AB96CD1E0CA2AFB3830D18FB10,每當用戶第一次訪問頁面的時候,后端獲取的地址是包含 jsessionid參數,這樣拼接 靜態資源或者A標簽或Form的地址的時候,鏈接就變成了:
http://localhost:8080?jsessionid=EDE802AB96CD1E0CA2AFB3830D18FB10home/user 造成訪問相關頁面404.
3.解決方法
web.xml配置
COOKIE
URL
SSL
以上是Servlet3.0最會話跟蹤的三個方式,Servlet 3.0規范實施前tomcat的會話跟蹤用兩種方法:COOKIE和帶JSESSIONID參數的重寫URL。 在 Tomcat 7中的URL重寫方法不再是強制性的,并加入一個新的會話跟蹤方法基于SSL會話。
移除URL 就解決了jsessionid的問題。
spring boot三種方式
1.啟動類 繼承?SpringBootServletInitializer 重寫onStartup方法
@Override
public?void?onStartup(ServletContext?servletContext)?throws?ServletException?{
super.onStartup(servletContext);
servletContext.setSessionTrackingModes(Collections.singleton(SessionTrackingMode.COOKIE));
SessionCookieConfig?sessionCookieConfig=servletContext.getSessionCookieConfig();
sessionCookieConfig.setHttpOnly(true);
}
2.在@Configuration配置類上注冊bean
@Bean
public?ServletContextInitializer?servletContextInitializer1()?{
return?new?ServletContextInitializer()?{
@Override
public?void?onStartup(ServletContext?servletContext)?throws?ServletException?{
servletContext.setSessionTrackingModes(Collections.singleton(SessionTrackingMode.COOKIE)?);
}
};
}
3.在springboot ?properties配置
server.session.tracking-modes=
總結
以上是生活随笔為你收集整理的java url后面带sessionid_Spring Mvc boot解决静态url带jsessionid问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何检测服务器运行正常运行,一种检测服务
- 下一篇: xcode w情ndows版,xcode