• web.xml的简单解释以及Hello1中web.xml的简单分析


    一、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>
  • 相关阅读:
    元组转换列表
    python切片
    序列类型的方法 增删改查
    python基础 四则运算和数据类型
    linux 常用基础命令操作
    MySQL 命令操作
    linux中如何修改root密码、设置固定IP、安装vmware tools
    虚拟机中网络桥接模式设置
    PHP基础
    HTML基本标签介绍
  • 原文地址:https://www.cnblogs.com/wudidd/p/10561578.html
Copyright © 2020-2023  润新知