一下是hello1 web inf 里的 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<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">
<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-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
**<?xml version="1.0" encoding="UTF-8"?>
用于声明xml的版本以及xml传输数据时的字符编码
**<web-app><-web-app>
*xml文件的根标签,用于声明命名空间、schema约束等
*xmlns="http://java.sun.com/xml/ns/javaee"
XML Namespaces,声明了命名空间,用于避免命名冲突,有疑惑的小伙伴可以点击这里
*xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
*XML Schema Instance,声明了web.xml所需要遵循的xml规范
(xsi只是一个别名,可以自行定义,不过约定俗成使用xsi来表示)
*xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
*schemaLocation 是xsi的一个子元素,所以以 xsi:schemaLocation 来命名,它由一个 URI引用对 组成,两个URI之间以 空白符 分隔。第一个URI是命名空间的名字,第二个 URI是模式文档的位置,模式处理器将从这个位置读取模式文档.
*声明了 XML Namespace和对应的 XSD(Xml Schema Definition)文档的位置,实际上 就是声明了该命名空间对应的具体模板是哪个
**<context-param>
*初始化参数,应用与整个web项目,有两个子标签
*<param-name></param-name>
可以理解为map中的key
*<param-value></param-value>
可以理解为map中的value
*在容器启动时,会创建一个 ServletContext(上下文对象,也可以理解为web应用环境对象), 然后会去读取 context-param 标签,容器会将 param-name 和 param-value 的值以 key-value 的形式set进ServletContext中
*在servlet中,通过 this.getServletContext().getInitParameter(“key”) 来获取值value
**<servlet></servlet>
*在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。
**<servlet-mapping></servlet-mapping>
*服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName.但是,常常会
*更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。在更改缺省URL时,使用servlet-mapping元素。
**<session-config></session-config>
*如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。 可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。
**<welcome-file-list></welcome-file-list>
*指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。