zoukankan      html  css  js  c++  java
  • 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>
    

      

  • 相关阅读:
    C#使用各种时间戳及转换
    Rust借用机制的理解分析
    C# QRCoder 生成二维码
    Android 使用 JCIFS 访问共享文件
    Linux samba 创建共享盘
    WPF 等待对话框
    IIS实现Nginx功能:转发
    js jquery ajax跨域
    依赖注入
    .net standard
  • 原文地址:https://www.cnblogs.com/SeaWxx/p/9468586.html
Copyright © 2011-2022 走看看