千家信息网

Springboot怎么去掉URL后面的jsessionid

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"Springboot怎么去掉URL后面的jsessionid",在日常操作中,相信很多人在Springboot怎么去掉URL后面的jsessionid问题上存在疑惑,小编查阅了各式资
千家信息网最后更新 2026年11月03日Springboot怎么去掉URL后面的jsessionid

这篇文章主要介绍"Springboot怎么去掉URL后面的jsessionid",在日常操作中,相信很多人在Springboot怎么去掉URL后面的jsessionid问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Springboot怎么去掉URL后面的jsessionid"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

如何去掉URL后面的jsessionid

url中有Jsessionid生成的原因

jsessionid是标明session的id,它存在于cookie中,一般情况不会出现在url中,服务器会从客户端的cookie中取出来,但是如果客户端禁用了cookie的话,就要重写url了,显式的将jsessionid重写到Url中,方便服务器来通过这个找到session的id。

如果客户端请求的cookie中不包含JSESSIONID,服务端调用request.getSession()时就会生成并传递给客户端,此次响应头会包含设置cookie的信息

如果客户端请求的cookie中包含JSESSIONID,服务端调用request.getSession()时就会根据JSESSIONID进行查找对象,如果能查到就返回,否则就跟没传递JSESSIONID一样;

解决方式一

springBoot2.0之前版本

在 .yml配置文件中做如下配置

解决方式二

在启动类中继承SpringBootServletInitializer,然后重写这个方法 (此方法在springBoot2.0之前版本没有起作用,暂时做记录)

public void onStartup(ServletContext servletContext) throws ServletException {        super.onStartup(servletContext);         // This will set to use COOKIE only        servletContext.setSessionTrackingModes(                Collections.singleton(SessionTrackingMode.COOKIE)        );        // This will prevent any JS on the page from accessing the        // cookie - it will only be used/accessed by the HTTP transport        // mechanism in use        SessionCookieConfig sessionCookieConfig =                servletContext.getSessionCookieConfig();        sessionCookieConfig.setHttpOnly(true);    }

Java关于jsessionid和URL

在写JSP程序时,经常发现url中有一个jsessionid参数,在刷新之后就消失了。一些人认为这是个一个BUG。

这不是一个bug。当一个新的session被创建时,server并不确定客户端是否支持cookies,所以它生成了一个cookie,就是URL中jsessionid的值。当客户端在第二次带着cookie返回时,服务器就知道jsessionid不是必须的,所以就会删掉它。如果客户端没有带着cookie返回,服务器就会继续在url中添加jsessionid参数。

但是现在几乎很难想象浏览器会不支持cookie。jsessionid参数也可能会给SEO和安全带来一定问题。

对SEO的冲击

有些搜索引擎可能会惩罚(找不到更好的词形容)那些具有多个不同url但内容相同的网站。因为sessionid是唯一的,所以多个搜索机器人将返回相同的内容但url不同。

这是一个严重的问题。我们试一下用google搜索inurl:;jsessionid,Google的搜索结果:About 211,000,000 results (0.25 seconds)

安全问题

在url中包含sessionId不是一个明智之举,这将为攻击者提供便利。

解决之道

不幸的是Servlet Specification和Servlet Containers中并未提供一个标准的方法去禁止在url中带jsessionid。

不过我们可以通过servlet filter去解决这个问题。

package com.lgete.web.filter;import java.io.IOException;import javax.servlet.*;import javax.servlet.http.*; /** * @author Zhu Jia zhujia7895@gmail.com *  */public class URLSessionFilter implements Filter {    public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain) throws IOException, ServletException {        if (!(request instanceof HttpServletRequest)) {            chain.doFilter(request, response);            return;        }         HttpServletResponse httpResponse = (HttpServletResponse) response;        HttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(                httpResponse) {             public String encodeRedirectUrl(String url) {                return url;             }             public String encodeRedirectURL(String url) {                 return url;             }             public String encodeUrl(String url) {                 return url;             }             public String encodeURL(String url) {                 return url;             }         };         chain.doFilter(request, wrappedResponse);     }     public void init(FilterConfig filterConfig) {     }     public void destroy() {     } }

在web.xml中添加以下内容:

         URLSessionFilter    zj.web.filter.URLSessionFilter     URLSessionFilter        /*

到此,关于"Springboot怎么去掉URL后面的jsessionid"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

客户 客户端 服务 问题 服务器 学习 搜索 内容 参数 方法 生成 不同 相同 安全 多个 方式 更多 版本 网站 这是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 广州为想互联网科技有限公司 互联网科技公司的优势 易通互联网络科技有限公司 四川狮子座互联网科技 互联网科技宣传片 青岛中康互联网医疗科技有限公司 互联网媒体平台算高科技产业 民营互联网公司国防科技 996高科技互联网公司 允成互联网科技有限公司融资 广州新华互联网科技学校电竞方面 美国互联网科技实力 互联网金融科技元年 江苏互联网智能科技产品出厂价 互联网科技企业商标注意事项 兰石爱特工业互联网科技分公司 好易买互联网科技 青岛易易互联网科技 长沙易易互联网科技有限公司 互联网的科技 互联网下的科技发展 顺玮阁互联网科技 华中科技有哪些互联网大佬 福建科技产业互联网发展 重庆互联网医院沙龙医盟信息科技 玉溪互联网科技怎么选 美国互联网科技实力 杭州披云加互联网科技有限公司 图游互联网科技
0