?? servlet_filter.txt
字號:
第六章 過濾器編程1、過濾器 Filter 也是一個對象 過濾器位于客戶端和服務端的請求資源之間 1) 請求的資源可以是JSP、servlet html等 2) 它們在資源執行的前后被執行 3) request和response在經過過濾器的時候可以被修改(加入一些信息) 4)多個過濾器可以形成一個鏈,每個過濾器可以作為鏈中的一個部分 5) 能夠使用過濾器做以下工作: session的管理、日志、安全檢查、編碼和XML格式的轉換2、過濾器能做什么 1)例如授權驗證,延遲登陸(在登陸前先經過過濾器進行一些信息處理,比如往請求中加入些信息) 2) 設置編碼格式 3) 記錄日志、審計審核、點擊統計 4) 數據處理 5) 進行數據加密 6) 將XSL樣式腳本應用到response中(通過XSL樣式表將xml轉換成html) 二。 1)判斷是否登錄等 缺點: 優點:對很多的請求,可以只用一個Filter來處理, 2)中文處理(在配置文件中可以設定) 3) 3、Filter可以組成一個鏈狀結構,調用Filter的順序根據web.xml中Filter的配置順序 Fileter鏈:4、包裝器的作用 中途截取request或者response: 1)[Http]ServletRequestWapper:設置額外的請求屬性 2)[Http]ServletResponseWrapper:增加額外的內容 3)過濾器和servlet能包裝request和response 4)讓我們能夠擴展一個請求數據的資源 改變內容類型 增加或者刪除請求頭的信息 5)包裝response能夠捕獲和改變response5、包裝類 1)request包裝類將覆蓋getters和setters方法 2)response包裝類通常覆蓋getWriter和getOutputStram 對于被調用者來說,為自己提供緩存用于寫入response返回的信息,并且能處理緩存。 3)如果response包裝器提供它們自己的緩存 必須處理調用者的response頭部信息 特別要記住在頭部設定信息的長度6.Filter的方法: (1)public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) // FilterChain chain 也有一個DoFilter()方法,將請求轉給下一個Filter對象 //直至轉到Servlet應用 throws java.io.IOException, ServletException (2)public void init(FilterConfig filterConfig)//之調用一次,在裝載時調用 throws ServletException{} (3)public void destroy()7)filter的生命周期:練習:ch6/AuthFilter.javalogin.htmlch6/LoginServlet.javaauth/success.html
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -