`

context-param,listener,filter,servlet关系

 
阅读更多

 

一: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 中的listener、 filter、servlet 加载顺序及其详解.doc

    这意味着,在 web.xml 文件中,context-param 配置节应该写在 listener 配置节之前,listener 配置节应该写在 filter 配置节之前,filter 配置节应该写在 servlet 配置节之前。 需要注意的是,与某类配置节相关的...

    JSPservlet中web.xml详细配置指南(包含所有情况)

    10. `&lt;servlet-mapping&gt;`:定义了 servlet 的映射关系。 web.xml 是 JSP/Servlet 中的核心配置文件,它定义了 Web 应用的结构和行为。了解 web.xml 的配置和加载顺序是非常重要的,它可以帮助开发者更好地理解和...

    Tomcat中用web.xml控制Web应用详解

    在这个顺序中,context-param 元素将被首先加载,然后是 listener 元素,接着是 filter 元素,最后是 servlet 元素。 结论 web.xml 文件是 Tomcat 中 Web 应用的核心配置文件。通过对 web.xml 文件的配置,开发者...

    web.xml配置[归纳].pdf

    &lt;servlet-class&gt;org.directwebremoting.servlet.DwrServlet&lt;/servlet-class&gt; &lt;init-param&gt; &lt;param-name&gt;debug&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt; &lt;!-- DWR2.0必须的参数 --&gt; &lt;init...

    Spring MVC 框架应用实例

    &lt;servlet-name&gt;ideawu&lt;/servlet-name&gt; &lt;servlet-class&gt; org.springframework.web.servlet.DispatcherServlet &lt;/servlet-class&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; ...

    Spring 管理filter 和servlet

    然而,这种模式存在一定的局限性,如难以处理复杂的依赖关系,以及在Filter和Servlet内部硬编码bean名称等问题。Spring通过其IoC容器,提供了更高级别的依赖管理和生命周期管理,使得Filter和Servlet能够更加灵活地...

    web.xml配置大全[汇编].pdf

    9. filter-mapping和servlet-mapping元素分别定义了过滤器和Servlet与URL路径的映射关系。 理解web.xml的配置对于开发和调试Java Web应用至关重要,因为它控制了应用的行为和流程。熟练掌握这些配置,可以帮助...

    java资料文件

    在Java Web应用开发中,`web.xml`扮演着极其重要的角色,它主要用于定义Web应用程序的基本配置信息,包括Servlet、过滤器(Filter)、监听器(Listener)等组件的配置。本资料文件中的`web.xml`示例主要涉及了Spring...

    web.xml配置汇总(servlet2.3)

    ELEMENT servlet (servlet-name, servlet-class, init-param*, load-on-startup?)&gt; &lt;!ELEMENT servlet-name (#PCDATA)&gt; &lt;!ELEMENT servlet-class (#PCDATA)&gt; &lt;!ELEMENT init-param (param-name, param-value)&gt; &lt;!...

    基于全注解方式的SSH基础框架

    &lt;servlet-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/servlet-class&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;struts2&lt;/servlet-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern...

    Tomcatweb配置参照.pdf

    &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;com.myTest.MyServlet&lt;/servlet-class&gt; &lt;/servlet&gt; ``` - 如果Servlet基于JSP,还可以使用`&lt;jsp-file&gt;`指定JSP路径。 - `&lt;init-param&gt;`用于设置...

    web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序

    &lt;servlet-name&gt;LoginServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;com.example.LoginServlet&lt;/servlet-class&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;LoginServlet&lt;/servlet-name&gt; &lt;url-pattern&gt;/login&lt;/url-...

    web xml 详解

    &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;com.example.MyServlet&lt;/servlet-class&gt; &lt;/servlet&gt; ``` ##### 8. `&lt;servlet-mapping&gt;` 用于将Servlet映射到特定的URL路径上。 ```xml &lt;servlet-mapping&gt;...

    开发web_xml.rar_WEB XML_java web开发_web.xml_web开发_web

    &lt;param-value&gt;/WEB-INF/spring/appServlet/servlet-context.xml&lt;/param-value&gt; &lt;/init-param&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;dispatcher&lt;/servlet-name&gt; ...

    Web.xml加载顺序[汇编].pdf

    加载顺序通常遵循这样的规则:`context-param -&gt; listener -&gt; filter -&gt; servlet`。`context-param`最先加载,然后是监听器,接着是过滤器,最后是Servlet。值得注意的是,不同类型的配置节(如`filter`和`filter-...

    web.xml 文件详解

    `web.xml`文件主要由两部分组成:`&lt;web-app&gt;`元素内的全局配置和`&lt;servlet&gt;`、`&lt;servlet-mapping&gt;`、`&lt;filter&gt;`、`&lt;filter-mapping&gt;`、`&lt;listener&gt;`等元素定义的特定组件配置。 ```xml &lt;web-app&gt; &lt;!-- 全局配置 --...

    springMVC配置

    &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt; &lt;load-on-startup&gt;2&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;annomvc&lt;/servlet-name&gt; &lt;url-...

    web.xml配置大全[定义].pdf

    加载顺序遵循以下规则:`ServletContext` -&gt; `context-param` -&gt; `listener` -&gt; `filter` -&gt; `servlet`。`context-param`可以放置在任意位置,因为Web容器在创建`ServletContext`时会读取所有参数。监听器(`listener...

Global site tag (gtag.js) - Google Analytics