下图是配置文件
<!-- 拦截器设置,处理session超时,自动跳转到登录页面 --> <context:annotation-config /> <context:component-scan base-package="com"/> <mvc:interceptors> <bean class="com.web.controller.newController.sessionController" /> </mvc:interceptors> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean>
下面是拦截处理
package com.web.controller.newController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import com.web.vo.UserSessionDto; public class sessionController extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { UserSessionDto session = (UserSessionDto) request.getSession() .getAttribute("user"); System.out.println("pre Handle-->"+(null != session)); if (null != session) { //request.getRequestDispatcher("/login.html").forward(request, response); response.sendRedirect("/login.html"); return false; } return super.preHandle(request, response, handler); } }
现在的情况是这样,sessionController可以拦截到全部请求,但是执行response.sendRedirect(“/login.html”);的时候,不会发生跳转
本人也试了request.getRequestDispatcher(“”).forward(request, response)
一点反应都没有
求指点。
解决方案:15分
哦 看错了 原来是filter
解决方案:20分
看一下你的逻辑能否正解?
if (null != session) {
//request.getRequestDispatcher(“/login.html”).forward(request, response);
response.sendRedirect(“/login.html”);
return false;
}
这里执行了吗?
if (null != session) {
//request.getRequestDispatcher(“/login.html”).forward(request, response);
response.sendRedirect(“/login.html”);
return false;
}
这里执行了吗?
解决方案:30分
后台返回值,js判断返回值能否跳转。
解决方案:15分
你发AJAX是用的JS框架还是原生态的?
解决方案:10分
有什么解决方法没,本人也正遇到这个问题,请大神解决!
解决方案:10分
用过EXTJS么?