笔者从大学毕业一直从事网上银行的开发,都是一些web开发项目。接下来会写一些关于web开发相关的东西,也是自己工作以来经常用到的内容。本篇先从web.xml文件开始介绍,笔者接触到的项目中都有这个文件,这个文件是Tomcat工程中最基础也是最重要的配置文件,Tomcat启动项目的时候会加载并读取这个文件,所以很有必要弄懂这个文件。

1、XML 声明和根元素

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp">
……
</web-app>

和所有xml类型的文件一样,第一行是 XML 声明,它定义 XML 的版本 (1.0) 和所使用的编码 (UTF-8)。

第二行的“DOCYTPE”声明必须紧跟在XML 声明之后,这个声明会告诉服务器适用的servlet规范的版本(如2.3),并指定管理此文件其余部分内容的语法的DTD(Document Type Definition即文档类型定义)。

第三行的<web-app></web-app>标签就是此文件的根元素,web.xml文件的最主要的配置信息就包含在这个标签之内,接下来重点介绍的就是这个标签包含的内容。xml文件不仅对大小写敏感,而且还对出现在其他元素中的次序敏感。所以标签的大小写一定要使用正确,而且XML声明必须是文件中的第一项,DOCTYPE声明必须是第二项,而web- app元素必须是第三项。同样在web-app元素内,元素的次序也很重要。

2、Web 应用配置

<icon>  <small-icon>/images/small_icon.gif</small-icon>  <large-icon>/images/large_icon.gif</large-icon>
</icon>
<display-name>WEB</display-name>
<desciption>WEB Example</desciption>
<context-param><param-name>name</para-name><param-value>value</param-value><description>description</description>
</context-param>

<icon>标签指出IDE和GUI工具用来表示Web应用的大图标和小图标的位置。
        <display-name>标签指出此Web应用的应用名称。
        <desciption>顾名思义就是对此Web应用的一些描述信息。
        <context-param>声明此应用范围内的初始化参数,这些参数可在servlet类中通过getServletContext().getInitParameter(“name”)方法获取。

3、filter过滤器

<filter><filter-name>MyFilter</filter-name><filter-class>com.filter.MyFilter</filter-class></filter><filter-mapping><filter-name>MyFilter</filter-name><url-pattern> /main.jsp</url-pattern>   </filter-mapping><filter-mapping><filter-name>MyFilter</filter-name><url-pattern>/addProduct.jsp</url-pattern>   </filter-mapping>

<filter>标签内部配置过滤器,<filter-name>标签指定此过滤器的名字,<filter-class>标签指定此过滤器指向的类(MyFilter),此类必须实现javax.servlet.Filter接口。<filter-mapping>标签用来关联一个或多个servlet或jsp页面(/main.jsp和/addProduct.jsp)。注意无论有多少<filter-mapping>,他们的<filter-name>必须与前面的名字一致。

4、listener监听器

 <listener><listener-class>com.channel.http.SessionListener</listener-class></listener>

<listener>标签指定监听器,用于监听Web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。常用于统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量等等。

        5、servlet(很重要)

<servlet><servlet-name>yqzl</servlet-name><servlet-class>com.channel.http.servlet.MainServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/springmvc-config.xml</param-value></init-param><load-on-startup>1</load-on-startup>    </servlet><servlet-mapping><servlet-name>yqzl</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping>     

<servlet>标签用于指定此Web应用的servlet相关配置,这个配置相当重要。<servlet-name>标签指定此servlet的名字,<servlet-class>指定servlet的类,这个类开发者可以自己写,一般会继承HttpServlet类,用来初始化整个Web项目和接受http请求并处理。<init-param>标签里面可以配置一些参数。
        <load-on-startup>标签指定当前Web应用启动时装载Servlet的次序,它的内容必须是整数,当这个数>=0时,容器会按数值从小到大依次加载。如果数值<0或没有指定,容器将在用户首次访问时加载这个servlet类。<servlet-mapping>标签可定义servlet映射,里面的<servlet-name>必须与前面的名字一致,<url-pattern>指定servlet映射的路径。
        在用Tomcat启动整个web项目时,当配置了<load-on-startup>标签并且里面的数字>=0时,会加载此servlet类,创建类的实例,调用init()方法初始化<init-param>标签里面的配置信息,此初始化在整个servlet生命周期中只会进行一次。如果未配置<load-on-startup>标签或数字<0时,Tomcat启动时不会加载此servlet类,当然也就不会调用init()方法进行初始化,当用户首次访问时会加载类并初始化,所以此时第一次访问时可能会加载很慢。这里仅简单介绍标签的作用,以后我会详细介绍这个servlet类以及与其相关的几个比较重要的类和接口。

6、session配置

 <session-config><session-timeout>10</session-timeout></session-config>

<session-config>标签用于设置浏览器与服务器之间会话(交互)时长的间隔,以分钟为单位。用户访问Web项目时,会与服务器之间建立一个session,当用户长时间未与服务器信息交互而超过这个时长时,服务器会销毁这个session,释放占用的内存空间,当用户再次在原来的session访问时会失效,需要重新建立新的session。除了可以设置这个标签之外,还可通过HttpSession的setMaxInactiveInterval()方法设置单个会话对象的超时值。

7、欢迎页配置

 <welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list>

当用户访问Web应用时,如果仅给出Web应用的根访问URL,没有指定具体的文件名,容器会调用<weblcome-file- list> 标签里指定的文件。<welcome-file-list>里允许有多个<welcome-file>元素,每个元素代表一个文件。容器会按顺序寻找,先找第一个文件是否存在,如果存在则会把这个文件显示出来,不再寻找其他文件。如果不存在则寻找第二个文件,依次类推。如果所有文件都不存在,则抛出404错误。

8、其他配置

下面的这几项配置,笔者在开发中目前还没遇到过,不是特别了解,这里就不做过多解释,以免引起错误。这些内容都是参考 https://www.cnblogs.com/hafiz/p/5715523.html 的内容,有兴趣可以去这篇博客去看。

<mime-mapping></mime-mapping>

  如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。
<error-page></error-page>

  在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。
<taglib></taglib>

  对标记库描述符文件(Tag Libraryu Descriptor file)指定别名。此功能使你能够更改TLD文件的位置,而不用编辑使用这些文件的JSP页面。
<resource-env-ref></resource-env-ref>

  声明与资源相关的一个管理对象。
<resource-ref></resource-ref>

  声明一个资源工厂使用的外部资源。
<security-constraint></security-constraint>

  制定应该保护的URL。它与login-config元素联合使用。
<login-config></login-config>

  指定服务器应该怎样给试图访问受保护页面的用户授权。它与sercurity-constraint元素联合使用。
<security-role></security-role>

  给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素的role-name子元素中,分别地声明角色可使高级IDE处理安全信息更为容易。
<env-entry></env-entry>

  声明Web应用的环境项。
<ejb-ref></ejb-ref>

  声明一个EJB的主目录的引用。
<ejb-local-ref></ejb-local-ref>

  声明一个EJB的本地主目录的应用。

以上基本上涵盖了配置web.xml文件所需要的元素以及对这些元素简单的介绍,不同元素配置的基本顺序大致如此。其中<display-name>、<desciption>、<context-param><filter>、<listener>、<servlet>、<servlet-mapping>、<session-config>、<welcome-file-list>这几项是笔者在开发过程中遇到最多的,尤其是和servlet相关的配置个人认为是重中之重。所以接下来的几篇中我会详细介绍servlet类以及与其相关的几个比较重要的类和接口。这些内容也是笔者根据实际工作以及参考一些资料总结而来的,当然其中难免有些错误或者遗漏,欢迎大家指正,我也在不断学习不断提高。

下面是完整的web.xml文件配置。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp"><icon>  <small-icon>/images/small_icon.gif</small-icon>  <large-icon>/images/large_icon.gif</large-icon>  </icon><display-name>WEB</display-name><desciption>WEB Example</desciption><context-param><param-name>name</para-name><param-value>value</param-value><description>description</description></context-param><filter><filter-name>MyFilter</filter-name><filter-class>com.filter.MyFilter</filter-class></filter><filter-mapping><filter-name>MyFilter</filter-name><url-pattern> /main.jsp</url-pattern>   </filter-mapping><filter-mapping><filter-name>MyFilter</filter-name><url-pattern>/addProduct.jsp</url-pattern>   </filter-mapping><listener><listener-class>com.channel.http.SessionListener</listener-class></listener><servlet><servlet-name>yqzl</servlet-name><servlet-class>com.channel.http.servlet.MainServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/springmvc-config.xml</param-value></init-param><load-on-startup>1</load-on-startup>    </servlet><servlet-mapping><servlet-name>yqzl</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping>     <session-config><session-timeout>10</session-timeout></session-config><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><mime-mapping></mime-mapping><error-page></error-page><taglib></taglib><resource-env-ref></resource-env-ref><resource-ref></resource-ref><security-constraint></security-constraint><login-config></login-config><security-role></security-role><env-entry></env-entry><ejb-ref></ejb-ref><ejb-local-ref></ejb-local-ref>
</web-app>

转载请注明出处 http://www.cnblogs.com/Y-oung/p/8401549.html

工作、学习、交流或有任何疑问,请联系邮箱:yy1340128046@163.com  微信:yy1340128046

转载于:https://www.cnblogs.com/Y-oung/p/8401549.html

web.xml配置文件详解相关推荐

  1. 一个很详细的web.xml配置文件详解

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "- ...

  2. Web.config配置文件详解(新手必看)

    Web.config配置文件详解(新手必看) 花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点. ...

  3. javaweb web.xml文件详解

    web.xml文件详解 前言:一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程.web.xml主要用来配置Filter.Listener.Servlet等 ...

  4. 160329(二)、web.xml配置详解

    1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...

  5. Java web.xml 配置详解

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  6. Java web之web.xml配置详解

    什么是web.xml web.xml是web项目的配置文件,一般的web工程都会用到web.xml来配置,方便大型开发.web.xml主要用来配置Filter,Listener,Servlet等.但是 ...

  7. JavaWeb web.xml配置详解

    参考: XML 教程 Java web之web.xml配置详解 Javaweb三大组件是:Servlet,Filter,Listener. 1.Servlet Servlet作为中转处理的容器,连接了 ...

  8. java web工程web.xml配置详解

    转载自:http://blog.csdn.net/believejava/article/details/43229361 这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢 ...

  9. javaweb:web.xml配置详解

    Web.xml详解: 1.web.xml加载过程(步骤) 首先简单讲一下,web.xml的加载过程.当启动一个WEB项目时,容器包括(JBoss.Tomcat等)首先会读取项目web.xml配置文件里 ...

最新文章

  1. golang channel 管道
  2. 基于计算机网络的可持续发展信息共享情况调查
  3. 可逆素数编程c语言,巧用C语言求四位的可逆素数
  4. EmguCV 一些基本操作
  5. maven使用mvn命令创建项目异常java.lang.NoClassDefFoundError: org/apache/commons/collections/ExtendedProperties
  6. Bootstrap-学习系列
  7. POJ 2778 DNA Sequence (Aho-Corasick 矩阵优化) - xgtao -
  8. SilverLight4导航
  9. 电影售票系统项目介绍
  10. Go 的时间转换和时区校对总记不住?给你一份备忘单
  11. 【Python程序设计】实验4:字符串与正则表达式
  12. [转] Redefining the shading languages ecosystem with SPIR-V
  13. poj2142 The Balance
  14. [CISCN]2020
  15. 2022保研夏令营经验贴(中科大、华科、武大、国防科大、浙大软件、中科院)
  16. word中出现“由于文件许可权错误,word无法完成保存操作”的解决办法
  17. 段码屏配套的背光源怎么设计?
  18. 爬取豆瓣电影Top250影片信息
  19. 百度网盘网页版——文件排序
  20. macOS - Cocoa开发之沙盒机制及访问Sandbox之外的文件

热门文章

  1. dede织梦数据表字段解释
  2. 五年26个版本:Linux系统内核全程回顾
  3. 企业邮箱及邮件服务器架设
  4. 万恶之源 - Python基础知识补充
  5. netty9---使用编码解码器
  6. 正向代理与反向代理的理解
  7. 微信小程序之wx.request:fail错误,真机预览请求无效问题解决,安卓,ios网络预览异常(转)...
  8. ActiveX控件在项目中的应用
  9. Java生成指定范围随机数的方法
  10. 7. 整数反转(C, C++, Python)