前言:今天开始做实习设计,用到了Struts2+spring+hibernate框架,就对web容器以及各类框架的配置文件,进行一番深入的探究下。
1、当我们启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,
2、
①首先读取<context-param>,
param-name设置context的名字,param-value用来设置其值
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:/applicationContext.xml
classpath*:/applicationContext-security.xml
</param-value>
</context-param>
当param-value有多个值时,可以用空格或逗号隔开,或通配符
。
②其次是listener
listener元素用来定义Listener接口,它的主要子元素为< listener-class>,中间是listener类的名称
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
③接着是filter
<filter>有如下两个子元素↓↓
< filter-name>Filter的名称< /filter-name>定义Filter的名称.
< filter-class>Filter的类名称< /filter-class>定义Filter的类名称.例如:com.foo.hello
<filter-mapping>有如下几个子元素↓ ↓
< filter-name>Filter的名称< /filter-name>定义Filter的名称.
< url-pattern>URL< /url-pattern>Filter所对应的RUL.
< dispatcher>REQUEST|INCLUDE|FORWARD|ERROR< /disaptcher>设定Filter对应的请求方式,有RQUEST,INCLUDE,FORWAR,ERROR四种,默认为REQUEST.
<filter>
<filter-name>
hibernateOpenSessionInViewFilter
</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>
hibernateOpenSessionInViewFilter
</filter-name>
<url-pattern>*.action</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
④最后是servlet
<servlet></servlet> 用来声明一个servlet的数据,主要有以下子元素:
<servlet-name></servlet-name> 指定servlet的名称
<servlet-class></servlet-class> 指定servlet的类名称
<jsp-file></jsp-file> 指定web站台中的某个JSP网页的完整路径
<init-param></init-param> 用来定义参数,可有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数
<load-on-startup></load-on-startup>指定当Web应用启动时,装载Servlet的次序。
<servlet-mapping></servlet-mapping> 服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。
但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。在更改缺省URL时,使用servlet-mapping元素。
用来定义servlet所对应的URL,包含两个子元素
<servlet-name></servlet-name> 指定servlet的名称
<url-pattern></url-pattern> 指定servlet所对应的URL
其中的<load-on-startup></load-on-startup>当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet. 当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它.