interceptor 拦截器的使用 (session验证)
生活随笔
收集整理的這篇文章主要介紹了
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 {@Overridepublic 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;}}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {} }
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 {@Overridepublic 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;}}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {}@Overridepublic 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
總結
以上是生活随笔為你收集整理的interceptor 拦截器的使用 (session验证)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用数据库的分页实现
- 下一篇: 开始记录学习的足迹