gpt4 book ai didi

java - 如何在 spring mvc 拦截器中验证 session

转载 作者:行者123 更新时间:2023-11-30 03:28:40 24 4
gpt4 key购买 nike

我是 spring 框架的新手。在我的代码中,我使用拦截器来检查 session 是否存在。如果 session 存在,我允许调用 Controller ,否则我重定向登录页面。下面是我的代码。

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,



Users user=(Users) session.getAttribute("user");
if(user == null)
{
System.err.println("Request Path : ");
response.sendRedirect("index");
return false;
}
else
{
return true;
}
}

但此代码未成功重定向。我收到以下错误,

In Mozilla i get below error
The page is not redirecting properly
In chorme i get below error?
This web page has redirect loop

如何解决这个问题?任何帮助将不胜感激!!!

最佳答案

只是一个疯狂的猜测,因为你忘了说明你的拦截器是如何配置的。我认为这可能是由于拦截器应用于登录页面index引起的。

如果这是真的,任何页面都会要求浏览器重定向到 index 页面,但 index 页面本身会向浏览器发送重定向请求。

正确的做法是配置拦截器忽略登录页面

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,

// ignore login page
if (request.getServletPath() == "/index") { // BEWARE : to be adapted to your actual login page
return true;
}

Users user=(Users) session.getAttribute("user");
if(user == null)
{
System.err.println("Request Path : ");
response.sendRedirect("index");
return false;
}
else
{
return true;
}
}

您还可以使用 SpringMVC 配置来将拦截器应用于登录页面

但无论如何,如果您想构建一个严肃的应用程序,我的建议是看看 Spring Security它很好地集成到 Spring MVC 应用程序中,并附带了一堆示例来避免上述问题(以及其他问题......)

关于java - 如何在 spring mvc 拦截器中验证 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29598757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com