在HTML中用 时会发现得到的链接会是 " /项目名/;jsessionid=xxxxxxxxxxxxxxxxxxxx" 这样的形式,这样再去拼接链接访问就会报错。访问不到指定的页面。
在启动类中继承SpringBootServletInitializer,然后重写这个方法
-
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);
-
}
#session.tracking-modes是在servlet包下的,所以应该这样写:
server:
servlet:
session:
#会话sessionid存在cookie中,方便追踪,不设置会携带在url后面
tracking-modes: cookie
jsp中:
index.jsp中的编码是
<c:redirect url=“search.html?changecolor=search”/>
结果每次第一次登录都会在地址栏上出现了jsessionid问题
这个是由jstl的c:redirect标签生成的,当检查不到cookie的时候自动使用url重写来实现session的管理。
将其改为下面这句话就可以轻松去掉jsessionid的问题
<%
response.sendRedirect(“search.html?changecolor=search”);
%>