91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Servlet Filter怎么實現系統登錄權限

發布時間:2021-05-27 18:09:02 來源:億速云 閱讀:208 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關使用Servlet Filter怎么實現系統登錄權限,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Filter適用的場景:

1.為一個web應用程序的新功能建立模型(可被添加到web應用程序中或者從web應用程序中刪除而不需要重寫基層應用程序代碼)

2.向過去的代碼添加新功能

3.用戶授權的Filter: Filter 負責檢查用戶請求,根據請求過濾用戶非法請求

4.日志Filter: 詳細記錄某些特殊的用戶請求

5.負責解碼的Filter: 包括對非標準編碼的請求解碼

Filter使用的位置:

過濾器放在web資源之前,可以在請求抵達它所應用的web資源(可以是一個Servlet、一個Jsp頁面,甚至是一個HTML頁面)之前截獲進入的請求,并且在它返回到客戶之前截獲輸出請求。Filter:用來攔截請求,處于客戶端與被請求資源之間,目的是重用代碼。Filter鏈,在web.xml中哪個先配置,哪個就先調用。在filter中也可以配置一些初始化參數。

Filter的用途:

1.在HttpServletRequest 到達Servlet 之前,攔截客戶的HttpServletRequest

2.根據需要檢查HttpServletRequest ,也可以修改HttpServletRequest 頭和數據

3.在HttpServletResponse 到達客戶端之前,攔截HttpServletResponse

4.根據需要檢查HttpServletResponse ,可以修改HttpServletResponse 頭和數據

一個Filter 可負責攔截多個請求或響應:一個請求或響應也可被多個請求攔截。

使用Filter進行系統登錄權限校驗

這里我們使用對session進行校驗的方式,當對某一模塊進行請求時,先校驗當前用戶的請求是否有session存在,如果有,繼續訪問,如果沒有,即跳轉到登錄頁。

第一步:

編寫自己的Filter攔截類,攔截類需要實現servlet的filter接口

public class WebFilter implements Filter{
  @Override
  public void init(FilterConfig filterConfig) throws ServletException {

  }

  @Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) servletRequest;
    HttpServletResponse response = (HttpServletResponse) servletResponse;

    HttpSession session = request.getSession();
    String currPath = request.getRequestURI();  //當前請求的URL

    if (session.getAttribute("logined") != null) {
      filterChain.doFilter(servletRequest, servletResponse);
    } else {
      response.sendRedirect("/login.jsp");
    }
  }

  @Override
  public void destroy() {

  }  
}

這里使用了攔截器鏈,當我們配置了多個攔截器的時候,服務器會按照web.xml中過濾器定義的先后循序組裝成一條鏈,然后一次執行其中的doFilter()方法。

第二步:

在web.xml中配置自定義的攔截器

web.xml:

<filter>
    <filter-name>webFilter</filter-name>
    <filter-class>com.test.interceptor.WebFilter</filter-class>
    <init-param>
      <param-name>skipPath</param-name>
      <param-value>ok.jsp</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>webFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

關于使用Servlet Filter怎么實現系統登錄權限就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海宁市| 南漳县| 鹿泉市| 周口市| 九龙坡区| 遵化市| 新和县| 宁强县| 徐闻县| 岱山县| 铁岭县| 水富县| 安溪县| 香格里拉县| 鄱阳县| 达日县| 唐海县| 鱼台县| 清水河县| 安顺市| 景谷| 井陉县| 淮安市| 醴陵市| 惠州市| 安乡县| 西平县| 广丰县| 乐陵市| 余姚市| 石城县| 嘉兴市| 太仆寺旗| 响水县| 正定县| 五华县| 黄冈市| 桑植县| 聂拉木县| 西平县| 澄城县|