100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 关于解决SpringBoot中使用redirect重定向后 页面跳转后ulr地址后面出现jsessionid=xxxxxxx的问题

关于解决SpringBoot中使用redirect重定向后 页面跳转后ulr地址后面出现jsessionid=xxxxxxx的问题

时间:2021-06-04 00:46:07

相关推荐

关于解决SpringBoot中使用redirect重定向后 页面跳转后ulr地址后面出现jsessionid=xxxxxxx的问题

关于解决SpringBoot中使用redirect重定向后,页面跳转后ulr地址后面出现jsessionid=xxxx的问题

参考链接:/zshake/article/details/37658147

在controller中,做了一个简单的登录判断,判断完成后使用redirect重定向到另一个页面

原本代码如下:

@PostMapping("/login")public String main(String userName, String password, HttpSession session, Model model){if ("admin".equals(userName) && "admin".equals(password)){//把登录成功的用户保存起来session.setAttribute("username",userName);session.setAttribute("password",password);//登录成功重定向到main.htmlreturn "redirect:main.html";}else {model.addAttribute("msg","账号密码错误");return "redirect:login";}}

但是这样重定向的话,每次跳转到main.html页面时,url后都会跟一串 jsessionid=DE019BAFC91CB3A36A457EAF6AE2A5CE。

如下图:

这样复制这个url去ie中就不需要再登录,相对来说不合理。

于是在网上找资料研究怎么回事。

首先找到一个解决方法为在application.yml中添加配置,配置代码如下

session:tracking-modes: cookiecookie:http-only: true

如图

但是在我这里没有起到作用

然后又找到一个解决方法是为启动类继承SpringBootServletInitializer类,然后重写onStartup方法

代码如下:

public class BigScreenApplication extends SpringBootServletInitializer {//去除url中含有的JSESSIONID@Overridepublic void onStartup(ServletContext servletContext) throws ServletException {super.onStartup(servletContext);servletContext.setSessionTrackingModes(Collections.singleton(SessionTrackingMode.COOKIE));SessionCookieConfig sessionCookieConfig = servletContext.getSessionCookieConfig();sessionCookieConfig.setHttpOnly(true);}public static void main(String[] args) {SpringApplication.run(BigScreenApplication.class, args);}}

如下图

但是在我这里还是没有起到作用

最后找到一个起作用的解决方法。

就是不通过Spring MVC的redirect做重定向,自己直接调用**response.sendRedirect()**方法来实现

代码如下:

@PostMapping("/login")public String main(String userName, String password, HttpSession session, Model model, HttpServletResponse response) throws IOException {if ("admin".equals(userName) && "admin".equals(password)){//把登录成功的用户保存起来session.setAttribute("username",userName);session.setAttribute("password",password);//登录成功重定向到main.htmlresponse.sendRedirect("/main.html");return null;}else {model.addAttribute("msg","账号密码错误");return "redirect:login";}}

如图:

如图所示,成功解决

.

.

.

.

.

感谢阅读,有不足之处欢迎指出,共同探讨

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。