SpringBoot集成Thymeleaf,自动在请求URL后加了jsessionid

jsessionid是什么?

Jsessionid只是tomcat的对sessionid的叫法,其实就是sessionid;在其它的容器也许就不叫jsessionid了。

先这是一个保险措施 因为Session默认是需要Cookie支持的,但有些客户浏览器是关闭Cookie的,所以在这个时候就需要在URL中指定服务器上的session标识,也就是EDE802AB96CD1E0CA2AFB3830D18FB10,每当用户第一次访问页面的时候,后端获取的地址是包含 jsessionid参数。
这样拼接 静态资源或者A标签或Form的地址的时候,链接就变成了:
http://localhost:8080?jsessionid=EDE802AB96CD1E0CA2AFB3830D18FB10home/user 造成访问相关页面404.

操作步骤:

1,启动类中继承 SpringBootServletInitializer 重写onStartup方法

public class A extends SpringBootServletInitializer  {

    public static void main(String[] args) {
        TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
        SpringApplication.run(A.class,args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application){
        return application.sources(A.class);
    }

    @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,在springboot 配置文件中配置,这里配置的是yaml

server:
  servlet:
      session:
        tracking-modes: COOKIE

完毕!

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值