最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring MVC過濾器-登錄過濾的代碼實現(xiàn)

 更新時間:2017年01月06日 17:19:35   作者:geloin  
本篇文章主要介紹了Spring MVC過濾器-登錄過濾,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。

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

以下代碼是繼承OncePerRequestFilter實現(xiàn)登錄過濾的代碼:

/** 
 * 
 * @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) { 
        // 執(zhí)行過濾 
        // 從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('網(wǎng)頁過期,請重新登錄!');"); 
          builder.append("window.top.location.href='"); 
          builder.append(loginPage); 
          builder.append("';"); 
          builder.append("</script>"); 
          out.print(builder.toString()); 
        } else { 
          // 如果session中存在登錄者實體,則繼續(xù) 
          filterChain.doFilter(request, response); 
        } 
      } else { 
        // 如果不執(zhí)行過濾,則繼續(xù) 
        filterChain.doFilter(request, response); 
      } 
    } else { 
      // 如果uri中不包含background,則繼續(xù) 
      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> 

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 深入理解java中this關鍵字的使用

    深入理解java中this關鍵字的使用

    這篇文章主要介紹了this關鍵字的使用,通過調(diào)用構造方法,使用this關鍵字調(diào)用當前對象等詳細介紹了this的特點和使用,需要的朋友可以參考下
    2017-08-08
  • java List去掉重復元素的幾種方式(小結)

    java List去掉重復元素的幾種方式(小結)

    這篇文章主要介紹了java List去掉重復元素的幾種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • 詳解servlet的url-pattern匹配規(guī)則

    詳解servlet的url-pattern匹配規(guī)則

    本篇文章主要介紹了=servlet的url-pattern匹配規(guī)則,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • 一篇文章帶你了解JAVA面對對象應用

    一篇文章帶你了解JAVA面對對象應用

    Java是一門面向對象的語言。對象是Java程序中的基本實體。除了對象之外Java程序同樣處理基本數(shù)據(jù)。下面這篇文章主要給大家總結了關于Java中面向對象的知識點,需要的朋友可以參考借鑒,下面來一起看看吧
    2021-08-08
  • 深入理解Java中的WeakHashMap

    深入理解Java中的WeakHashMap

    這篇文章主要介紹了深入理解Java中的WeakHashMap,WeakHashMap從名字可以得知主要和Map有關,不過還有一個Weak,我們就更能自然而然的想到這里面還牽扯到一種弱引用結構,因此想要徹底搞懂,我們還需要知道四種引用,需要的朋友可以參考下
    2023-09-09
  • java1.5中訪問環(huán)境變量

    java1.5中訪問環(huán)境變量

    這篇文章主要介紹了如何在java1.5中訪問環(huán)境變量,使用System.getenv()可以訪問環(huán)境變量
    2014-01-01
  • JavaGUI菜單欄與文本和密碼及文本域組件使用詳解

    JavaGUI菜單欄與文本和密碼及文本域組件使用詳解

    這篇文章主要介紹了JavaGUI菜單欄與文本和密碼及文本域組件使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-03-03
  • intellij idea配置外部dtd文件的方法

    intellij idea配置外部dtd文件的方法

    這篇文章主要介紹了intellij idea配置外部dtd文件的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • Spring RestTemplate的使用與踩坑

    Spring RestTemplate的使用與踩坑

    RestTemplate是一個執(zhí)行HTTP請求的同步阻塞式工具類,它僅僅只是在HTTP客戶端庫基礎上,封裝了更加簡單易用的模板方法API,方便程序員利用已提供的模板方法發(fā)起網(wǎng)絡請求和處理,能很大程度上提升我們的開發(fā)效率
    2023-02-02
  • Java Stream map, Collectors(toMap, toList, toSet, groupingBy, collectingAndThen)使用案例

    Java Stream map, Collectors(toMap, toLis

    這篇文章主要介紹了Java Stream map, Collectors(toMap, toList, toSet, groupingBy, collectingAndThen)使用案例,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09

最新評論

江门市| 济源市| 泗水县| 南郑县| 兴文县| 深水埗区| 南充市| 吉木萨尔县| 建德市| 南召县| 澳门| 中卫市| 蓬安县| 城口县| 岳池县| 古丈县| 贵港市| 喀什市| 沁源县| 河西区| 东乡族自治县| 湖州市| 常山县| 东丰县| 廊坊市| 子长县| 青海省| 固原市| 中山市| 拉萨市| 连城县| 保德县| 安西县| 太白县| 丰原市| 德庆县| 大埔县| 横山县| 上杭县| 阿克陶县| 新邵县|