簡體   English   中英

servlet中過濾器和鏈的用途是什么?

[英]What is the use of filter and chain in servlet?

chain.doFilter(req,res);
我們在servlet程序中使用了它。 我想知道servlet中doFilter()方法的用法是什么? 還有什么在Java servlet中使用過濾器和鏈概念?

Servlet過濾器是責任鏈模式的實現

關鍵是每個過濾器都保持在它所映射到的每個servlet的“前面”和“后面”。 因此,如果您在servlet周圍有一個過濾器,那么您將擁有:

void doFilter(..) { 
    // do stuff before servlet gets called

    // invoke the servlet, or any other filters mapped to the target servlet
    chain.doFilter(..);

    // do stuff after the servlet finishes
}

您還可以選擇調用chain.doFilter(..)在這種情況下,永遠不會調用servlet。 這對於安全目的很有用 - 例如,您可以檢查是否有用戶登錄。

什么是過濾器?

Filters用於在將intercept and process requests發送到servlet之前intercept and process requests (如果是請求)。

要么

Filters用於在intercept and process a response由servlet發送回客戶端之前intercept and process a response

在此輸入圖像描述

為什么使用它們?

- 過濾器可以執行安全檢查。

- 壓縮響應流。

- 創建不同的響應。

doFilter()做什么?

every time容器確定應將過濾器應用於頁面every time ,都會調用doFilter()

它需要three arguments

- > ServletRequest

- > ServlerResponse

- > FilterChain

functionality that your filter supposed to do執行的所有functionality that your filter supposed to do都是在doFilter()方法中實現的。

什么是FilterChain?

您的filters do not know anything about the other filters and servlet FilterChain知道order of the invocation of filtersorder of the invocation of filters並由您在DD定義的filter elements driven

過濾器可以補充Servlets。 對於用法,您應該閱讀“過濾器的基本要素” 過濾器使用Chain of Responsibility GoF模式實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM