硬件型號(hào):戴爾靈越7400
系統(tǒng)版本:Windows10
過(guò)濾器和攔截器區(qū)別如下:
1.攔截器是基于java的反射機(jī)制的,而過(guò)濾器是基于函數(shù)回調(diào)。
2.攔截器不依賴(lài)與servlet容器,過(guò)濾器依賴(lài)與servlet容器。
3.攔截器只能對(duì)action請(qǐng)求起作用,而過(guò)濾器則可以對(duì)幾乎所有的請(qǐng)求起作用。
4.攔截器可以訪(fǎng)問(wèn)action上下文、值棧里的對(duì)象,而過(guò)濾器不能訪(fǎng)問(wèn)。
5.在action的生命周期中,攔截器可以多次被調(diào)用,而過(guò)濾器只能在容器初始化時(shí)被調(diào)用一次。
在Servlet作為過(guò)濾器使用時(shí),它可以對(duì)客戶(hù)的請(qǐng)求進(jìn)行處理。處理完成后,它會(huì)交給下一個(gè)過(guò)濾器處理,客戶(hù)的請(qǐng)求在過(guò)濾鏈里逐個(gè)處理,直到請(qǐng)求發(fā)送到目標(biāo)為止。例如,某網(wǎng)站里有提交修改的注冊(cè)信息的網(wǎng)頁(yè),當(dāng)用戶(hù)填寫(xiě)完修改信息并提交后,服務(wù)器在進(jìn)行處理時(shí)需要做兩項(xiàng)工作:判斷客戶(hù)端的會(huì)話(huà)是否有效;對(duì)提交的數(shù)據(jù)進(jìn)行統(tǒng)一編碼。