interceptor 拦截器的使用 (session验证)

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

  

转载于:https://www.cnblogs.com/SeaWxx/p/9468586.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值