interceptor 拦截器的使用 (session验证)
生活随笔
收集整理的這篇文章主要介紹了
interceptor 拦截器的使用 (session验证)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
需要引入 http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
之前是3.0.xsd mvc:exclude-mapping 報(bào)錯(cuò) 需要改成3.2.xsd <mvc:interceptors>
<mvc:interceptor>
<!-- 需攔截的地址 -->
<!-- 一級(jí)目錄 -->
<mvc:mapping path="/**" />
<mvc:exclude-mapping path="/api*"/>
<bean class="com.xw.interceptor.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
攔截器類 實(shí)現(xiàn) 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失效");/*跳轉(zhuǎn)到500頁面 然后500在彈登錄超時(shí),2秒后自動(dòng)跳轉(zhuǎn)到登錄頁*/response.sendRedirect("/500.jsp");return false;}else{System.out.println("session驗(yàn)證通過");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 報(bào)錯(cuò) 需要改成3.2.xsd <mvc:interceptors>
<mvc:interceptor>
<!-- 需攔截的地址 -->
<!-- 一級(jí)目錄 -->
<mvc:mapping path="/**" />
<mvc:exclude-mapping path="/api*"/>
<bean class="com.xw.interceptor.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
攔截器類 實(shí)現(xiàn) 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失效");/*跳轉(zhuǎn)到500頁面 然后500在彈登錄超時(shí),2秒后自動(dòng)跳轉(zhuǎn)到登錄頁*/response.sendRedirect("/500.jsp");return false;}else{System.out.println("session驗(yàn)證通過");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+ 后臺(tái)主題UI框架 - 500錯(cuò)誤</title><meta name="keywords" content="H+后臺(tái)主題,后臺(tái)bootstrap框架,會(huì)員中心主題,后臺(tái)HTML,響應(yīng)式后臺(tái)"><meta name="description" content="H+是一個(gè)完全響應(yīng)式,基于Bootstrap3最新版本開發(fā)的扁平化主題,她采用了主流的左右兩欄式布局,使用了Html5+CSS3等現(xiàn)代技術(shù)"><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">服務(wù)器內(nèi)部錯(cuò)誤</h3>--%><%--<div class="error-desc">--%><%--服務(wù)器好像出錯(cuò)了...--%><%--<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('您的登錄已過期,請(qǐng)重新登錄',{icon: 1,time: 2000 //2秒關(guān)閉(如果不配置,默認(rèn)是3秒)},function () {window.parent.location.href="/login.jsp";});}); </script> </html>
轉(zhuǎn)載于:https://www.cnblogs.com/SeaWxx/p/9468586.html
總結(jié)
以上是生活随笔為你收集整理的interceptor 拦截器的使用 (session验证)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用数据库的分页实现
- 下一篇: 开始记录学习的足迹