Java EE中关于配置文件web.xml杂谈一
来源:互联网 发布:淘宝水族箱品牌排行榜 编辑:程序博客网 时间:2024/05/22 12:43
当我们启动一个web项目时,容器Tomcat(运行在虚拟机上)首先会先获取配置文件web.xml中的配置信息,所以当web.xml中出现错误时,无论运行在服务器上的是servlet,还是JSP(jsp最终被Tomcat翻译成servlet,位于%CATALINE_HOME%\work\Catalina\localhost\*web应用名*\org\apache\jsp),均无法正确显示。
(1)启动web项目时,容器首先读取web.xml下的两个节点<listener></listener>与<context-param></context-param>;
(2)接着,tomcat容器创建一个ServletContext(application),该web项目的所有部分(JSP与Servlet)都能共享该上下文;
(3)容器将以<context-param></context-param>间的<param-name>为键,<param-value>为值,作为键值对存于ServletContext中;
(4)容器创建<listener></listener>实例,根据配置的class类路径<listener-class>来创建监听,在监听中有contextinitialized(ServletContextEvent args)初始化方法,启动Web应用时,系统调用Listener的该方法,在该方法中获得:ServletContext application=ServletContextEvent.getServletContext();param-value值=application.getInitParameter(param-name键);
(5)随后,容器会读取<filter></filter>,根据指定的类路径来实例化过滤器
以上步骤均在web项目启动时的准备工作。如果系统有Servlet,则在第一次发起请求的时候被实例化,且一般不会被容器销毁,它可以服务于多个用户的请求。Servlet的初始化在上述步骤之后完成。所以web.xml的加载次序是:<context-param> --> <listener> --> <filter> --> <servlet>
在web.xml中的首行有一个XML文档有效性检查,即通过<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">。该段代码指定文件类型定义(DTD)。web-app定义该文档的根元素,PUBLIC表明DTD文件能被公开使用;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN意味着DTD有Sun microsystems, Inc维护,同时表示文档类型是DTD Web Application 2.3,通过英文(EN)书写;最后的URL表示D文件位置,输入该网址即可下载。
PS:Inc与前面的逗号“,”间有空格,若省略将在tomcat运行时出现错误。
引用自http://blog.csdn.net/believejava/article/details/43229361
- Java EE中关于配置文件web.xml杂谈一
- java中web.xml配置文件
- Java EE开发中Eclipse ee Servlet不能自动在web.xml里写入的问题
- web.xml中freemarker配置文件
- java 配置文件 web.xml基础
- java web 配置文件xml界定
- JAVA配置文件之web.xml
- java配置文件web.xml中参数设置及含义
- java web.xml配置文件中url-pattern路径匹配方式
- java EE配置文件模版
- 关于Java Web工程中web.xml文件
- Java EE使用Servlet获取web.xml中的参数
- <JAVA EE>web.xml命名与定制URL
- Java EE 项目 Servlet web.xml web-app节点头部信息,web-fragment.xml
- Java EE -> Xml [QR]
- JAVA EE-XML
- Java EE Web开发
- JSP中Web.xml配置文件详解
- LocalBroadcastManager源码解析
- PyQt基础第3篇——自定义窗口(隐藏最大最小化按钮)
- The following classes could not be found: - android.support.v7.internal.app.WindowDecorActionBar
- HDU-1213-How Many Tables(并查集)
- POJ, 3255 Roadblocks(次短路径)
- Java EE中关于配置文件web.xml杂谈一
- bzoj 4436: [Cerc2015]Kernel Knights
- 可删除某些字符的最长回文字符串(2016腾讯在线笔试题)
- jsp中EL表达式
- 网站评论功能数据库设计和开发
- Matlab CV ToolBox的使用之matchFeatures
- 第十一周项目1.1—点 圆 圆柱类族的设计
- swift 学习笔记之闭包
- Docker Swarm入门(三)Swarm SOA举例