需要引入
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
之前是3.0.xsd mvc:exclude-mapping 报错 需要改成3.2.xsd
<mvc:interceptors>
<mvc:interceptor>
<!-- 需拦截的地址 -->
<!-- 一级目录 -->
<mvc:mapping path="/**" />
<mvc:exclude-mapping path="/api*"/>
<bean class="com.xw.interceptor.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
拦截器类 实现 HandlerInterceptor
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* @author 12561
*/
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
User user= (User)session.getAttribute("user");
/**
* 判断session有没有失效
*/
if (user==null || "".equals(user)){
System.out.println("session失效");
/*跳转到500页面 然后500在弹登录超时,2秒后自动跳转到登录页*/
response.sendRedirect("/500.jsp");
return false;
}else{
System.out.println("session验证通过");
return true;
}
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
500 页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>H+ 后台主题UI框架 - 500错误</title>
<meta name="keywords" content="H+后台主题,后台bootstrap框架,会员中心主题,后台HTML,响应式后台">
<meta name="description" content="H+是一个完全响应式,基于Bootstrap3最新版本开发的扁平化主题,她采用了主流的左右两栏式布局,使用了Html5+CSS3等现代技术">
<link rel="shortcut icon" href="favicon.ico"> <link href="/static/css/bootstrap.min.css?v=3.3.5" rel="stylesheet">
<link href="/static/css/font-awesome.min.css?v=4.4.0" rel="stylesheet">
<link href="/static/css/animate.min.css" rel="stylesheet">
<link href="/static/css/style.min.css?v=4.0.0" rel="stylesheet"><base target="_blank">
<script src="/static/js/jquery.min.js"></script>
<script src="/static/layui/layui.js"></script>
</head>
<body class="gray-bg">
<%--<div class="middle-box text-center animated fadeInDown">--%>
<%--<h1>500</h1>--%>
<%--<h3 class="font-bold">服务器内部错误</h3>--%>
<%--<div class="error-desc">--%>
<%--服务器好像出错了...--%>
<%--<br/>您可以返回看看--%>
<%--<br/><a href="/login.jsp" class="btn btn-primary m-t">主页</a>--%>
<%--</div>--%>
<%--</div>--%>
<script src="/static/js/jquery.min.js?v=2.1.4"></script>
<script src="/static/js/bootstrap.min.js?v=3.3.5"></script>
<script type="text/javascript" src="http://tajs.qq.com/stats?sId=9051096" charset="UTF-8"></script>
</body>
<script>
layui.use('layer', function(){
var layer = layui.layer ;
layer.msg('您的登录已过期,请重新登录',{
icon: 1,
time: 2000 //2秒关闭(如果不配置,默认是3秒)
},function () {
window.parent.location.href="/login.jsp";
});
});
</script>
</html>