一、web.xml的加载过程

①当我们启动一个WEB项目容器时,容器包括(JBoss,Tomcat等)。首先会去读取web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常的被启动起来。

②启动WEB项目的时候,容器首先会去读取web.xml配置文件中的两个节点:<listener> </listener>和<context-param> </context-param>。

③紧接着,容器创建一个ServletContext(application),这个web项目的所有部分都将共享这个上下文。容器以<context-param></context-param>的name作为键,value作为值,将其转化为键值对,存入ServletContext。  

④在容器创建<listener></listener>中的类实例,根据配置的class类路径<listener-class>来创建监听,

⑤接着,容器会读取<filter></filter>,根据指定的类路径来实例化过滤器。

⑥如果系统中有Servlet,则Servlet是在第一次发起请求的时候被实例化的,而且一般不会被容器销毁,它可以服务于多个用户的请求。所以,Servlet的初始化都要比上面提到的那几个要迟。

二、标签

①<web-app></web-app>

<web-app></web-app>是部署描述的根元素,该元素含23个子元素。

②<display-name></display-name> 

<display-name></display-name>定义web应用的名称。

③<distributable/>

<distributable/>可以使用distributable元素来告诉servlet/JSP容器,Web容器中部署的应用程序适合在分布式环境下运行。

④<context-param></context-param>

<context-param>元素含有一对参数名和参数值,用作应用的Servlet上下文初始化参数,参数名在整个Web应用中必须是惟一的,在web应用的整个生命周期中上下文初始化参数都存在,任意的Servlet和jsp都可以随时随地访问它。<param-name>子元素包含有参数名,而<param-value>子元素包含的是参数值。作为选择,可用<description>子元素来描述参数。

⑤<session-config></session-config>

<session-config> 用于设置容器的session参数。

⑥<filter></filter>

Filter可认为是Servlet的一种“变种”,它主要用于对用户请求(HttpServletRequest)进行预处理,也可以对服务器响应(HttpServletResponse)进行后处理,是个典型的处理链。它与Servlet的区别在于:它不能直接向用户生成响应。完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。

⑦<listener></listener>

Listener是Servlet的监听器,可以监听客户端的请求,服务端的操作等。

⑧<servlet></servlet>

Servlet通常称为服务端小程序,是服务端的程序,用于处理及响应客户的请求。

⑨<welcome-file-list></welcome-file-list>

<welcome-file-list>包含一个子元素<welcome-file>,<welcome-file>用来指定首页文件名称。<welcome-file-list>元素可以包含一个或多个<welcome-file>子元素。

三、example(web.xml in Hello1)

<?xml version="1.0" encoding="UTF-8"?>  //注明版本,编码方式
//根元素
<web-app version="3.1"  //web-app的版本
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
//上下文参数
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>  //参数名
<param-value>Development</param-value>  //参数值
</context-param>
//服务端的小程序,处理相应客户端的请求
<servlet>
<servlet-name>Faces Servlet</servlet-name>   //名称
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>  //类
<load-on-startup>1</load-on-startup>    //表示容器在启动时加载这个servlet
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>    //一定与<servlet>中的相同
<url-pattern>*.xhtml</url-pattern>      //是要在浏览器中输入的url值
</servlet-mapping>
<session-config>
<session-timeout>
30                    //session超时时间为30分钟
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file> //欢迎页
</welcome-file-list>
</web-app>

转载于:https://www.cnblogs.com/wudidd/p/10561578.html

web.xml的简单解释以及Hello1中web.xml的简单分析相关推荐

  1. eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池

    mysql8.0在eclipse中通过xml文件配置数据库连接池 1.关于Mysql8.0 2.数据库连接池(DBCP) 3.准备工作 4.配置context.xml 5.配置web.xml 6.调用 ...

  2. xstream xml模板_XStream – XStreamely使用Java中的XML数据的简便方法

    xstream xml模板 有时候,我们不得不处理XML数据. 而且大多数时候,这不是我们一生中最快乐的一天. 甚至有一个术语" XML地狱"描述了程序员必须处理许多难以理解的XM ...

  3. java html转换xml文件,使用Java在HTML中转换XML + XSL

    我们将数据作为XML使用,并且存在多种格式化XSL样式.在IE中它一直工作得很好.使用Java在HTML中转换XML + XSL 然后,我们需要在Chrome中显示与HTML相同的内容.所以,我们在服 ...

  4. matlab分析xml文件_如何在Java中读取XML文件(DOM分析器)

    matlab分析xml文件 Today we will learn how to read the XML file in Java. We will also learn how to parse ...

  5. 【sql的mapper.xml文件】完美去除idea中mapper.xml文件中的黄色绿色背景色

    文章目录 完美去除idea中mapper.xml文件中的背景色 换主题颜色 1.settings->Editor->Inspection 2.Editor->Color Scheme ...

  6. python blp模型 估计_谁能简单解释一下经济学中的BLP模型?

    BLP 是Berry, Levinson和Pakes三个作者名字的缩写,这个模型是由他们在1995年的AER论文提取出来的(Berry(1994)算是奠定了基础).我来试着讲讲好了. 模型结构 BLP ...

  7. python xml解析dom_如何解析python中表示xml.dom.minidom节点的字符串?

    我有一个使用xml.dom.minidom创建的nodes xml.dom.Node对象的集合.通过使用Node对象的toxml()方法将它们转换为字符串,我将它们(单独)存储在数据库中. 问题是,有 ...

  8. Java Web学习总结(27)——JavaEE中Web服务器、Web容器、Application服务器区别及联系

    在JavaEE 开发Web中,我们经常会听到Web服务器(Web Server).Web容器(Web Container).应用服务器(Application Server),等容易混淆不好理解名词. ...

  9. android xml通知栏权限配置,Android开发中 AndroidManifest.xml配置之service,receiver标签配置详解...

    本文主要来分享service,receiver标签配置.如有错误,欢迎指正. android:directBootAware=["true" | "false" ...

  10. java xml 单标签,如何修改java中的xml标签特定值?

    i am new to work on xml.i have used an xml file as follows: - - Is the color of the car black? - Is ...

最新文章

  1. bo a1 蓝牙音箱 中文说明
  2. Loudrunner常用函数
  3. 进击吧! Blazor !第三期 信息交互
  4. 计算机基础 在线测试,计算机基础知识在线测试答案.doc
  5. Linux文本编辑器之vim
  6. Python 小入坑
  7. android 应用基础知识(2)---应用资源
  8. Python学习笔记(尚硅谷)——变量
  9. doctor mysql数据导入_线上环境mysql主从同步的搭建过程
  10. Python函数参数的值传递机制
  11. 基于OpenCV与MFC的人脸识别
  12. 基于bs4的python爬虫-链家新房(广州页面)
  13. 20201123TSW第一站
  14. 微信加不了公众号服务器繁忙,微信公众号系统繁忙是怎么回事
  15. PHP+mysql 入门级通讯录(一)
  16. [CCS] 没有Runtime Object View(ROV)怎么办?
  17. 再见2011,2012不是梦
  18. 计算机的背景怎么找不到了,一个电脑背景图片,在所有可能存放位置都找不到,也删除不掉!...
  19. 一些简单的问题. 2的10次方与k (涉及到b k m的要用乘来解读)
  20. 数控雕刻机、数控车床的主传动系统、五档变速器、发动机活塞、斜齿轮减速器、曲柄连杆机构、圆压圆模切机、秸秆切碎机、xy工作台、星形卸料阀、小型平台印刷机、液氨储罐设计、法兰盘、饺子机、气动扳手……

热门文章

  1. 第十八届绵竹年画节开幕 大巡游展示清末年画《迎春图》场景
  2. spark mlilib 聚类 混合高斯
  3. select框多级联动
  4. STM32 HAL库手册获取和查阅方法以及查看官方例程
  5. 继承中父类、子类构造器中的super. 和super()运用
  6. 新人开车——访问控制
  7. RestTemplate 发送 get 请求使用误区 多值为null
  8. APP图标右上角数字的实现
  9. Ajax程序设计入门
  10. 串行通信(二):串口流控