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。