一、web.xml文件介绍

  • The web.xml file contains several elements that are required for a Facelets application. All of the following are created automatically when you use NetBeans IDE to create an application.
  • web.xml文件的作用

web.xml主要用来配置Filter、Listener、Servlet等。但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件。

  • WEB容器的加载过程

WEB容器的加载顺序是:

ServletContext -> context-param -> listener -> filter -> servlet。在web.xml文件中最好按照这种顺序配置这些元素,以兼容较低版本的Tomcat。

  • WEB容器的启动过程

WEB容器启动时,加载过程顺序如下:

  1. 启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。
  2. 紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。
  3. 容器将<context-param>转换为键值对,并交给servletContext。
  4. 容器创建<listener>中的类实例,创建监听器。

二、web.xml of hello1 analysis

• xml文档第一行的声明和它的文档元素描述信息。

<?xml version="1.0" encoding="UTF-8"?>

  • 表示文档符合xml1.0规范,文档字符编码默认为“UTF-8”

• Servlet 3.1 deployment descriptor:

<web-app version="3.1" 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">     ...
</web-app>

  • Java EE 7 XML schema, namespace is http://xmlns.jcp.org/xml/ns/javaee/
  • web-app是web.xml文档的根元素
  • xmlns是XML NameSpace的缩写
  • xmls(:xxx)="yyy"这是xml引入名称空间的语法格式,式中,“xxx”表示引入名臣空间的前缀名,可以指定(如“xsi”),也可不指定(使用默认),“yyy”表示该名称空间的名称,形式上为一个URL。
  • xsi名称空间下有很多较为重要的属性,其中一个就是xsi:schemaLocation,它的作用是引入XML Schema文档,对xml文档的元素进行内容约束。它包含了两个URL,这两个URL之间用空白符或者换行符进行分割。第一个URL是名称空间的名称,第二个URL是文档的位置。那么,这句的作用是引入一个名称空间为http://xmlns.jcp.org/xml/ns/javaee、文档位置为http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd的XML Schema文档。也可参阅Eclipse XML文件模板中给出的XML文件引入Schema文档的语法格式:
    xsi:schemaLocation="{namespace} {location}

• A context parameter specifying the project stage:

<context-param><param-name>javax.faces.PROJECT_STAGE</param-name><param-value>Development</param-value></context-param>

  • A context parameter provides configuration information needed by a web application. An application can define its own context parameters. In addition, JavaServer Faces technology and Java Servlet technology define context parameters that an application can use.
  • 声明应用范围内的初始化参数。它用于向 ServletContext提供键值对,即应用程序上下文信息。我们的listener, filter等在初始化时会用到这些上下文中的信息。
  • 在servlet里面可以通过getServletContext().getInitParameter("context/param")得到。

• A servelt element and its servlet-mapping element specifying the FacesServlet. All files with the .xhtml suffix will be matched:

<servlet><servlet-name>Faces Servlet</servlet-name><servlet-class>javax.faces.webapp.FacesServlet</servlet-class><load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

  • <servlet> 用来声明一个servlet的数据,主要有以下子元素:
  • <servlet-name> 指定servlet的名称
  • <servlet-class> 指定servlet的类名称
  • <jsp-file> 指定web站台中的某个JSP网页的完整路径
  • <init-param> 用来定义参数,可有多个init-param。
  • <load-on-startup> 当值为正数或零时,从小到大加载。否则第一次访问时加载。
  • <servlet-mapping> 用来定义servlet所对应的URL,包含两个子元素
  • <servlet-name> 指定servlet的名称
  • <url-pattern> 指定servlet所对应的URL

• 会话超时配置:

<session-config><session-timeout>30</session-timeout>
</session-config>

• A welcome-file-list element specifying the location of the landing page:

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

参考:(https://javaee.github.io/tutorial/webapp003.html#GJWTV)

   (https://www.jianshu.com/p/0e53eff3b920)

   (https://www.cnblogs.com/LiZhiW/p/4313844.html)

转载于:https://www.cnblogs.com/ouuoliuxing/p/10973162.html

Web.xml in Hello1 project相关推荐

  1. Analysis of Web.xml in Hello1 project

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

  2. MAC OS X El CAPITAN 搭建SPRING MVC (1)- 目录、包名、创建web.xml

    一. 下载STS(Spring Tool Suite) 官方地址:http://spring.io/tools/sts 下载spring tool suite for mac 最新版本.这个IDE是很 ...

  3. intellij中的 iml文件与web.xml 文件分别是干什么的

    iml是配置文件,存着当前project的一些配置信息. web.xml是当前的project是个web 工程,包含了web工程具体的配置信息 xml是可扩展标记语言,标准通用标记语言的子集,是一种用 ...

  4. Failed while installing Dynamic Web Module 2.5. Project facet jst.web.jstl has not been defined.

    问题:用eclipse导入一个myeclipse的web项目后,不能添加到tomcat中,在修改project facets的相关属性时报:Failed while installing Dynami ...

  5. 如何用Java类配置Spring MVC(不通过web.xml和XML方式)

    DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...

  6. Eclipse自动注册Servlet:web.xml注册和@Servlet注解 实现注册

    在创建Javaweb项目中要会用到大量的Servlet类,若一一手动注册会很繁琐,此时我们就得想办法实现web.xml自动注册了. Servlet自动注册的两种方法: 1.web.xml自动注册 2. ...

  7. maven web项目中的web.xml的版本如何更改

    maven web项目中的web.xml的版本如何更改 问题 因web.xml的版本太低不支持el表达式的问题(maven3.6版本通过底层的maven web插件生成的最终的web.xml文件版本只 ...

  8. 【Java12】tomcatservlet(nginx,web.xml,生命周期,适配器优化),requestresponse(请求转发,登陆案例(1),重定向,文件下载)

    文章目录 1.nginx的conf文件:以前网络编程中B/S架构中服务器是用socket写,用文件输入流读一个文件,读到后socket通过outputstream写出去,这些过程有了nginx后再也不 ...

  9. web.xml.jsf_面向初学者的JSF 2.0教程

    web.xml.jsf 1.什么是JSF? JSF是Java Server Faces的首字母缩写. 它是一种服务器端处理技术,它允许将服务器端代码嵌入到网页中. 由于可以将服务器端处理和渲染代码嵌入 ...

  10. Idea 创建 web.xml 文件

    以下记录 idea 生成 web.xml 的创建过程,记录下来方便后续查找 方式一: 方式二: 1.点击工程 WEB-INF 目录,若目录不存在创建之, 选择WEB-INF 目标, 点击左上角 fil ...

最新文章

  1. 用博客见证自己的成长
  2. 数学的威力:一个方程提升中国卫星图像质量30%
  3. centos LAMP菜鸟搭建过程
  4. php1008打印机驱动器,hp laserjet p1008打印机驱动
  5. OSChina 周一乱弹 —— 程序猿到底是多有才?
  6. c语言oct hex dec用法,C++ 如何用cout输出hex,oct,dec的解决方法
  7. ios和Android的PK
  8. java 根据年月获取周数、天数
  9. android m镜像,索尼为多部机型放出Android M AOSP镜像包
  10. VHDL——含异步清零和同步使能的加法计数器源程序
  11. 【速记】Android让View的显示超出父容器
  12. 视觉SLAM前端——ICP
  13. 万字长文科普:什么是低代码?
  14. CSS 网站小图标 雪碧图
  15. 保护8亿终端 阿里聚安全携手信通院打造B2C资金安全闭环 1
  16. 搜索引擎优化SEO初探
  17. 抖音简单3个设置,让播放量轻松破万
  18. 如今区块链在企业级应用中的尴尬, 只因没看懂这4大主链2大场景……
  19. 这100个shell脚本案例,你都知道吗?一篇教会你写90%的shell脚本
  20. Java Spring-AOP动态代理-JDK和CGlib实现

热门文章

  1. 拓端tecdat|matlab稳态和时变卡尔曼滤波器Kalman filter的设计和仿真植物动力学模型案例研究
  2. 拓端tecdat|TensorFlow 2.0 keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
  3. linux tcp_nodelay,仔细看参数--NGINX之tcp_nodelay
  4. python_flask框架Ubuntu16.04下环境搭建
  5. log4j打印不出日志_日志框架详细解读
  6. setspan字体加粗_Android 图文混排富文本编辑器实现详解
  7. Linux学习笔记(13)
  8. 如何使用Keras功能API进行深度学习
  9. python实现两个任意字符串乘积
  10. sklearn特征选择类库使用小结