struts2.x随笔

第1:

 

struts1.x 中, struts 框架是通过 Servlet 启动的。在 struts2 中, struts 框架是通 Filter 启动的。 他在 web.xml 中的配置如下:
<filter>
    <filter-name>struts2</filter-name>
    <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class>
 <!-- 自从 Struts 2.1.3 以后,下面的 FilterDispatcher 已经标注为过时
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> -->
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern> /* </url-pattern>
</filter-mapping>
StrutsPrepareAndExecuteFilter init() 方法中将会读取类路径下默认的配置 文件 struts.xml 完成初始化操作。
注意: struts2 读取到 struts.xml 的内容后, javabean 形式存放在内存中,以后 struts2 对用户的每 次请求处理将使用内存中的数据,而不是每次都读取 struts.xml 文件 struts1 也是这样的)

注:
在文档中:
org.apache.struts2.dispatcher
Class FilterDispatcher
Deprecated.  Since Struts 2.1.3, use StrutsPrepareAndExecuteFilter instead or StrutsPrepareFilter and StrutsExecuteFilter if needing using the ActionContextCleanUp filter in addition to this one

第2:
在struts2的配置文件中父包必须在子包之前定义。
包的<package>标签的namespace属性和文件系统路径有区别的,namespace只有一个级别。

第3:
struts2是按照下面这个顺序搜索常量,越靠后的文件优先级越高。
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml

第4:
每一个包中都可以有他自己的默认action,但是每一个名称空间应该有一个默认的action、如果具有相同名称空间的多个包中都声明了默认action,那么哪一个action才是默认的无法保证。注:默认的action只对action的访问有效。

你可能感兴趣的:(apache,框架,Web,xml,struts)