需要引入
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>