python 部署javaweb项目_javaweb项目中的web.xml

Web.xml详解:

1.web.xml加载过程(步骤)

首先简单讲一下,web.xml的加载过程。当启动一个WEB项目时,容器包括(JBoss、Tomcat等)首先会读取项目web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来。

1. 启动WEB项目的时候,容器首先会去它的配置文件web.xml读取两个节点:  和。

2. 紧接着,容器创建一个ServletContext(application),这个WEB项目所有部分都将共享这个上下文。

3. 容器以的name作为键,value作为值,将其转化为键值对,存入ServletContext。

4. 容器创建中的类实例,根据配置的class类路径来创建监听,在监听中会有contextInitialized(ServletContextEvent args)初始化方法,启动Web应用时,系统调用Listener的该方法,在这个方法中获得:

context-param的值就是application.getInitParameter("context-param的键");得到这个context-param的值之后,你就可以做一些操作了。

5. 举例:你可能想在项目启动之前就打开数据库,那么这里就可以在中设置数据库的连接方式(驱动、url、user、password),在监听类中初始化数据库的连接。这个监听是自己写的一个类,除了初始化方法,它还有销毁方法,用于关闭应用前释放资源。比如:说数据库连接的关闭,此时,调用contextDestroyed(ServletContextEvent args),关闭Web应用时,系统调用Listener的该方法。

6. 接着,容器会读取,根据指定的类路径来实例化过滤器。

7. 以上都是在WEB项目还没有完全启动起来的时候就已经完成了的工作。如果系统中有Servlet,则Servlet是在第一次发起请求的时候被实例化的,而且一般不会被容器销毁,它可以服务于多个用户的请求。所以,Servlet的初始化都要比上面提到的那几个要迟。

8. 总的来说,web.xml的加载顺序是:->->->。其中,如果web.xml中出现了相同的元素,则按照在配置文件中出现的先后顺序来加载。

9. 对于某类元素而言,与它们出现的顺序是有关的。以为例,web.xml中当然可以定义多个,与相关的一个元素是,注意,对于拥有相同的和元素而言,必须出现在之后,否则当解析到时,它所对应的还未定义。web容器启动初始化每个时,按照出现的顺序来初始化的,当请求资源匹配多个时,拦截资源是按照元素出现的顺序来依次调用doFilter()方法的。同类似,此处不再赘述。

2.web.xml标签详解

1. XML文档有效性检查这段代码指定文件类型定义(DTD),可以通过它检查XML文档的有效性。下面显示的元素有几个特性,这些特性告诉我们关于DTD的信息:

web-app定义该文档(部署描述符,不是DTD文件)的根元素

PUBLIC意味着DTD文件可以被公开使用

-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”意味着DTD由Sun Microsystems, Inc.维护。该信息也表示它描述的文档类型是DTD Web Application 2.3,而且DTD是用英文书写的。

2.

部署描述符的根元素是。DTD文件规定元素的子元素的语法如下:

正如您所看到的,这个元素含有23个子元素,而且子元素都是可选的。问号(?)表示子元素是可选的,而且只能出现一次。星号(*)表示子元素可在部署描述符中出现零次或多次。有些子元素还可以有它们自己的子元素。web.xml文件中元素声明的是下面每个子元素的声明。下面讲述部署描述符中可能包含的所有子元素。

注意:在Servlet 2.3中,子元素必须按照DTD文件语法描述中指定的顺序出现。比如:如果部署描述符中的元素有和两个子元素,则子元素必须出现在子元素之前。在Servlet2.4中,顺序并不重要。

3.

test-hwp-web-application定义了web应用的名称,可以在http://localhost:8080/manager/html中显示。

4.

可以使用distributable元素来告诉servlet/JSP容器,Web容器中部署的应用程序适合在分布式环境下运行。

5.

webAppRootKey

business.root

contextConfigLocation

/WEB-INF/spring-configuration/*.xml

5.1解释:

元素含有一对参数名和参数值,用作应用的Servlet上下文初始化参数,参数名在整个Web应用中必须是惟一的,在web应用的整个生命周期中上下文初始化参数都存在,任意的Servlet和jsp都可以随时随地访问它。子元素包含有参数名,而子元素包含的是参数值。作为选择,可用子元素来描述参数。

5.2 什么情况下使用,为什么使用:

比如:定义一个管理员email地址用来从程序发送错误,或者与你整个应用程序有关的其他设置。使用自己定义的设置文件需要额外的代码和管理;直接在你的程序中使用硬编码(Hard-coding)参数值会给你之后修改程序带来麻烦,更困难的是,要根据不同的部署使用不同的设置;通过这种办法,可以让其他开发人员更容易找到相关的参数,因为它是一个用于设置这种参数的标准位置。

5.3 Spring配置文件:

配置Spring,必须需要,而可有可无,如果在web.xml中不写配置信息,默认的路径是/WEB-INF/applicationontext.xml,在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml。如果是要自定义文件名可以在web.xml里加入contextConfigLocation这个context参数:在

里指定相应的xml文件名,如果有多个xml文件,可以写在一起并以“,”号分隔,比如在business-client工程中,我们采用了自定义配置方式,配置如下:

contextConfigLocation

/WEB-INF/spring-configuration/*.xml

org.springframework.web.context.ContextLoaderListener

包含一个子元素,用来指定首页文件名称。元素可以包含一个或多个子元素。如果在第一个元素中没有找到指定的文件,Web容器就会尝试显示第二个,以此类推。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值