gpt4 book ai didi

java - 拦截器 preHandle() 未重定向到 login.html

转载 作者:太空宇宙 更新时间:2023-11-04 06:53:54 25 4
gpt4 key购买 nike

我有一个 Spring 应用程序。我引入了一个sessionInterceptor来防止直接访问index.jsp。如果用户未登录,则不应访问index.jsp,而应重定向到login.html。该代码正在调用 preHandle() 方法并运行所有代码,但在 return false 之后,它不会重定向到 login.html。怎么了?有高手来帮忙吗?提前致谢。

我在 SessionInterceptor.java 中的 preHandle() 是:

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

HttpSession session = request.getSession();

// if displaying the home page, make sure the user is reloaded.
if (request.getRequestURI().endsWith("login.html")) {
session.removeAttribute("isUserLoggedIn");
}

if (session.getAttribute("isUserLoggedIn") == null && !request.getRequestURI().endsWith("login")) {
response.sendRedirect(request.getContextPath() + "/login.html");
return false;
}
return true;
}

我也尝试过以下方法,但都是徒劳。

RequestDispatcher dispatcher = request.getServletContext().getRequestDispatcher("/login.html");
dispatcher.forward(request, response);

我的dispatcher-servlet.xml设置是:

<bean id="sessionInterceptor" class="com.xxx.xxx.xxx.SessionInterceptor" />
<bean id="annotationMapper" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="sessionInterceptor" />
</list>
</property>
</bean>

<!-- Configures Handler Interceptors -->
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="com.xxx.xxx.xxx.SessionInterceptor" />
</mvc:interceptor>
</mvc:interceptors>

web.xml 是:

  <servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>

最佳答案

您可以尝试重定向到将从 Controller 捕获的逻辑路径尝试一下

response.sendRedirect("/NotLogged");

然后创建一个像这样的函数:

@RequestMapping(value = {"/NotLogged"}, method = RequestMethod.GET)
public String notLogged() {
return "login.html";
}

希望它对你有用!

关于java - 拦截器 preHandle() 未重定向到 login.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22990378/

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