web.xml配置文件的常用代碼
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
StrutsPrepareAndExecuteFilter
- Struts2核心控制器,它只負責攔截由
<url-pattern>/*</url-pattern>
指定的所有用戶的請求
- 當用戶請求到達時,系統會根據web.xml中配置Filter過濾用戶的請求
- 默認情況下,如果用戶的訪問路徑不帶有後綴或者是以.action的後綴作爲結尾,這時候請求會轉發給Struts2框架處理,否則Struts2會濾過這個請求處理
- 當請求轉入Struts2框架時會先經過一系列的攔截器,然後再到Action
Action在struts1和struts2中的區別
- Struts2會對每個請求都會產生一個Action,所以Struts2是線程安全的,屬於原型設計模式。
- Struts1中的Action創建出來之後會放在緩衝中,屬於單例設計模式,在應用生命週期之內只會存在一個Action。