广告
返回顶部
首页 > 资讯 > 精选 >Springboot怎么去掉URL后面的jsessionid
  • 606
分享到

Springboot怎么去掉URL后面的jsessionid

2023-06-25 16:06:26 606人浏览 薄情痞子
摘要

这篇文章主要介绍“SpringBoot怎么去掉URL后面的jsessionid”,在日常操作中,相信很多人在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配置文件中做如下配置

Springboot怎么去掉URL后面的jsessionid

解决方式二

在启动类中继承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.*; 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中添加以下内容:

<filter>         <filter-name>URLSessionFilter</filter-name>    <filter-class>zj.web.filter.URLSessionFilter</filter-class></filter> <filter-mapping>    <filter-name>URLSessionFilter</filter-name>        <url-pattern>/*</url-pattern></filter-mapping>

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

--结束END--

本文标题: Springboot怎么去掉URL后面的jsessionid

本文链接: https://www.lsjlt.com/news/305980.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Springboot怎么去掉URL后面的jsessionid
    这篇文章主要介绍“Springboot怎么去掉URL后面的jsessionid”,在日常操作中,相信很多人在Springboot怎么去掉URL后面的jsessionid问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-25
  • Springboot如何去掉URL后面的jsessionid
    目录如何去掉URL后面的jsessionidurl中有Jsessionid生成的原因解决方式一解决方式二Java关于jsessionid和URL对SEO的冲击安全问题解决之道如何去掉...
    99+
    2022-11-12
  • php怎么去掉url里的.php后缀
    本篇内容主要讲解“php怎么去掉url里的.php后缀”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php怎么去掉url里的.php后缀”吧!php去掉url里的.php后缀的方法:1、找到并打...
    99+
    2023-06-25
  • php怎么去掉url中的index.php
    小编给大家分享一下php怎么去掉url中的index.php,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!php去掉url中的index.php的方法:首先打开相应的代码文件;然后将if代码块嵌套在server代码块中;最...
    99+
    2023-06-14
  • php怎么去掉某个字符后面的内容
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php去掉某个字符后面的内容在php中,可以利用strpos()和substr()函数来去掉某个字符后面的内容实现思想:使用strpos函数找到指定字符的位置...
    99+
    2018-04-16
    php php字符串
  • Angular.JS怎么去掉访问路径URL中的#号
    这篇文章主要介绍“Angular.JS怎么去掉访问路径URL中的#号”,在日常操作中,相信很多人在Angular.JS怎么去掉访问路径URL中的#号问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2022-10-19
  • vue中怎么去掉input前后的空格
    本篇内容主要讲解“vue中怎么去掉input前后的空格”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue中怎么去掉input前后的空格”吧!vue去掉input前后的空格场景:在开发过程中,遇...
    99+
    2023-07-05
  • php怎么去掉小数点后的内容
    在php中,对于浮点数的处理一直是一个让人头痛的问题。这是因为浮点数在计算机中的表示是有限的,而且很多浮点数的计算都会产生误差。其中,在输出中我们往往希望只保留小数点后面的几位,并去掉不需要的部分,本文就介绍几种php去掉小数的方法。一:使...
    99+
    2023-05-14
    php
  • CSS列表怎么去掉前面的点
    要去掉CSS列表前面的点,可以使用list-style-type属性,并将其设置为none。例如,可以使用以下CSS代码来去掉无序列...
    99+
    2023-10-12
    CSS
  • php怎么去掉数字前面的字符
    PHP是一种高效的编程语言,广泛应用于Web开发和服务器端编程中。在PHP中,数字前面可能会有一些字符,如空格、逗号、括号等等,这些字符可能会导致程序出现错误或不符合预期的结果。因此,去掉数字前面的字符是PHP程序员们经常需要处理的问题。一...
    99+
    2023-05-14
  • 用git怎么把桌面的软件勾去掉
    近年来,随着软件开发和协作的不断发展,Git作为一种分布式版本控制系统,已被广泛应用于各类软件开发项目中,以方便团队同步和版本管理。但是,在Git中如何去除桌面上不需要的软件呢?本文将介绍如何使用Git去除桌面上的软件。首先,我们需要了解一...
    99+
    2023-10-22
  • 怎么在PHP中去掉字符串的前后空格
    这篇文章主要讲解了“怎么在PHP中去掉字符串的前后空格”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在PHP中去掉字符串的前后空格”吧!方法一:通过trim()去掉字符串前后空...
    99+
    2023-07-05
  • Win10电脑桌面图标的阴影怎么去掉
    这篇“Win10电脑桌面图标的阴影怎么去掉”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Win10电脑桌面图标的阴影怎么去掉...
    99+
    2023-06-27
  • CSS怎么将无序列表前面的点去掉
    本文小编为大家详细介绍“CSS怎么将无序列表前面的点去掉”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS怎么将无序列表前面的点去掉”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2022-10-19
  • 怎么去掉小程序下拉菜单的页面
    去掉小程序下拉菜单页面的方法:在app.json文件的window属性中,添加代码:"enablePullDownRefresh": false,然后在对应页面的json文件里配置,添加代码:{"di...
    99+
    2022-10-07
  • 怎么在php中去掉数组的最后一个字符串
    本篇文章给大家分享的是有关怎么在php中去掉数组的最后一个字符串,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。php去掉数组最后一个字符串的方法:首先创建一个PHP示例文件;然...
    99+
    2023-06-14
  • 使用php怎么去掉字符串的最后几个字符
    使用php怎么去掉字符串的最后几个字符?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。方法1:使用rtrim()函数<php$str = &q...
    99+
    2023-06-15
  • 使用php怎么去掉字符串中的最后一个元素
    这期内容当中小编将会给大家带来有关使用php怎么去掉字符串中的最后一个元素,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。php的框架有哪些php的框架:1、Laravel,Laravel是一款免费并且开源...
    99+
    2023-06-14
  • php字符串函数学习:怎么去掉前面的字符
    在开发PHP应用程序时,有时我们需要去掉字符串前面的某些特定字符或者字符串。在这种情况下,我们需要使用一些PHP函数来实现这一目标。本文将介绍一些PHP函数,帮助您轻松地去掉字符串前面的字符或字符串。方法一:使用substr()函...
    99+
    2023-05-14
    php 字符串
  • ubuntu20.04左侧面板怎么移到底部?ubuntu去掉左侧面板的技巧
    今天安装了ubuntu20.04,因为安装了其它的程序启动工具,所以想把左边的任务面板给去掉,该怎么去掉,变成windows系统的样式,在底部呢?今天我们就来介绍一种新方法就是可以通过合并面板与状态栏的方式来去掉左边的面板,下...
    99+
    2022-05-27
    ubuntu20.04 左侧面板 底部面板
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作