深入浅出javaEE系列(一)---web.xml配置详解

web.xml是web项目最重要的一个文件

一:定义头和根元素

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

        DOCTYPE声明必须立即出现在头文件之后,这个声明告诉服务器使用的service规范的版本(如2.2或3.0)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义)。

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

二:部署描述文件内的元素次序    

    xml元素不仅是大小写敏感的,而且它们对出现在其中元素的次序敏感。例如:xml头必须是文件中的第一项,doctype声明必须是第二项,而web-app元素必须是第三项。在web-app元素内,元素的次序也很重要。服务器不一定强制要求这种次序,但它们允许(实际上有些服务器就是这样做的)完全拒绝含有次序不正确的元素的web应用,这表示使用非标准次序的web.xml文件是不可移植的。

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

    

    的作用:

web.xml中配置作用

1:启动web项目的时候,容器(如:tomcat)会去读取它的配置文件web.xml,读两个节点:

2:紧接着,容器会创建一个ServletContext(上下文),这个web项目的所有部分都将共享这个上下文。

3:容器将转化为键值对,并交给ServletConetext。

4:容器创建中的类实例,即创建监听。

5:在监听中会有contextInitialized(ServletContextEvent sce)初始化方法,在这个方法中获得

    ServletContext = ServletContextEvent.getServletContext();

    context-param的值 = ServletContext.getInitParamter("context-param的键");

6:得到这个context-param的值之后,就可以了做一些操作了;注意:这个时候你的web项目还没有完全启动完成,这个动作回避所有的servlet都要早。

        换句话说,这个时候,你对中的键值做的操作,将在你的web项目启动之前被执行。

7:举例,你可能想在项目启动之前就打开数据库

        那么这里就可以在中设置数据库的打开方式,在监听类中初始化数据库的连接。



你可能感兴趣的:(javaEE)