这篇文章涵盖了java网络应用中的web.xml的基本知识。

Web.xml是一个Web部署描述符,用于任何用java编写的Web应用程序。每一个用java开发的web应用
Web.xml被定义为java规范的一部分。因此每个供应商,如tomcat,JBoss,或其他应用服务器都应该在他们基于web的框架中实现。
现在的开发者大多使用eclipse来修改web.xml。它根据模式验证XML文件,并给出警告,如果任何
web.xml配置
我们将看到web部署配置的不同XML元素。
xml版本
<?xml version="1.0" encoding="UTF-8"?>
上面一行是任何XML文件的起始行,它包含XML的版本和编码类型。
根元素
<web-app xmlns="namespace" xmlns:xsi="schema instance"
xsi:schemaLocation="schema location"
version="2.5">
这是高级别的根元素,它有xml命名空间(xmlns)来识别这个xml的唯一名称。
正如你所知道的,每个XML都应该根据DTD或模式进行验证。验证意味着对于每个标签,有哪些子元素(显示名称)以及有多少个子元素,即一个或两个
版本是web.xml的servlet规范版本。
<display-name>name of the application</display-name>
<description> short description </description>
上下文参数配置
display-name代表网络应用程序的名称。 description配置用来定义你的模块的简短描述。
<context-param>
<param-name>conext initialization parameter</param-name>
<param-value>conext initialization value</param-value>
</context-param>
context-param用于配置网络应用程序中的键值和值对。这些值可以通过网络应用程序获得。我们可以为一个Web应用程序配置许多context-param值。
听众配置
这个监听器条目用于配置Web应用程序中的监听器。
<listener>
<listener-class>Listener java class</listener-class>
</listener>
Servlet配置
<servlet>
<servlet-name>name</servlet-name>
<servlet-class>java servlet class with package</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>init param</param-name>
<param-value>init param value</param-value>
</init-param>
</servlet>
servlet条目用于配置为任何Web应用程序定义的servlet,包括名称和servlet类。
load-on-startup用于预加载servlet。预加载意味着Servlet将在应用程序启动时被加载到Web容器中并调用init方法的回调方法。
我们可以指定一个整数,当多个servlet出现在一个servlet容器中时,这个整数就是加载的优先顺序。
init-param就像context-param一样,定义键和值。这些值只对特定的servlet有效,而不像context-param对整个应用程序有效。
<servlet-mapping>
<servlet-name>name</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
servlet-mapping定义了上述步骤中定义的servlet名称与特定url模式的映射。servlet名称将被调用到以HTML扩展名结尾的请求url。
web.xml中的jsp配置
<servlet>
<servlet-name>jsppage</servlet-name>
<jsp-file>jspdemo.jsp</jsp-file>
<init-param>
<param-name>init param</param-name>
<param-value>init parameter value</param-value>
</init-param>
</servlet>
JSP也可以像servlet一样被声明,只是在上面的代码中看到,JSP页面的映射如下
<servlet-mapping> <servlet-name>jsppage</servlet-name>
<url-pattern>/myjsp</url-pattern>
</servlet-mapping>
servlet-mapping定义了上述步骤中定义的JSP名称与特定url模式的映射。JSP名称将被调用到以HTML扩展名结尾的请求网址。
过滤器名称的定义和映射
<filter>
<filter-name>FilterName</filter-name>
<filter-class>com.cloudhadoop.FilterClass</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterName</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
过滤器在servlets之前被调用。这些过滤器大多用于安全目的,如用于检查授权和认证的登录安全实现。 过滤器映射用于将过滤器类定义为特定的url模式。这些是web.xml中的基本配置。这些配置对tomcat或JBoss都是一样的。
web.xml文件样本
<web-app>
<display-name>cloudhadoop</display-name>
<description>
sample web.xml for reference
</description>
<context-param>
<param-name>context parameter as key</param-name>
<param-value>Context parameter value</param-value>
</context-param>
<servlet>
<servlet-name>servletName</servlet-name>
<servlet-class>com.cloudhadoop.ServletClass</servlet-class>
<init-param>
<param-name>key</param-name>
<param-value>value</param-value>
</init-param>
</servlet>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
重要的一点
- 所有元素的顺序应符合模式的要求。
- 每一个开始标签,必须有一个结束标签。