1 定义头和根元素

部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。

DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document

Type

Definition,文档类型定义)。

所有部署描述符文件的顶层(根)元素为web-app。请注意,XML元素不像HTML,他们是大小写敏感的。因此,web-App和WEB-APP都是不合法的,web-app必须用小写。

2 部署描述符文件内的元素次序

XML 元素不仅是大小写敏感的,而且它们还对出现在其他元素中的次序敏感。例如,XML头必须是文件中的第一项,DOCTYPE声明必须是第二项,而web-

app元素必须是第三项。在web-app元素内,元素的次序也很重要。服务器不一定强制要求这种次序,但它们允许(实际上有些服务器就是这样做的)完全拒绝执行含有次序不正确的元素的Web应用。这表示使用非标准元素次序的web.xml文件是不可移植的。

下面的列表给出了所有可直接出现在web-app元素内的合法元素所必需的次序。例如,此列表说明servlet元素必须出现在所有servlet-mapping元素之前。请注意,所有这些元素都是可选的。因此,可以省略掉某一元素,但不能把它放于不正确的位置。

l

icon icon元素指出IDE和GUI工具用来表示Web应用的一个和两个图像文件的位置。

l display-name

display-name元素提供GUI工具可能会用来标记这个特定的Web应用的一个名称。

l description

description元素给出与此有关的说明性文本。

l context-param context-param元素声明应用范围内的初始化参数。

l

filter 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。

l filter-mapping

一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。

l listener servlet

API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。Listener元素指出事件监听程序类。

l

servlet

在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。

l

servlet-mapping 服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。在更改缺省URL时,使用servlet-mapping元素。

l

session-config

如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。

l

mime-mapping 如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。

l

welcom-file-list welcome-file-list元素指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。

l

error-page error-page元素使得在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。

l taglib

taglib元素对标记库描述符文件(Tag Libraryu Descriptor

file)指定别名。此功能使你能够更改TLD文件的位置,而不用编辑使用这些文件的JSP页面。

l resource-env-ref

resource-env-ref元素声明与资源相关的一个管理对象。

l resource-ref

resource-ref元素声明一个资源工厂使用的外部资源。

l security-constraint

security-constraint元素制定应该保护的URL。它与login-config元素联合使用

l login-config

用login-config元素来指定服务器应该怎样给试图访问受保护页面的用户授权。它与sercurity-constraint元素联合使用。

l

security-role

security-role元素给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素的role-name子元素中。分别地声明角色可使高级IDE处理安全信息更为容易。

l

env-entry env-entry元素声明Web应用的环境项。

l ejb-ref ejb-ref元素声明一个EJB的主目录的引用。

l

ejb-local-ref ejb-local-ref元素声明一个EJB的本地主目录的应用。

3 分配名称和定制的UL

在web.xml中完成的一个最常见的任务是对servlet或JSP页面给出名称和定制的URL。用servlet元素分配名称,使用servlet-mapping元素将定制的URL与刚分配的名称相关联。

3.1

分配名称

为了提供初始化参数,对servlet或JSP页面定义一个定制URL或分配一个安全角色,必须首先给servlet或JSP页面一个名称。可通过

servlet元素分配一个名称。最常见的格式包括servlet-name和servlet-class子元素(在web-app元素内),如下所示:

Xml代码

Test

moreservlets.TestServlet

Test

moreservlets.TestServlet

这表示位于WEB-INF/classes/moreservlets/TestServlet的servlet已经得到了注册名Test。给

servlet一个名称具有两个主要的含义。首先,初始化参数、定制的URL模式以及其他定制通过此注册名而不是类名引用此servlet。其次,可在

URL而不是类名中使用此名称。因此,利用刚才给出的定义,URL http://host/webAppPrefix/servlet/Test

可用于 http://host/webAppPrefix/servlet/moreservlets.TestServlet

的场所。

请记住:XML元素不仅是大小写敏感的,而且定义它们的次序也很重要。例如,web-app元素内所有servlet元素必须位于所有servlet-

mapping元素(下一小节介绍)之前,而且还要位于5.6节和5.11节讨论的与过滤器或文档相关的元素(如果有的话)之前。类似地,servlet

的servlet-name子元素也必须出现在servlet-class之前。5.2节"部署描述符文件内的元素次序"将详细介绍这种必需的次序。

例如,程序清单5-1给出了一个名为TestServlet的简单servlet,它驻留在moreservlets程序包中。因为此servlet是扎根在一个名为deployDemo的目录中的Web应用的组成部分,所以TestServlet.class放在deployDemo/WEB-

INF/classes/moreservlets中。程序清单5-2给出将放置在deployDemo/WEB-INF/内的web.xml文件的一部分。此web.xml文件使用servlet-name和servlet-class元素将名称Test与TestServlet.class相关联。图

5-1和图5-2分别显示利用缺省URL和注册名调用TestServlet时的结果。

程序清单5-1 TestServlet.java

Java代码

package moreservlets;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class TestServlet extends HttpServlet {

public void

doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

PrintWriter out =

response.getWriter();

String uri = request.getRequestURI();

out.println(ServletUtilities.headWithTitle("Test Servlet")

+"\n" +"

URI: " + uri "\n"

+"

java 定义xml_java中web.xml定义详解相关推荐

  1. servlet中web.xml配置详解

    Web.xml常用元素 <web-app>  <display-name></display-name>  定义了WEB应用的名字  <description ...

  2. Java web.xml 配置详解

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  3. Java web之web.xml配置详解

    什么是web.xml web.xml是web项目的配置文件,一般的web工程都会用到web.xml来配置,方便大型开发.web.xml主要用来配置Filter,Listener,Servlet等.但是 ...

  4. java web工程web.xml配置详解

    转载自:http://blog.csdn.net/believejava/article/details/43229361 这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢 ...

  5. javaweb web.xml文件详解

    web.xml文件详解 前言:一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程.web.xml主要用来配置Filter.Listener.Servlet等 ...

  6. 160329(二)、web.xml配置详解

    1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...

  7. JavaWeb web.xml配置详解

    参考: XML 教程 Java web之web.xml配置详解 Javaweb三大组件是:Servlet,Filter,Listener. 1.Servlet Servlet作为中转处理的容器,连接了 ...

  8. javaweb:web.xml配置详解

    Web.xml详解: 1.web.xml加载过程(步骤) 首先简单讲一下,web.xml的加载过程.当启动一个WEB项目时,容器包括(JBoss.Tomcat等)首先会读取项目web.xml配置文件里 ...

  9. web.xml配置详解

    往者不谏 来者可追 写作是最好的社交 新随笔 订阅 web.xml配置详解 Web.xml常用元素<web-app><display-name></display-nam ...

最新文章

  1. Smarty中文手册,Smarty教程,Smarty模板的入门教材
  2. 【转】Failed to load module for FS type ‘bdb’ in TortoiseSVN 1.6.x
  3. JZOJ 5484. 【清华集训2017模拟11.26】快乐树
  4. java 快速io_Java编程在ICPC快速IO实现源码
  5. Maven定制化打包后的包名(加入时间戳)
  6. 如何在Linux命令行下收听网络电台
  7. 广告学计算机平面设计(1)形考5,中等职业学校计算机平面设计专业教学标准 (1)...
  8. Zookeeper-01-概述
  9. SQL NOTE--VIEW
  10. c语言~符号_条件编译指令(符号),C语言条件编译指令完全攻略
  11. 应用华云对象存储服务实现网站存储的平滑迁移实践
  12. 移动端上拉加载下拉刷新插件-mescroll.js插件
  13. Selenium 三种等待
  14. 提高专业技能之 “完整DataSheet”
  15. 为你收罗100个学英语的网站!!!
  16. 计算机操作系统(慕课版)各章思维导图
  17. 最热电气专业论文选题
  18. 织梦CMS系统正式收费:5800元 站长们真的慌了
  19. D365 CRM 在视图中添加自定义图标
  20. window.open 在Safari中被拦截

热门文章

  1. python re模块compile_Python re模块的match方法
  2. flutter天气_牛笔!自己用Flutter撸一个天气APP
  3. ab plc编程软件_三菱PLC原装和高仿怎么区分?仿真和编程软件一样吗?
  4. 太阳能板如何串联_太阳能光伏系统单晶和多晶模组的差异?农村家庭自用如何科学选择...
  5. django使用mysql_设置Django以使用MySQL
  6. java不同进程的相互唤醒_Java多线程(二)同步与等待唤醒
  7. sql 循环处理数据_图文介绍 SQL 的三种查询计划处理模型,Spark 用了其中两个
  8. 【LeetCode笔记】剑指 Offer 20. 表示数值的字符串(Java、字符串)
  9. python生成json_如何将Python数组转为Json格式数据并存储?
  10. oracle 解锁 账户_oracle用户解锁三种方法