国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

Filter的使用實例

2019-11-14 09:09:08
字體:
來源:轉載
供稿:網友

一,創(chuàng)建Filter類 1.如何創(chuàng)建Filter類? 創(chuàng)建Filter類必須實現javax.servlet.Filter接口,在該接口中定義了三個方法: (1)void init(FilterConfig config):用于完成Filter的初始化 (2)void destroy():用于Filter銷毀前,完成某些資源的回收 (3)void doFilter(ServletRequest request,ServletResponse response,FilterChain chain):實現過濾功能 下面介紹一個日志Filter,這個Filter負責攔截用戶所有請求,并將請求的信息記錄在日志中。 這里寫圖片描述 這里寫圖片描述

二,配置Filter Filter可以認為是Servlet的“增強版”,因此配置Filter與配置Servlet非常的相似,都需要配置如下兩個部分: 1.配置Filter名 2.配置Filter攔截URL模式 Filter配置和Servlet配置的區(qū)別? Servlet通常只配置一個URL,而Filter可以同時攔截多個請求的URL。因此,在配置Filter的URL模式時通常會使用模式字符串,使得Filter可以攔截多個請求。與配置Servlet相似的是,配置Filter同樣有兩種方式 1.在Filter通過注解進行配置 2.在web.xml文件中通過配置文件進行配置

@WebFilter修飾一個Filter類,用于對Filter進行配置,它支持如下的屬性: 這里寫圖片描述 在web.xml文件中的配置如下 這里寫圖片描述 從這些代碼中可以看出配置Filter與配置Servlet非常相似,只是配置Filter時指定url-pattern為/*,即表示該Filter會攔截所有用戶請求。該Filter并未對客戶端請求進行額外的處理,僅僅在日志中簡要記錄請求的信息。 為該Web應用提供任意一個jsp頁面,并通過瀏覽器來訪問該JSP頁面,即可在Tomcat的控制臺看到信息。

實際上Filter和Servlet極其相似,區(qū)別只是Filter的doFilter()方法里多了一個FilterChain的參數,通過該參數可以控制是否放行用戶的請求,在實際項目中,Filter里doFilter()方法里的代碼就是從多個Servlet的service()方法里抽取通用代碼,通過使用Filter可以實現更好地代碼復用。 假設系統(tǒng)里包括多個Servlet,這些Servlet都需要進行一些的通用處理:比如權限控制,記錄日志等,這將導致在這些Servlet的service()方法中有部分代碼是相同的—–為了解決這種代碼重復的問題,可以考慮把這些通用處理提取到Filter中完成,這樣各Servlet中剩下的只是特定請求相關的處理代碼,而通用處理則交給Filter完成。

這里寫圖片描述 下面將定義一個較為實用的Filter,該Filter對用戶請求進行過濾,Filter將通過doFilter()方法來設置request編碼的字符集,從而避免每個JSP,Servlet都需要設置;而且還會驗證用戶是否登陸,如果用戶沒有登錄,系統(tǒng)直接跳轉到登陸頁面。 這里寫圖片描述 這里寫圖片描述 在web.xml文件中配置該文件的配置片段代碼如下: 這里寫圖片描述 相對應的JSP代碼如下 這里寫圖片描述 這里寫圖片描述


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 昌吉市| 得荣县| 安化县| 耒阳市| 仪陇县| 长丰县| 蒲江县| 正镶白旗| 忻州市| 资中县| 从化市| 高尔夫| 安平县| 万州区| 临沧市| 富蕴县| 抚松县| 夹江县| 页游| 遂溪县| 河北区| 阳新县| 大宁县| 泰兴市| 平果县| 屏山县| 文山县| 黔西| 平阳县| 泰州市| 邮箱| 奉节县| 肇州县| 定兴县| 峨眉山市| 将乐县| 铜梁县| 吉隆县| 华蓥市| 水富县| 黄大仙区|