国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Spring MVC過濾器-登錄過濾的代碼實現

2019-11-26 13:18:14
字體:
來源:轉載
供稿:網友

一個非常簡單的登錄權限攔截器,具體代碼如下:

以下代碼是繼承OncePerRequestFilter實現登錄過濾的代碼:

/**  *  * @author geloin  * @date 2012-4-10 下午2:37:38  */ package com.test.spring.filter;  import java.io.IOException; import java.io.PrintWriter;  import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;  import org.springframework.web.filter.OncePerRequestFilter;  /**  * 登錄過濾  *  * @author geloin  * @date 2012-4-10 下午2:37:38  */ public class SessionFilter extends OncePerRequestFilter {    /*    * (non-Javadoc)    *    * @see    * org.springframework.web.filter.OncePerRequestFilter#doFilterInternal(    * javax.servlet.http.HttpServletRequest,    * javax.servlet.http.HttpServletResponse, javax.servlet.FilterChain)    */   @Override   protected void doFilterInternal(HttpServletRequest request,       HttpServletResponse response, FilterChain filterChain)       throws ServletException, IOException {      // 不過濾的uri     String[] notFilter = new String[] { "login.html", "index.html" };      // 請求的uri     String uri = request.getRequestURI();      // uri中包含background時才進行過濾     if (uri.indexOf("background") != -1) {       // 是否過濾       boolean doFilter = true;       for (String s : notFilter) {         if (uri.indexOf(s) != -1) {           // 如果uri中包含不過濾的uri,則不進行過濾           doFilter = false;           break;         }       }       if (doFilter) {         // 執行過濾         // 從session中獲取登錄者實體         Object obj = request.getSession().getAttribute("loginedUser");         if (null == obj) {           // 如果session中不存在登錄者實體,則彈出框提示重新登錄           // 設置request和response的字符集,防止亂碼           request.setCharacterEncoding("UTF-8");           response.setCharacterEncoding("UTF-8");           PrintWriter out = response.getWriter();           String loginPage = "....";           StringBuilder builder = new StringBuilder();           builder.append("<script type=/"text/javascript/">");           builder.append("alert('網頁過期,請重新登錄!');");           builder.append("window.top.location.href='");           builder.append(loginPage);           builder.append("';");           builder.append("</script>");           out.print(builder.toString());         } else {           // 如果session中存在登錄者實體,則繼續           filterChain.doFilter(request, response);         }       } else {         // 如果不執行過濾,則繼續         filterChain.doFilter(request, response);       }     } else {       // 如果uri中不包含background,則繼續       filterChain.doFilter(request, response);     }   }  } 

寫完過濾器后,需要在web.xml中進行配置:

<filter>   <filter-name>sessionFilter</filter-name>   <filter-class>com.test.spring.filter.SessionFilter</filter-class> </filter> <filter-mapping>   <filter-name>sessionFilter</filter-name>   <url-pattern>/*</url-pattern> </filter-mapping> 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临沂市| 临漳县| 建瓯市| 衡南县| 康乐县| 萍乡市| 扎赉特旗| 西城区| 泗阳县| 资源县| 观塘区| 旌德县| 罗定市| 汝城县| 三亚市| 桐庐县| 盐源县| 高唐县| 林西县| 容城县| 上栗县| 永州市| 泸州市| 手机| 抚顺县| 北海市| 扶沟县| 错那县| 罗定市| 通化市| 宜兴市| 哈尔滨市| 郎溪县| 岳普湖县| 合水县| 舞阳县| 房产| 厦门市| 韩城市| 黄浦区| 宝丰县|