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一样;

解决方式1.在客户端页面上,判断Url是否包含Jsessionid,有的就移除

方式2.后台编写一个过滤器,判断如果请求url中带有sessionid,则进行处理


import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import javax.servlet.http.HttpSession;public class RemoveUrlJsessionIdFilter implements Filter{@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {HttpServletRequest httpServletRequest = (HttpServletRequest) request;HttpServletResponse httpServletResponse = (HttpServletResponse) response;// skip non-http requestsif (!(request instanceof HttpServletRequest)) {chain.doFilter(request, response);return;}//从url中删除jsessionid// isRequestedSessionIdFromURL():Checks whether the requested session ID came in as part of the request URL.if (httpServletRequest.isRequestedSessionIdFromURL()) {HttpSession session = httpServletRequest.getSession();if (null != session) {session.invalidate();}}// wrap response to remove URL encodingHttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(httpServletResponse) {@Overridepublic String encodeRedirectUrl(String url) {return url;}@Overridepublic String encodeRedirectURL(String url) {return url;}@Overridepublic String encodeUrl(String url) {return url;}@Overridepublic String encodeURL(String url) {return url;}};// process next request in chainchain.doFilter(request, wrappedResponse);}@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void destroy() {}}

web.xml

    <filter><filter-name>RemoveUrlJsessionIdFilter</filter-name><filter-class>spring.filter.RemoveUrlJsessionIdFilter</filter-class><async-supported>true</async-supported><!--异步支持 --></filter><filter-mapping><filter-name>RemoveUrlJsessionIdFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

去除URL中带有的jsessionid相关推荐

  1. LNMP一键安装包+Thinkphp搭建基于pathinfo模式的路由(可以去除url中的.php)

    LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat/Fedora.Debian/Ubuntu/Raspbian/Deepin VPS或独立主机安装LNMP(Ngin ...

  2. Vue.js项目去除url中的#/ - 解决篇

    文章目录 `Vue.js`项目`去除`url中的`#/` 一.解决办法 二.前后效果图,对比如下 Vue.js项目去除url中的#/ 使用vue路由,新建项目的url地址总是带有锚点#/,如下url: ...

  3. urlencode quote unquote (url 中带中文参数)

    目录: urlencode & quote & unquote (url 中带中文参数) python httplib urllib urllib2区别(一撇) 当url地址含有中文或 ...

  4. js去除url中的localtion.search部分

    localtion.search是url中拼接的参数部分 js去除url中的localtion.search部分包括?部分 if (location.search) {var old_url = wi ...

  5. ASP.NET MVC Url中带点号出现404错误的解决方案

    ASP.NET MVC Url中带点号出现404错误的解决方案 参考文章: (1)ASP.NET MVC Url中带点号出现404错误的解决方案 (2)https://www.cnblogs.com/ ...

  6. 微信小程序获取二维码中URL中带的参数

    解析微信小程序获取二维码中的url参数 onLoad: function (options) { console.log(options) let qrUrl = decodeURIComponent ...

  7. Java去除手机号码中带的中英文括号

    例如: "(+49)13926165117"  //中文括号 "(+49)13926165117"   //英文括号 >现在需要将字符串前面的()去掉,并 ...

  8. [故障引起的故事]URL中带加号(+)的处理

    问题起因:       客户订购了一关键字为"e+h 变送器" , 在首页推荐广告中,会根据用户在search 搜索过的关键字进行一个匹配投放.技术实现是UED 通过JS 获取co ...

  9. nginx配置url中带问号的rewrite跳转

    今天收到一个需求,要将一个带查询参数的url跳转到另外一个静态url,安装常规的rewrite规则,如: rewrite ^/a.html?id=67$ http://zt.epython.cn/20 ...

  10. php获取等于符号后面的参数,php获取URL中带#号等特殊符号参数的解决方法

    例如下面的PHP代码: echo $_GET['key']; ?> 当url为http://test.com/c.php?key=999时,正常输出:999 当url为http://test.c ...

最新文章

  1. Codeforces 338D 对线性同余方程组的一点理解
  2. Linux里面的正则表达式!
  3. JS高级-自执行函数-垃圾回收机制及内存管理
  4. Linux用户管理详解大结局(下)
  5. 调用另一个cpp的变量_Il2Cpp Internals: 托管调用栈
  6. c++ 二维数组 排序_【算法】排序算法之计数排序
  7. stm32 CRC-16校验代码,单片机ModBUS-CRC16校验
  8. Android上按钮解决快速点击问题
  9. 银行客户交易行为预测:如何降低内存的使用量
  10. 测绘——AutoCAD教育版打印戳去除
  11. 关于ob函数的使用和应用场景
  12. 利用循环打印正方形和长方形
  13. 锁定计算机后忘记密码怎么解开,win10开机密码忘记了怎么办?win10电脑忘记开机密码的解锁方法...
  14. 【中科院】分子生物学-朱玉贤第四版-笔记-第10讲 分子生物学操作技术
  15. Flink源码篇,作业提交流程、作业调度流程、作业内部转换流程图
  16. 小括号与花括号小括号与花括号
  17. PPmoney基于Kubernetes的DevOps实践
  18. 注册电气工程师职业资格考试
  19. Node+Vue实现高校公寓管理系统设计与开发
  20. 【Nowcoder】2020牛客暑期多校训练营(第八场)I - Interesting Computer Game | 并查集、思维、离散化

热门文章

  1. 案例分享:智邦科技上海办公室WLAN改造项目
  2. 国内科技巨头的区块链布局:BAT多领域布局,迅雷领跑主链
  3. 记录每天背的单词,准备考研。(2月13日)
  4. Python爬虫实战 | (21) Scrapy+Selenium爬取新浪滚动新闻
  5. CentOS挂载光盘镜像安装rpm包
  6. oracle11g64位怎么用sql,PLSQL连接Oracle11g64位
  7. 在c/c++中调用Java方法
  8. C++语言风格流变史
  9. 针对商品标题冗长问题,阿里工程师怎么解决?...
  10. 2014驾考科目二倒车入库技巧