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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Filter的使用實(shí)例

2019-11-11 07:17:19
字體:
供稿:網(wǎng)友

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

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

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

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

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


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 绍兴市| 江阴市| 友谊县| 德钦县| 尼玛县| 恩平市| 赞皇县| 抚顺县| 威宁| 高邑县| 子长县| 庆城县| 宜宾县| 林芝县| 弋阳县| 富蕴县| 平远县| 曲阳县| 宣汉县| 巴中市| 神木县| 永清县| 乌兰察布市| 阳西县| 碌曲县| 无极县| 通渭县| 广汉市| 鲁甸县| 宜宾县| 射阳县| 顺平县| 桂林市| 绥滨县| 保山市| 宿州市| 安丘市| 灵丘县| 隆德县| 任丘市| 北辰区|