3 回答

TA貢獻1893條經驗 獲得超10個贊
Filter當您要根據特定條件過濾和/或修改請求時,請使用。使用Servlet時要控制,預處理和/或后處理請求。
在Java EE的教程中提到有關篩選如下:
過濾器是可以轉換請求或響應的標頭和內容(或兩者)的對象。過濾器與Web組件的不同之處在于,過濾器本身通常不會創建響應。相反,過濾器提供的功能可以“附加”到任何種類的Web資源。因此,過濾器不應依賴于其充當過濾器的Web資源。這樣,它可以由多種類型的Web資源組成。
過濾器可以執行的主要任務如下:
查詢請求并采取相應措施。
阻止請求和響應對進一步傳遞。
修改請求標頭和數據。您可以通過提供請求的自定義版本來實現。
修改響應頭和數據。您可以通過提供響應的自定義版本來執行此操作。
與外部資源進行交互。
對于授權,a Filter是最合適的。這是過濾器如何檢查登錄用戶請求的基本啟動示例:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
if (((HttpServletRequest) request).getSession().getAttribute("user") == null) {
// User is not logged in. Redirect to login page.
((HttpServletResponse) response).sendRedirect("login");
} else {
// User is logged in. Just continue with request.
chain.doFilter(request, response);
}
}

TA貢獻1836條經驗 獲得超5個贊
使用過濾器可以提高Servlet的性能-當請求到來時,我們可以根據請求執行預處理,如果請求滿足,則可以轉發到servlet,否則向消息提供消息給客戶端,以在請求中提供適當的信息。
添加回答
舉報