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

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

一:定义头和根元素
<?xml version="1.0" encoding="UTF-8"?>

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

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
         id="WebApp_ID" version="3.0">

        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元素之前。请注意,所有这些元素都是可选的,因此,可以省略掉某一元素,但不能把它放在不正确的位置。

    

    <context-param>的作用:

web.xml中<context-param>配置作用

1:启动web项目的时候,容器(如:tomcat)会去读取它的配置文件web.xml,读两个节点:<listener></listener>和<context-param></context-param>。

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

3:容器将<context-param></context-param>转化为键值对,并交给ServletConetext。

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

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

    ServletContext = ServletContextEvent.getServletContext();

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

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

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

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

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



猜你喜欢

转载自blog.csdn.net/weixin_42601042/article/details/81004819
今日推荐