https://javaee.github.io/tutorial/webapp003.html

Web.xml详解分析:

web.xml文件包含Facelets应用程序所需的几个元素。使用NetBeans IDE创建应用程序时,将自动创建以下所有内容

  • 指定项目阶段的上下文参数:
    <context-param>                                              //①
  <param-name>javax.faces.PROJECT_STAGE</param-name>   //设定当前阶段
  <param-value>Development</param-value>   //发展阶段
  </context-param>

  上下文参数提供Web应用程序所需的配置信息(名字和属性)。应用程序可以定义自己的上下文参数(context-param)。此外,JavaServer Faces技术和Java Servlet技术定义了应用程序可以使用的上下文参数。

  ①<context-param>配置作用:

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

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

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

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

  5.在监听中会有contextInitialized(ServletContextEvent args)初始化方法,在这个方法中获得ServletContext = ServletContextEvent.getServletContext();

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

  6.得到这个context-param的值之后,你就可以做一些操作了.注意,这个时候你的WEB项目还没有完全启动完成.这个动作会比所有的Servlet都要早.

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

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

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

  8.这个监听是自己写的一个类,除了初始化方法,它还有销毁方法.用于关闭应用前释放资源.比如说数据库连接的关闭.

  • 一个servlet元素及其servlet-mapping元素指定 FacesServlet。所有带.xhtml后缀的文件都将匹配:

        <servlet>
    <servlet-name>Faces Servlet</servlet-name> //定义servlet名字
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> //定义servlet类
    <load-on-startup>1</load-on-startup> //②
    </servlet>
    <servlet-mapping> //映射
    <servlet-name>Faces Servlet</servlet-name> //元素指定 FacesServlet
    <url-pattern>*.xhtml</url-pattern> //所有带.xhtml后缀的文件都将映射
    </servlet-mapping>


    ②1是什么:

    1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。

    2)它的值必须是一个整数,表示servlet应该被载入的顺序

    2)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;

    3)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。

    4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。

    5)当值相同时,容器就会自己选择顺序来加载。

    所以,<load-on-startup>x</load-on-startup>,中x的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。

    通常大多数Servlet是在用户第一次请求的时候由应用服务器创建并初始化,但<load-on-startup>n</load-on-startup>   可以用来改变这种状况,根据自己需要改变加载的优先级!

  • 一个welcome-file-list元素指定着陆页的位置:

        <welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>

Deloyment Descriptor Web.xml Analysis的更多相关文章

  1. Deloyment Descriptor web.xml

    Deployment Descriptor部署描述符: - 部署描述符是要部署到Web容器或EJB容器的Web应用程序或EJB应用程序的配置文件. - 部署描述符应包含EJB应用程序中所有企业bean ...

  2. Deployment Descriptor Web.xml

    Deployment Descriptor部署描述符: - 部署描述符是要部署到Web容器或EJB容器的Web应用程序或EJB应用程序的配置文件. - 部署描述符应包含EJB应用程序中所有企业bean ...

  3. Descriptor&web.xml

    Deployment Descriptor部署描述符: - 部署描述符是要部署到Web容器或EJB容器的Web应用程序或EJB应用程序的配置文件. - 部署描述符应包含EJB应用程序中所有企业bean ...

  4. The "web.xml" is called web application deployment descriptor

    3.3  Configure the Application Deployment Descriptor - "web.xml" A web user invokes a serv ...

  5. Analysis of Web.xml in Hello1 project

    一.web.xml文件介绍 The web.xml file contains several elements that are required for a Facelets applicatio ...

  6. Generate web.xml deployment descriptor

    eclipse 使用tomcat7.0建立Dynamic Web Project 时,next至步骤“Web Module”,此时勾选选项“Generate web.xml deployment de ...

  7. eclipse : java项目中的web.xml( Deployment Descriptor 部署描述文件 )配置说明

    context-param.listener.filter.servlet  首先可以肯定的是,加载顺序与它们在 web.xml 配置文件中的先后顺序无关.即不会因为 filter 写在 listen ...

  8. Analysis of Web.xml in Hello1project

    一下是hello1  web inf 里的  web.xml <?xml version="1.0" encoding="UTF-8"?><w ...

  9. pom.xml出现web.xml is missing and <failOnMissingWebXml> is set to true解决方案

    提示信息应该能看懂.也就是缺少了web.xml文件,<failOnMissingWebXml>被设置成true了. 搜索了一下,Stack Overflow上的答案解决了问题,分享一下. ...

随机推荐

  1. 【图灵学院15】极致优化-高性能网络编程之BIO与NIO区别

    一.Java IO概念 1.  一个http请求节点 数据传输 1)网络传输 TCP.UDP 2)通信模型 BIO.NIO.AIO 数据处理 3)应用协议 HTTP.RMI.WEBSERVICE.Re ...

  2. 关于cuda拷贝的速度测试

    由于没有使用profiler,仅仅通过简单的传输函数测试,如下测试了10000个点,1000000个点,100000000个点的速度: 均按时钟周期来计时,通过MAX调整数据 int main(){ ...

  3. Hyper-V 配置虚拟机内网及外网环境

    一.为Hyper-V虚拟机准备内外网环境 1.内网环境——虚拟机与虚拟机及主机可以互通

  4. poj3321(dfs序+树状数组)

    题目链接:https://vjudge.net/problem/POJ-3321 题意:给一个普通树(不是二叉树),并且已经编号,每个结点为1或0,有两种操作,对单个结点修改和查询一个结点的子树的所有 ...

  5. poi+properties文件实现多环境测试数据一键切换

    在项目的接口测试过程中,之前的测试数据都是测试环境下的,长期在测试环境下运行. 目前希望通过很小的代价切换到线上环境运行. 考虑之下,决定使用poi包加上property文件来实现线上线下的数据切换. ...

  6. Experimental Educational Round: VolBIT Formulas Blitz N

    Description The Department of economic development of IT City created a model of city development ti ...

  7. day26 网络通讯的整个流程

    一.网络通信原理 1.  互联网的本质就是一系列的网络协议 2.  互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 各层的功能简述: [1]物理层:主要定义物理设备标准,如网 ...

  8. vue(2)创建项目

    1.创建项目 cmd到自己指定目录下,执行 vue init webpack-simple hello-vue 2.安装项目依赖 cd hello-vue cnpm install 3.运行该项目,测 ...

  9. ios中页面底部输入框,position:fixed元素的问题

    在安卓上点击页面底部的输入框,软键盘弹出,页面移动上移.ios上,软件盘弹出,输入框看不到了.让他弹出时让滚动条在最低部 var u = navigator.userAgent, app = navi ...

  10. JavaSE---多线程---线程的生命周期

    1.线程的生命周期:新建.就绪.运行.阻塞.死亡 2.运行状态线程进入阻塞: 1.1 调用sleep方法主动放弃: 1.2 调用线程的suspend方法将线程挂起,不推荐使用: 1.3 线程调用一个阻 ...