java中web.xml样本的基础知识教程

178 阅读3分钟

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

web.xml sample basics in java

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>

重要的一点

  1. 所有元素的顺序应符合模式的要求。
  2. 每一个开始标签,必须有一个结束标签。