一:web.xml加载过程(步骤):
1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点:
<listener></listener> 和 <context-param></context-param>
2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.
3.容器将<context-param></context-param>转化为键值对,并交给ServletContext.
4.容器创建<listener></listener>中的类实例,即创建监听.
5.在监听中会有contextInitialized(ServletContextEvent args)初始化方法,在这个方法中获得:
ServletContext = ServletContextEvent.getServletContext();
context-param的值 = ServletContext.getInitParameter("context-param的键");
6.得到这个context-param的值之后,你就可以做一些操作了.注意,这个时候你的WEB项目还没有完全启动完成.这个动作 会比所有的Servlet都要早.
换句话说,这个时候,你对<context-param>中的键值做的操作,将在你的WEB项目完全启动之前被执行.
7.举例.你可能想在项目启动之前就打开数据库.
那么这里就可以在<context-param>中设置数据库的连接方式,在监听类中初始化数据库的连接.
8.这个监听是自己写的一个类,除了初始化方法,它还有销毁方法.用于关闭应用前释放资源.比如说数据库连接的关闭.
真正的加载顺序为:context-param -> listener -> filter -> servlet
二:基本概念
context-param配置
可以看出不过是一些键值对,一般为一些listener指定一些配置信息。
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
listener监听器
在容器的加载的是启动,如:Log4jConfigListener,ContextLoaderListener,类似数据库中触发器的概念。
filter过滤器
参照另一篇文章 Java之Interceptor和Filter
servlet
参照 cookie session和application和servlet
相关推荐
这意味着,在 web.xml 文件中,context-param 配置节应该写在 listener 配置节之前,listener 配置节应该写在 filter 配置节之前,filter 配置节应该写在 servlet 配置节之前。 需要注意的是,与某类配置节相关的...
10. `<servlet-mapping>`:定义了 servlet 的映射关系。 web.xml 是 JSP/Servlet 中的核心配置文件,它定义了 Web 应用的结构和行为。了解 web.xml 的配置和加载顺序是非常重要的,它可以帮助开发者更好地理解和...
在这个顺序中,context-param 元素将被首先加载,然后是 listener 元素,接着是 filter 元素,最后是 servlet 元素。 结论 web.xml 文件是 Tomcat 中 Web 应用的核心配置文件。通过对 web.xml 文件的配置,开发者...
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <!-- DWR2.0必须的参数 --> <init...
<servlet-name>ideawu</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> ...
然而,这种模式存在一定的局限性,如难以处理复杂的依赖关系,以及在Filter和Servlet内部硬编码bean名称等问题。Spring通过其IoC容器,提供了更高级别的依赖管理和生命周期管理,使得Filter和Servlet能够更加灵活地...
9. filter-mapping和servlet-mapping元素分别定义了过滤器和Servlet与URL路径的映射关系。 理解web.xml的配置对于开发和调试Java Web应用至关重要,因为它控制了应用的行为和流程。熟练掌握这些配置,可以帮助...
在Java Web应用开发中,`web.xml`扮演着极其重要的角色,它主要用于定义Web应用程序的基本配置信息,包括Servlet、过滤器(Filter)、监听器(Listener)等组件的配置。本资料文件中的`web.xml`示例主要涉及了Spring...
ELEMENT servlet (servlet-name, servlet-class, init-param*, load-on-startup?)> <!ELEMENT servlet-name (#PCDATA)> <!ELEMENT servlet-class (#PCDATA)> <!ELEMENT init-param (param-name, param-value)> <!...
<servlet-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</servlet-class> </servlet> <servlet-mapping> <servlet-name>struts2</servlet-name> <url-pattern>/*</url-pattern...
<servlet-name>MyServlet</servlet-name> <servlet-class>com.myTest.MyServlet</servlet-class> </servlet> ``` - 如果Servlet基于JSP,还可以使用`<jsp-file>`指定JSP路径。 - `<init-param>`用于设置...
<servlet-name>LoginServlet</servlet-name> <servlet-class>com.example.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-...
<servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> ``` ##### 8. `<servlet-mapping>` 用于将Servlet映射到特定的URL路径上。 ```xml <servlet-mapping>...
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> ...
加载顺序通常遵循这样的规则:`context-param -> listener -> filter -> servlet`。`context-param`最先加载,然后是监听器,接着是过滤器,最后是Servlet。值得注意的是,不同类型的配置节(如`filter`和`filter-...
`web.xml`文件主要由两部分组成:`<web-app>`元素内的全局配置和`<servlet>`、`<servlet-mapping>`、`<filter>`、`<filter-mapping>`、`<listener>`等元素定义的特定组件配置。 ```xml <web-app> <!-- 全局配置 --...
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>annomvc</servlet-name> <url-...
加载顺序遵循以下规则:`ServletContext` -> `context-param` -> `listener` -> `filter` -> `servlet`。`context-param`可以放置在任意位置,因为Web容器在创建`ServletContext`时会读取所有参数。监听器(`listener...