評(píng)論里面 ,有人說 攔截器進(jìn)入 死循環(huán),是不存在的,老師的項(xiàng)目攔截器沒有bug
因?yàn)榍岸丝刂破? DispatcherServlet 只會(huì)攔截 *.form 結(jié)尾的請(qǐng)求, 如果是頁(yè)面轉(zhuǎn)達(dá)到 login.jsp 頁(yè)面,根本不會(huì)觸發(fā) SpringMVC 的攔截器
因?yàn)榍岸丝刂破? DispatcherServlet 只會(huì)攔截 *.form 結(jié)尾的請(qǐng)求, 如果是頁(yè)面轉(zhuǎn)達(dá)到 login.jsp 頁(yè)面,根本不會(huì)觸發(fā) SpringMVC 的攔截器
2018-04-19
我補(bǔ)充一下。有些同學(xué)可能照著老師做了之后還是不行的是少了幾句代碼
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
2018-03-15
①攔截器是基于java的反射機(jī)制的,而過濾器是基于函數(shù)回調(diào)。
②攔截器不依賴與servlet容器,過濾器依賴與servlet容器。
③攔截器只能對(duì)action請(qǐng)求起作用,而過濾器則可以對(duì)幾乎所有的請(qǐng)求起作用。
④攔截器可以訪問action上下文、值棧里的對(duì)象,而過濾器不能訪問。
⑤在action的生命周期中,攔截器可以多次被調(diào)用,而過濾器只能在容器初始化時(shí)被調(diào)用一次。
⑥攔截器可以獲取IOC容器中的各個(gè)bean,而過濾器就不行,這點(diǎn)很重要,在攔截器里注入一個(gè)service,可以調(diào)用業(yè)務(wù)邏輯
②攔截器不依賴與servlet容器,過濾器依賴與servlet容器。
③攔截器只能對(duì)action請(qǐng)求起作用,而過濾器則可以對(duì)幾乎所有的請(qǐng)求起作用。
④攔截器可以訪問action上下文、值棧里的對(duì)象,而過濾器不能訪問。
⑤在action的生命周期中,攔截器可以多次被調(diào)用,而過濾器只能在容器初始化時(shí)被調(diào)用一次。
⑥攔截器可以獲取IOC容器中的各個(gè)bean,而過濾器就不行,這點(diǎn)很重要,在攔截器里注入一個(gè)service,可以調(diào)用業(yè)務(wù)邏輯