zoukankan      html  css  js  c++  java
  • Analysis of Web.xml in Hello1 project

    XML简介

    XML 指可扩展标记语言(eXtensible Markup Language),是一种很像HTML的标记语言。

    XML 不是 HTML 的替代。XML 被设计用来传输和存储数据,其焦点是数据的内容;HTML 被设计用来显示数据,其焦点是数据的外观。HTML 旨在显示信息,而 XML 旨在传输信息。

    XML 是独立于软件和硬件的信息传输工具。

    -----XML 不会做任何事情--------

    -----XML 文档形成了一种树结构,它从"根部"开始,然后扩展到"枝叶"-------

    Web.xml 解析

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

    XML 声明:它定义 XML 的版本(1.0)和所使用的编码(UTF-8 : 万国码, 可显示各种语言)

    然后下一行描述文档的根元素:web-app,并且在最后一行定义了根元素的结尾:</web-app>。

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

    <context-param>配置是是一组键值对,param-name是键,相当于就是参数名,param-value是值,相当于参数值。当服务器启动时,服务器会读取web.xml配置,当读到<context-param></context-param>这两个节点的时候,容器会将这两个节点set到ServletContext(上下文对象)中,这样我们在程序中就能通过这个上下文对象去取得我们这个配置值。

     

        <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-mapping元素指定 FacesServlet所有带.xhtml后缀的文件都将匹配它。

    FacesServlet是一个servlet,它管理使用JavaServer Faces构建用户界面的Web应用程序的请求处理生命周期。

         <servlet-mapping>元素在Servlet和URL样式之间定义一个映射。它包含了两个子元素<servlet- name>和<url-pattern>,<servlet-name>元素给出的Servlet名字必须是在<servlet>元素中声明过的Servlet的名字。<url-pattern>元素指定对应于Servlet的URL路径,该路径是相对于Web应用程序上下文根的路径。

        在配置了Servlet与URL样式之间的映射后,当Servlet容器接收到一个请求,它首先确定该请求应该由哪一个Web应用程序来响应。这是通过比较请求URI的开始部分与Web应用程序的上下文路径来确定的。映射到Servlet的路径是请求URI减去上下文的路径,Web应用程序的Context对象在去掉请求URI的上下文路径后,将按照下面的路径映射规则的顺序对剩余部分的路径进行处理,并且在找到第一个成功的匹配后,不再进行下一个匹配。

    容器试着对请求的路径和Servlet映射的路径进行精确匹配,如果匹配成功,则调用这个Servlet来处理请求。

    容器试着匹配最长的路径前缀,以斜杠(/)为路径分隔符,按照路径树逐级递减匹配,选择最长匹配的Servlet来处理请求。

    如果请求的URL路径最后有扩展名,如.jsp,Servlet容器会试着匹配处理这个扩展名的Servlet。

     

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

     

    标签<session-timeout>指定了会话在无效之前,可以保持不活跃状态的时间,以分钟为单位。如果该值小于等于0,那么会话将永远也不过期

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

    <welcome-file-list>标签元素:指定显示的默认文件。工作原理是:按照welcome-file的.list一个一个去检查是否web目录下面存在这个文件,如果存在,继续下面的工作(或者跳转到index.html页面,或者配置有struts的,会直接struts的过滤工作)

     

     

    部分借鉴:http://www.blogjava.net/youngturk/archive/2012/05/22/378865.html

    非常感谢~

     

  • 相关阅读:
    eclipse中maven插件,改变默认仓库位置
    maven ArtifactTransferException:failure
    抽象工厂模式
    简单工厂模式,利用反射机制让简单工厂模式变得更灵活
    Android开发之获取系统版本号
    Android开发之ProgressDialog与ProgressBar
    Failed to initialize monitor Thread: Unable to establish loopback connection解决方法
    Android开发之通过反射获取到挂断电话的API
    Android Studio常用插件
    Proxifier设置代理
  • 原文地址:https://www.cnblogs.com/sece/p/10567715.html
Copyright © 2011-2022 走看看