`
黑夜星空哈
  • 浏览: 7361 次
社区版块
存档分类
最新评论

web.xml加载顺序.docx

    博客分类:
  • java
阅读更多

web.xml中加载顺序为:

Context-param > Listener > Filter > Servlet

下边为所做的测试

 

一:首先读取的肯定是配置的context-param参数,将其转换为键值,并交给ServletContext

如下配置,可以供spring Listener启动时使用

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationcontext-*.xml</param-value>

</context-param>

  

二:Servletload-on-startup配置

servlet的配置当中,<load-on-startup>num</load-on-startup>的含义是: 

标记容器是否在启动的时候就加载这个servlet 

Num>=0表示容器在应用启动时就加载这个servlet 正数的值越小,启动该servlet优先级越高

Num < 0:表示容器在该Servlet第一次被访问时才加载。  

 

三:Listener FilterServlet启动顺序

Context-param > Listener > Filter > Servlet

代码测试如下(部分代码):

编写三个servlet

第一个Servlet : ServletTest1.java

public void init() throws ServletException {

System.out.println("servlet1 执行 init方法,load-on-startup设置为0");

}

第二个Servlet : ServletTest2.java

public void init() throws ServletException {

System.out.println("servlet2 执行 init方法,load-on-startup设置为5");

}

 

第一个Servlet : ServletTest3.java

public void init() throws ServletException {

System.out.println("servlet3 执行 init方法,load-on-startup设置为-1");

}

一个Listener

ListenerTest.java

public void contextInitialized(ServletContextEvent arg0) {

System.out.println("Listener 执行其初始化contextInitialized方法");

}

一个Filter

FilterTest.java

public void init(FilterConfig arg0) throws ServletException {

System.out.println("Filter 执行init方法");

}

 

Web.xml文件中配置如下

<servlet>

    <servlet-name>ServletTest1</servlet-name>

    <servlet-class>com.hqb.test.ServletTest1</servlet-class>

    <load-on-startup>0</load-on-startup>

</servlet>

<servlet-mapping>

    <servlet-name>ServletTest1</servlet-name>

    <url-pattern>/servlet/ServletTest1</url-pattern>

</servlet-mapping>

  

<servlet>

    <servlet-name>ServletTest2</servlet-name>

    <servlet-class>com.hqb.test.ServletTest2</servlet-class>

    <load-on-startup>5</load-on-startup>

</servlet>

<servlet-mapping>

    <servlet-name>ServletTest2</servlet-name>

    <url-pattern>/servlet/ServletTest2</url-pattern>

</servlet-mapping>

  

<servlet>

    <servlet-name>ServletTest3</servlet-name>

    <servlet-class>com.hqb.test.ServletTest3</servlet-class>

    <load-on-startup>-1</load-on-startup>

</servlet>

<servlet-mapping>

    <servlet-name>ServletTest3</servlet-name>

    <url-pattern>/servlet/ServletTest3</url-pattern>

</servlet-mapping>

  

<filter>

  <filter-name>filterTest</filter-name>

  <filter-class>com.hqb.test.FilterTest</filter-class>

</filter>

<filter-mapping>

  <filter-name>filterTest</filter-name>

  <url-pattern>/*</url-pattern>

</filter-mapping>

  

<listener>

     <listener-class>com.hqb.test.ListenerTest</listener-class>

</listener>

 

启动项目查询运行结果如下:

Listener 执行其初始化contextInitialized方法

Filter 执行init方法

servlet1 执行 init方法,load-on-startup设置为0

servlet2 执行 init方法,load-on-startup设置为5

 

没有打印ServletTest2.java方法init()中的代码,因为其

<load-on-startup>-1</load-on-startup>

设置为-1,只会在第一次访问时才会加载

 

综上测试,得出我们上边写的加载顺序

Context-param > Listener > Filter > Servlet

分享到:
评论

相关推荐

    Spring MVC 环境搭建.docx

    `load-on-startup`元素的值决定了Servlet的加载顺序,值越小,优先级越高,应用启动时会优先加载。然后,通过`servlet-mapping`配置,我们可以设定Spring对哪些URL模式(如`.do`)进行拦截和处理。此外,为了确保...

    springboot学习笔记.docx

    - 配置文件加载顺序通常为:应用内配置 &gt; 类路径下的配置 &gt; 命令行参数 &gt; 系统属性。 - Spring Boot默认采用SLF4J和Logback作为日志系统,支持灵活的日志配置和输出。 总的来说,Spring Boot通过简化配置和提供预...

    Tomcat教程-tomcat应用部署.docx

    要修改默认主页,可以在`web.xml`中调整`&lt;welcome-file-list&gt;`元素内的文件顺序。例如,要将`index.jsp`设为默认主页,可以将`index.jsp`移至列表首位。 ### 应用专用配置 每个Web应用还可以有自己的配置文件`WEB-...

    Servlet注解详解.docx

    Servlet 3.0允许我们将各个Servlet、Filter和Listener单独配置在各自的类上,然后在`web.xml`中仅声明它们,或者完全不使用`web.xml`,通过应用程序上下文发现机制自动扫描并加载这些组件。 此外,Servlet 3.0引入...

    Servlet.docx 完善篇

    - **load-on-startup**:这是一个在Servlet配置(web.xml)中的元素,用于指定Servlet在服务器启动时是否预先加载。值为正整数时,Servlet会在服务器启动时按数值大小顺序创建。值为负或0则表示按需加载。 2. **...

    XML基础Java解析XML.docx

    总的来说,XML作为一种数据交换和存储的通用格式,广泛应用于Web服务、配置文件、数据传输等多个领域。理解XML的基础知识,以及如何在Java中解析和操作XML,对于IT从业者来说是非常重要的技能。

    答辩常见问题汇总1.docx

    10. **Servlet配置**:Servlet在`web.xml`中进行配置,包括Servlet的映射路径、加载顺序等。 11. **Action在MVC框架中的角色**:Action是MVC框架中的控制层,负责接收请求、调用业务逻辑和服务层,并返回响应。 12...

    Kettle 7.1 中文使用手册.docx.zip

    2. **作业(Job)**:管理转换和作业执行顺序的高级流程,可以控制数据处理的时间和条件。 **三、Kettle的使用流程** 1. **设计工作区**:在Spoon中创建新的转换或作业,通过拖拽操作构建数据流。 2. **数据源连接*...

    Java_EEservlet_API.docx )

    Servlet的解析通常基于Web应用配置文件(web.xml),其中定义了Servlet的映射路径和加载顺序。服务器根据这些配置决定何时以及如何加载Servlet。 4. Servlet映射技术: Servlet映射允许将特定的HTTP请求与Servlet...

    通过Java配置实现的Spring Boot中大量的自动化配置.docx

    创建一个实现该接口的类,如`WebInit`,并在`onStartup`方法中加载Spring MVC配置,注册`DispatcherServlet`,并设置其路径映射和启动顺序。 ```java public class WebInit implements WebApplicationInitializer {...

    JavaEE学习参考手册.docx

    Struts2框架按如下搜索顺序加载Struts2常量: * Struts-default.xml * Struts-plugin.xml * Struts.xml * Struts.properties * Web.xml 在struts.xml文件中定义常量(推荐在struts.xml文件中配置),例如:”...

    默认 Servlet.docx

    `load-on-startup`元素定义了Servlet在Web应用启动时的加载顺序,这里是1,意味着它将在其他Servlet之前加载。 如果你想自定义DefaultServlet的行为,可以通过修改或添加初始化参数来实现。例如,如果你想开启目录...

    JAVAEE试题(含答案).docx

    4. 部署servlet:部署servlet需要在web.xml文件中配置servlet和servlet-mapping元素。 5. JSP的组成元素:JSP的组成元素有四类,分别是注释、指令元素、脚本元素和动作元素。 6. Hibernate框架中的SessionFactory...

    JSP_利用Filter解决Servlet输出中文乱码的问题.docx

    7. **Filter的执行顺序**:在`web.xml`中,Filter的配置顺序决定了它们的执行顺序。如果多个Filter映射到同一个URL,那么在`&lt;filter-mapping&gt;`标签内的顺序决定了Filter的执行顺序,先声明的先执行。 通过以上知识...

    IDEA中pom依赖报错解决方法汇总.docx

    2. 重复剪切粘贴:剪切pom.xml中的所有依赖,刷新,然后重新粘贴依赖,让IDEA重新加载它们。 3. 项目重新加载依赖:右键点击项目,选择"Maven" -&gt; "Reimport",这会重新解析整个项目的依赖。 4. 删除并重新下载依赖...

    Servlet,过滤器和监听器的配置和使用.docx

    在`web.xml`文件中定义Servlet,包括名称、类名、URL路径和加载顺序。 ```xml &lt;servlet-name&gt;myServlet &lt;servlet-class&gt;action.MyServlet &lt;load-on-startup&gt;1 &lt;servlet-name&gt;myServlet &lt;url-pattern&gt;/...

    通向架构师的道路(第十天)之Axis2 Web Service(一).docx

    * 将 Axis2-1.4/Axis2-1.4.1 解压开来的目录下的 lib 目录里的所有 jar 导入你工程的WEB-INF/lib 目录下,并加载入工程的 classpath。 * 在工程和 src 平级处新建一个目录叫 external-lib,并将 tomcat 里的用于 jsp...

    springboot 39道面试题.docx

    Spring Boot的配置加载顺序遵循以下规则: 1. application.properties 或 application.yml 文件,通常位于项目的resources目录下。 2. 系统环境变量。 3. 命令行参数。 YAML是一种流行的配置语言,相比传统的...

    javaScript心得.docx

    - `document.close()`在浏览器加载页面后默认调用一次,再次调用`document.write()`会创建新的文档对象并覆盖原有内容。 11. **HTML链接和表单中的JavaScript**: - `href`属性可以使用`javascript:`协议调用...

Global site tag (gtag.js) - Google Analytics