根据JAVAEE规范,一个JAVA WEB工程至少要包含以下四个部分:
- 公开部分
- WebContent/WEB-INF/classes
- WebContent/WEB-INF/lib
- WebContent/WEB-INF/web.xml
其中,WEB-INF下的东西只供容器读取,不允许外界查看。
下面将对web.xml进行详细说明:
WEB容器加载web.xml的顺序是这样子的,读取<listener>和<context-param>,然后创建ServletContext;容器将<context-param>的内容转化为键值对,传给ServletContext,之后根据<listener>配置创建监听器,<filter>配置创建过滤器和servlet实例。
具体顺序:创建ServletContext,读取context-param内容,创建监听器 -> 创建过滤器 -> 创建servlet实例。
具体内容解释:
1、xml头和根元素(这个没什么好解释的,基本上每个xml文件都必须有)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>cmPrototype</display-name> <!--项目名称-->
2、
<context-param> <!--上下文初始化参数,用于传递给ServletContext初始化,后面的监听器和过滤器都可以使用-->
<param-name>param_name</param-name>
<param-value>param_value</param-value>
</context-param>
3、
<listener><!--监听器,主要用于监视当某个事件触发时,需要采取的措施,监听器相当于侦探,用于监视着事件变化-->
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
4、
<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>
5、
<servlet> <!--java web的基础,服务提供方-->
<description></description>
<display-name>HttpClientServlet</display-name>
<servlet-name>HttpClientServlet</servlet-name>
<servlet-class>com.ccb.cmPrototype.rule.HttpClientServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HttpClientServlet</servlet-name>
<url-pattern>/HttpClientServlet</url-pattern>
</servlet-mapping>
6、 <session-config><!--会话超时时间,单位为分钟-->
<session-timeout>120</session-timeout> </session-config>
7、
<welcome-file-list> <!--首页列表,服务器会按照列表指定的顺序来查找首页-->
<welcome-file>index.html</welcome-file> <!--首页名称-->
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
8、
<error-page> <error-code>404</error-code> <location>/NotFound.jsp</location> </error-page> <error-page> <exception-type>java.lang.NullException</exception-type> <location>/error.jsp</location> </error-page>
9、<resource-ref> <!--利用JNDI取得应用可利用资源-->
<resource-ref>
<description>JNDI JDBC DataSource of JSPBook</description> <!--资源说明-->
<res-ref-name>jdbc/sample_db</res-ref-name> <!--资源名称-->
<res-type>javax.sql.DataSoruce</res-type> <!--资源类型-->
<res-auth>Container</res-auth> <!--资源由容器来授权-->
</resource-ref>