• deployment、discriptor、web.xml


             

               Deployment Descriptors(描述符)是一个xml文件,用来描述如何部署一个模块或者应用(根据描述符中定义的配置和容器选项)。举例来说,一个EJB的部署描述符会向EJB容器传递如何管理和控制这个EJB的信息。在WebSphere里面总共有两种部署描述符:web application部署描述符和portlet部署描述符。portlet是和web application部署描述符(web.xml)一起被打包在一个war包里面。这样就定义了每个portlet为一个Web应用的servlet, 包括每个portlet的唯一标示,portlet类和初始化参数。

            一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。web.xml主要用来配置Filter、Listener、Servlet等。但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件。

    WEB容器的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet。并且这些元素可以配置在文件中的任意位置。

      加载过程顺序如下:

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

    2、web.xml文件元素详解

      1、schema

      web.xml的模式文件是由sun公司定义的,每个web.xml文件的根元素<web-app>中,都必须标明这个 web.xml使用的是哪个模式文件。其它的元素都放在<web-app></web-app>之中。

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" 
        xmlns="http://java.sun.com/xml/ns/j2ee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
            http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    </web-app>

      2、<icon>Web应用图标

      指出IDE和GUI工具用来表示Web应用的大图标和小图标。

    <icon>
        <small-icon>/images/app_small.gif</small-icon>
        <large-icon>/images/app_large.gif</large-icon>
    </icon>

      3、<display-name>Web应用名称

      提供GUI工具可能会用来标记这个特定的Web应用的一个名称

    <display-name>Tomcat Example</display-name>

      4、<disciption>Web应用描述

      给出于此相关的说明性文本

    <disciption>Tomcat Example servlets and JSP pages.</disciption>

      5、<context-param>上下文参数

      声明应用范围内的初始化参数。它用于向 ServletContext提供键值对,即应用程序上下文信息。我们的listener, filter等在初始化时会用到这些上下文中的信息。在servlet里面可以通过getServletContext().getInitParameter("context/param")得到。

    <context-param>
        <param-name>ContextParameter</para-name>
        <param-value>test</param-value>
        <description>It is a test parameter.</description>
    </context-param>

      6、<filter>过滤器

      将一个名字与一个实现javaxs.servlet.Filter接口的类相关联。

    <filter>
        <filter-name>setCharacterEncoding</filter-name>
        <filter-class>com.myTest.setCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>setCharacterEncoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

      7、<listener>监听器

    <listener> 
        <listerner-class>com.listener.SessionListener</listener-class> 
    </listener>

      8、<servlet>

      <servlet></servlet> 用来声明一个servlet的数据,主要有以下子元素:

    • <servlet-name></servlet-name> 指定servlet的名称
    • <servlet-class></servlet-class> 指定servlet的类名称
    • <jsp-file></jsp-file> 指定web站台中的某个JSP网页的完整路径
    • <init-param></init-param> 用来定义参数,可有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数
    • <load-on-startup></load-on-startup>指定当Web应用启动时,装载Servlet的次序。当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet。当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它。
    • <servlet-mapping></servlet-mapping> 用来定义servlet所对应的URL,包含两个子元素
    • <servlet-name></servlet-name> 指定servlet的名称
    • <url-pattern></url-pattern> 指定servlet所对应的URL
  • 相关阅读:
    tensorflow日志信息如何屏蔽?
    测试图像篡改模型fps逐渐降低的原因?
    np.float32()和np.float64
    hive on spark运行时 ,读取不到hive元数据问题
    Hadoop之HDFS(二)HDFS工作机制和集群安全模式
    Spark中的Driver和Executor详解及相关调优
    Linux查看物理CPU个数、核数、逻辑CPU个数
    shell命令查看进程id,并杀死进程,停止脚本
    Flink CDC 2.0 正式发布,详解核心改进
    Kafka 如何保证消息的消费顺序一致性
  • 原文地址:https://www.cnblogs.com/gs-34/p/10541616.html
Copyright © 2020-2023  润新知