一、JsessionId
jsessionid是标识session的,它保存在cookie中。一般情况下不会出现在url中,服务器会从客户端的cookie中取出来。
但是如果客户端禁用了cookie的话,就要重写url了,显式的将jsessionid重写到Url中,方便服务器来通过这个找到session的id。如:url:http://www.xxx.com/xxx_app;jsessionid=xxxxxxxxxx?a=x&b=x…
response.encodeURL()和 response.encodeRedirectURL()
它们会判断cookie是否可用,如果禁用了会解析出url中的 jsessionid,并连接到指定的url后面,如果没有找到jessionid会自动帮我们生成一个。
二、过滤
1、原因:
这个jsessionid很多时候会引起严重的问题,如果你使用上述带有jsessionid的url直接访问网站,会出现访问出错。
2、过滤
web.xml
<filter>
<filter-name>jessionidFilter</filter-name>
<filter-class>spring.filter.RemoveUrlJsessionIdFilter</filter-class>
<!--异步支持 -->
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>jessionidFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>