Analysis of Web.xml in Hello1 project
一、web.xml文件介绍
- The
web.xmlfile 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容器启动时,加载过程顺序如下:
- 启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。
- 紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。
- 容器将<context-param>转换为键值对,并交给servletContext。
- 容器创建<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)
Analysis of Web.xml in Hello1 project的更多相关文章
- Analysis of Web.xml in Hello1project
一下是hello1 web inf 里的 web.xml <?xml version="1.0" encoding="UTF-8"?><w ...
- analyse web.xml of hello1
web.xml注释分析: 补充: 一.XML文档的xmlns.xmlns:xsi和xsi:schemaLocation (参考博客:https://www.cnblogs.com/osttwz/p/6 ...
- web.xml的简单解释以及Hello1中web.xml的简单分析
一.web.xml的加载过程 ①当我们启动一个WEB项目容器时,容器包括(JBoss,Tomcat等).首先会去读取web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常的被启动 ...
- maven项目提示web.xml is missing或红色感叹号
1.web.xml is missing and <failOnMissingWebXml> is set to true 提示信息应该能看懂.也就是缺少了web.xml文件,<fa ...
- pom.xml出现web.xml is missing and <failOnMissingWebXml> is set to true解决方案
提示信息应该能看懂.也就是缺少了web.xml文件,<failOnMissingWebXml>被设置成true了. 搜索了一下,Stack Overflow上的答案解决了问题,分享一下. ...
- Descriptors;Hello1 project中的Web.xml
Deployment Descriptors(描述符)是一个xml文件,用来描述如何部署一个模块或者应用(根据描述符中定义的配置和容器选项).举例来说,一个EJB的部署描述符会向EJB容器传递如何管理 ...
- 新建web project不自动生成web.xml解决方案
一步一步建立Web Project ,第3步会有 “Generate Web.xml deployment descriptor”,默认没勾选,勾上就行了
- 分析hello1项目里面的web.xml
在example目录下的web\jsf\hello1\target\hello1\WEB-INF路径里可以找到hello1的web.xml <?xml version="1.0&quo ...
- web.xml hello1代码分析
在“Web页”节点下,展开WEB-INF节点,然后双击web.xml文件进行查看. 上下文参数提供Web应用程序所需的配置信息.应用程序可以定义自己的上下文参数.此外,JavaServer Faces ...
随机推荐
- 将驱动编译进Linux内核
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- C# 泛型单例
不支持非公共的无参构造函数的 public abstract class BaseInstance<T> where T : class,new() { private readonly ...
- linux 工具
zsh: ubuntu安装: sudo apt-get install zsh
- web前端效率提升-nginx+nodejs搭建本地生态
1.起因 编写的项目是一个偏向于后台管理的web系统,使用了angular框架,在绑定数据的时候就依赖于后台的接口格式. 以前是后台写好接口后,我在绑定,在这之前一些逻辑是没法做的,有时候后台接口给的 ...
- C# - 设计模式 - 模板模式
模板模式 问题场景 咖啡和茶派生于抽象类饮料,咖啡和茶都具有烧水的方法,所以可以将烧水的方法提取到抽象类饮料中去实现,而咖啡具有一个向杯子加咖啡粉的方法,茶具有一个向杯子加茶叶的方法,看起来两个方法是 ...
- #2018-2019-2-20175204 张湲祯 实验一 《Java开发环境的熟悉》实验报告
2018-2019-2-20175204 张湲祯 实验一 <Java开发环境的熟悉>实验报告 一.实验内容及步骤 一.使用JDK编译.运行简单的Java程序 1.输入cd zyz命令进入z ...
- 吴恩达《机器学习》编程作业——machine-learning-ex1:线性回归
❄❄❄❄❄❄❄❄[回到目录]❄❄❄❄❄❄❄❄ 本次编程作业中,需要完成的代码有如下几部分: [⋆] warmUpExercise.m - Simple example function in Octa ...
- Mac os x下几款mysql客户端
Mac os x几款mysql客户端 1,Navicat 这是一款可支持多种数据库的客户端,可支持mysql,sqlite,oracle,sql server等数据库.当然也可以选择只支持某种数据库的 ...
- 收集Typecho 0.9还能用的插件
收集Typecho 0.9还能用的插件 名称 描述 版本 作者 BaiduSubmit 百度结构化插件 for Typecho 0.5.2 老高 CateFilter 首页过滤指定分类 1.2.1 R ...
- python学习第30天
tcp协议的socket server 并发效果验证客户端的合法性socket模块还有一些其他的方法