知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >
Web開發(fā)中的過濾器設(shè)計(jì)
發(fā)表時(shí)間:2007-4-25
發(fā)布人:葵宇科技
瀏覽次數(shù):55
五一快到,辦公室天天有人討論去哪去哪玩的,明天公司又集體組織在島內(nèi)玩一天,現(xiàn)在都沒什么心思工作了,還好任務(wù)不多,老總出差不在,可以放肆一下,呵呵..
翻了翻以前學(xué)習(xí)web開發(fā)時(shí)留下的學(xué)習(xí)文檔,感覺有些拿出來復(fù)習(xí)復(fù)習(xí)還是很有用的。下面是一篇有關(guān)web.xml中過濾器設(shè)計(jì)的學(xué)習(xí)體會(huì),希望對(duì)大家有些幫助。
Web開發(fā)中的過濾器設(shè)計(jì)
在web.xml文件中,過濾器的聲明如下:
Element : filter
Content Model : (((description*, display-name*, icon*)), filter-name, filter-
class, init-param*)
其中的filter-name在引用該filter時(shí)就會(huì)用到。
init-param 可以有多個(gè),用來對(duì)該過濾器定義的參數(shù)(通常是全局變量)進(jìn)行初始化,初始化是在調(diào)用該過濾器時(shí)發(fā)生的。注意的是要真正讓其起作用,還需要在該過濾器的init方法內(nèi)進(jìn)行調(diào)用:
this.param = filterConfig.getInitParameter("param");///得到在web.xml中配置的編碼
為了讓過濾器工作,只聲明是不夠的,我們還需要確定該Filter的作用域:
Element : filter-mapping
Content Model : (filter-name, (url-pattern | servlet-name), dispatcher*)
filter-name 對(duì)應(yīng)filter聲明的filter-name
url-pattern 為url地址映射,任何url字符串含有該url-pattern的定義將被映射(或者說,重定向)到filter-name。
servlet-name 與url-pattern類似,一般的url-pattern定義的是jsp頁面的重定向,而servlet-name定義的是對(duì)servlet類的引用。注意的是servlet在大多數(shù)的應(yīng)用服務(wù)器的web容器內(nèi)具有一個(gè)缺省的url路徑:
http://host/webAppPrefix/servlet/packageName.ServletName
如果直接在頁面調(diào)用servlet會(huì)暴露servlet的真實(shí)地址,并且不利于定制url,也就需要我們對(duì)其進(jìn)行一定的設(shè)置。另外,如果使用缺省的url是不能從init(jsp對(duì)應(yīng)于jspinit)方法讀取初始化參數(shù)的。為避免誤用缺省的url造成不能初始化參數(shù)的問題,可以使用下面兩種方法:
1、 在每個(gè)Web應(yīng)用中重新映射/servlet/模式
也就是重定向servlet
2、 全局關(guān)閉激活器servlet
這個(gè)在某些應(yīng)用服務(wù)器是不支持的。它需要對(duì)服務(wù)器的web.xml(不是項(xiàng)目中的web.xml)進(jìn)行配置。
過濾器對(duì)請(qǐng)求分發(fā)器(
Request Dispatcher)的控制
Servlet 2.4版的Web程序增強(qiáng)了filter和request dispatcher的配合功能,這樣過濾器可以根據(jù)請(qǐng)求分發(fā)器(request dispatcher)所使用的方法有條件地對(duì)Web請(qǐng)求進(jìn)行過濾。
在web.xml中,Dispatcher的有4個(gè)值可以選擇:REQUEST、FORWARD、INCLUDE、ERROR。缺省或不設(shè)置時(shí)為REQUEST
要注意的是,Dispatcher可以對(duì)傳進(jìn)來的請(qǐng)求(request)起作用,也可以對(duì)傳遞出去的請(qǐng)求(response)進(jìn)行控制。
設(shè)定元素的過濾器
·只有當(dāng)request直接來自客戶(來自客戶端的請(qǐng)求),過濾器才生效,對(duì)應(yīng)為REQUEST條件。
·只有當(dāng)request被一個(gè)請(qǐng)求分發(fā)器使用forward()方法轉(zhuǎn)到一個(gè)Web構(gòu)件時(shí)(采用或定義),對(duì)應(yīng)稱為FORWARD條件。
·類似地,只有當(dāng)request被一個(gè)請(qǐng)求分發(fā)器使用include()方法轉(zhuǎn)到一個(gè)Web構(gòu)件時(shí)(采用或定義),對(duì)應(yīng)稱為INCLUDE條件。
·只有當(dāng)request被一個(gè)請(qǐng)求分發(fā)器使用“錯(cuò)誤信息頁”機(jī)制方法轉(zhuǎn)到一個(gè)Web構(gòu)件時(shí),對(duì)應(yīng)稱為ERROR條件。

相關(guān)案例查看更多
相關(guān)閱讀
- 麗江小程序開發(fā)
- web開發(fā)
- 公眾號(hào)模板消息
- 云南網(wǎng)站建設(shè)選
- 云南做百度小程序的公司
- 網(wǎng)站建設(shè)開發(fā)
- 網(wǎng)站建設(shè)公司地址
- 百度排名
- 云南小程序開發(fā)制作公司
- 網(wǎng)絡(luò)公司
- 云南網(wǎng)站建設(shè)公司哪家好
- 云南小程序開發(fā)首選品牌
- 昆明小程序開發(fā)聯(lián)系方式
- 網(wǎng)站建設(shè)價(jià)格
- 網(wǎng)站建設(shè)專業(yè)品牌
- 云南省建設(shè)廳網(wǎng)站
- 云南網(wǎng)站建設(shè)一條龍
- 退款
- 報(bào)廢車回收管理系統(tǒng)
- 云南網(wǎng)站建設(shè)服務(wù)
- 網(wǎng)站開發(fā)公司哪家好
- 曲靖小程序開發(fā)
- 報(bào)廢車回收
- 海報(bào)插件
- 云南網(wǎng)站建設(shè)哪家公司好
- 云南網(wǎng)站建設(shè)開發(fā)
- 百度推廣
- 小程序公司
- 網(wǎng)絡(luò)公司聯(lián)系方式
- 云南網(wǎng)絡(luò)推廣