EasyUI+SpringMVC配置session过期跳转页面
问题描述
在开发过程中,session过期是常见的,当session过期我们就能看到登录信息为null,这种问题最常见的处理方法就是判断session是否过期,如果过期跳转到登陆页面。这篇博客分享一下在easyUI和springmvc情况下如何配置。
SpringMVC拦截器配置
在SpringMVC中提供自定义拦截器的扩展,这时候就可以通过自定义完成对判断:
public class HandlerInterceptor1 extends HandlerInterceptorAdapter {//此处一般继承HandlerInterceptorAdapter适配器即可
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if (request.getHeader("x-requested-with") != null&& request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) response.setHeader("sessionstatus", "timeout");//在响应头设置session状态
response.getWriter().print("timeout"); //打印一个返回值,
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("===========HandlerInterceptor1 postHandle");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("===========HandlerInterceptor1 afterCompletion");
}
}
完成拦截器配置
在springmvc中配置拦截器是用<mvc:interceptors>和
<mvc:interceptor>标签完成的,具体配置过程为
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/*/*" />
<bean class="com.lenovo.lstp.mam.interceptor.HandlerInterceptor1" >
<property name="allowUrls">
<list>
<value>/login/login.do</value>
<value>/common/language.do</value>
</list>
</property>
</bean>
</mvc:interceptor>
</mvc:interceptors>
easyui设置全局JS完成跳转
在easyui前端添加一个全局的js完成判断和跳转功能,具体实现为:
$.ajaxSetup({
error: function (XMLHttpRequest, textStatus, errorThrown){
if(XMLHttpRequest.status==403){
alert("您没有权限访问此资源或进行此操作");
return false;
}
},
complete:function(XMLHttpRequest,textStatus){
var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,sessionstatus,
if(sessionstatus=="timeout"){
//如果超时就处理 ,指定要跳转的页面
var top = getTopWinow(); //获取当前页面的顶层窗口对象
alert("登录超时, 请重新登录.");
top.location.href=path+"/login.jsp"; //跳转到登陆页面
}
}
});
结论
通过上面三个方面的配置即可完成session过期跳转相应页面。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。