更新時(shí)間:2020-10-23 17:09:49 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1878次
Javaweb是和java框架、服務(wù)器、開(kāi)發(fā)工具在java中一樣重要的存在,也是java零基礎(chǔ)的新手朋友們首先要接觸學(xué)習(xí)到的內(nèi)容。在javaweb的學(xué)習(xí)階段,需要打好扎實(shí)的基礎(chǔ),javaweb攔截器是初學(xué)者們需要學(xué)習(xí)的內(nèi)容之一,這篇文章來(lái)介紹javaweb攔截器是什么以及相關(guān)的基本知識(shí)。

Javaweb攔截器是動(dòng)態(tài)攔截Action調(diào)用的對(duì)象,它提供了一種機(jī)制可以使開(kāi)發(fā)者在一個(gè)Action執(zhí)行的前后執(zhí)行一段代碼,也可以在一個(gè)Action執(zhí)行前阻止其執(zhí)行,同時(shí)也提供了一種可以提取Action中可重用部分代碼的方式。在AOP中,攔截器用于在某個(gè)方法或者字段被訪問(wèn)之前,進(jìn)行攔截,然后再之前或者之后加入某些操作。
Javaweb攔截器的原理:大部分時(shí)候,攔截器方法都是通過(guò)代理的方式來(lái)調(diào)用的。Struts2的攔截器實(shí)現(xiàn)相對(duì)簡(jiǎn)單。當(dāng)請(qǐng)求到達(dá)Struts2的ServletDispatcher時(shí),Struts2會(huì)查找配置文件,并根據(jù)配置實(shí)例化相對(duì)的攔截器對(duì)象,然后串成一個(gè)列表(List),最后一個(gè)一個(gè)的調(diào)用列表中的攔截器。Struts2的攔截器是可插拔的,攔截器是AOP的一個(gè)實(shí)現(xiàn)。Struts2攔截器棧就是將攔截器按一定的順序連接成一條鏈。在訪問(wèn)被攔截的方法或者字段時(shí),Struts2攔截器鏈中的攔截器就會(huì)按照之前定義的順序進(jìn)行調(diào)用。

在前面的文章中我們學(xué)習(xí)了javaweb三大組件的內(nèi)容,三大組件中的過(guò)濾器filter是要和javaweb攔截器做對(duì)比學(xué)習(xí)的,攔截器和過(guò)濾器的區(qū)別是什么呢?過(guò)濾器是對(duì)dao請(qǐng)求起到過(guò)濾的作用,它在監(jiān)聽(tīng)器之后,作用在servlet之前,對(duì)請(qǐng)求進(jìn)行過(guò)濾;攔截器(interceptor)是對(duì)請(qǐng)求和返回進(jìn)行攔截,它作用在servlet的內(nèi)部,二者的簡(jiǎn)要區(qū)別概括如下:
1、攔截器是基于java的反射機(jī)制的,而過(guò)濾器是基于函數(shù)回調(diào)。
2、攔截器不依賴與servlet容器,過(guò)濾器依賴與servlet容器。
3、攔截器只能對(duì)action請(qǐng)求起作用,而過(guò)濾器則可以對(duì)幾乎所有的請(qǐng)求起作用。
4、攔截器可以訪問(wèn)action上下文、值棧里的對(duì)象,而過(guò)濾器不能訪問(wèn)。
5、在action的生命周期中,攔截器可以多次被調(diào)用,而過(guò)濾器只能在容器初始化時(shí)被調(diào)用一次。
6、攔截器可以獲取IOC容器中的各個(gè)bean,而過(guò)濾器就不行,在攔截器里注入一個(gè)service,可以調(diào)用業(yè)務(wù)邏輯。
以上就是對(duì)javaweb攔截器基本概念和相關(guān)基礎(chǔ)知識(shí)的介紹,攔截器在java開(kāi)發(fā)時(shí)是經(jīng)常要使用的工具,也是程序員要掌握的一個(gè)技能,希望這篇文章對(duì)javaweb攔截器的介紹,java初學(xué)者能對(duì)javaweb攔截器有一個(gè)基本的了解和認(rèn)識(shí),進(jìn)而慢慢學(xué)習(xí)更多攔截器的相關(guān)知識(shí)。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)