javascript
java url后面带sessionid_Spring Mvc boot解决静态url带jsessionid问题
1.jsessionid是什么?
Jsessionid只是tomcat的對(duì)sessionid的叫法,其實(shí)就是sessionid;在其它的容器也許就不叫jsessionid了。
2.那么有什么問(wèn)題?
首先這是一個(gè)保險(xiǎn)措施 因?yàn)镾ession默認(rèn)是需要Cookie支持的,但有些客戶瀏覽器是關(guān)閉Cookie的,所以在這個(gè)時(shí)候就需要在URL中指定服務(wù)器上的session標(biāo)識(shí),也就是EDE802AB96CD1E0CA2AFB3830D18FB10,每當(dāng)用戶第一次訪問(wèn)頁(yè)面的時(shí)候,后端獲取的地址是包含 jsessionid參數(shù),這樣拼接 靜態(tài)資源或者A標(biāo)簽或Form的地址的時(shí)候,鏈接就變成了:
http://localhost:8080?jsessionid=EDE802AB96CD1E0CA2AFB3830D18FB10home/user 造成訪問(wèn)相關(guān)頁(yè)面404.
3.解決方法
web.xml配置
COOKIE
URL
SSL
以上是Servlet3.0最會(huì)話跟蹤的三個(gè)方式,Servlet 3.0規(guī)范實(shí)施前tomcat的會(huì)話跟蹤用兩種方法:COOKIE和帶JSESSIONID參數(shù)的重寫URL。 在 Tomcat 7中的URL重寫方法不再是強(qiáng)制性的,并加入一個(gè)新的會(huì)話跟蹤方法基于SSL會(huì)話。
移除URL 就解決了jsessionid的問(wèn)題。
spring boot三種方式
1.啟動(dòng)類 繼承?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配置類上注冊(cè)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=
總結(jié)
以上是生活随笔為你收集整理的java url后面带sessionid_Spring Mvc boot解决静态url带jsessionid问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何检测服务器运行正常运行,一种检测服务
- 下一篇: xcode w情ndows版,xcode