[英]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 filters
的order of the invocation of filters
並由您在DD
定義的filter elements
driven
。
過濾器可以補充Servlets。 對於用法,您應該閱讀“過濾器的基本要素” 。 過濾器使用Chain of Responsibility GoF模式實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.