Servlet和過濾器有什麼區別?你建議用什麼來授權頁面?Servlet vs過濾器
51
A
回答
89
如果您想根據特定條件篩選和/或修改請求,請使用Filter
。當您想要控制,預處理和/或後處理請求時,請使用Servlet
。
的Java EE tutorial提到以下有關過濾器:
過濾器是一個對象,它可以將一個請求或響應的報頭和內容(或兩者)。過濾器與Web組件的不同之處在於過濾器通常本身不會創建響應。相反,過濾器提供的功能可以「附加」到任何種類的網絡資源。因此,一個過濾器不應該對其作爲過濾器的Web資源有任何依賴關係;這樣它可以由多種類型的網絡資源組成。是
,一個過濾器可以執行的主要任務如下:
- 查詢請求並採取相應的行動。
- 阻止請求和響應對進一步傳遞。
- 修改請求標頭和數據。您可以通過提供自定義版本的請求來完成此操作。
- 修改響應標頭和數據。您可以通過提供自定義版本的響應來執行此操作。
- 與外部資源進行交互。
對於授權,一個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);
}
}
15
過濾器最適合授權。這是因爲它們可以配置爲運行網站的所有頁面。所以你只需要一個過濾器來保護你的所有頁面。
+0
所有頁面=可能需要登錄的頁面。 – UnKnown 2016-09-06 21:11:44
1
使用過濾器,我們可以改善的servlet到性能 當請求來自我們會按要求進行預處理,如果滿足要求則我們可以轉發給servlet,否則給客戶提供消息請求中提供相應的信息。
相關問題
- 1. Spring攔截器vs servlet過濾器
- 2. Django:object_set vs過濾器
- 3. Java Servlet過濾器和SSL
- 4. Servlet過濾器重寫URL
- 5. Servlet過濾器與ServletRequestListener
- 6. Servlet過濾器和OSGi HttpService
- 7. JSF的servlet過濾器
- 8. 檢索從Servlet過濾器
- 9. Servlet過濾器不工作
- 10. Servlet過濾器繼承
- 11. 過濾器的servlet在NetBeans
- 12. Servlet過濾器url映射
- 13. 彈簧servlet過濾器
- 14. Servlet過濾器和線程?
- 15. 認證Servlet過濾器
- 16. 的servlet過濾
- 17. servlet/servlet映射和過濾器/過濾器映射之間的區別?
- 18. Servlet過濾器 - 不要將過濾器應用於特定的過濾器
- 19. 剩下的WS過濾器就像一個Servlet過濾器?
- 20. 過濾器註冊時的Servlet過濾器順序編程
- 21. Django過濾器vs排除
- 22. WordPress的過濾器VS. action
- 23. itertools.ifilter VS.過濾器VS.列表解析
- 24. Servlet過濾器中的錯誤
- 25. 在Servlet過濾器中請求null null
- 26. Servlet訪問過濾器和角色
- 27. Servlet過濾器:有`的doFilter(HttpServletRequest的)`
- 28. 使用Servlet過濾器的urlrewrite
- 29. servlet過濾器映射重疊
- 30. Servlet過濾器模糊不清?
感謝您澄清+1對於 – 2013-10-24 10:34:33
提供的鏈接是非常好的。也爲此感謝。 – 2013-10-24 10:39:34