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

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

分享到:
评论

相关推荐

    web.xml_(详解).docx

    4. `&lt;load-on-startup&gt;`:此标签用于指定Servlet在Web应用启动时加载的顺序。数值越小,Servlet越早被加载。如果省略或者值为负数,服务器会根据需要懒加载Servlet。 5. `&lt;servlet-mapping&gt;`:这个标签用于映射...

    Servlet.docx 完善篇

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

    XML基础Java解析XML.docx

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

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

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

    答辩常见问题汇总1.docx

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

    Java_EEservlet_API.docx )

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

    JavaEE学习参考手册.docx

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

    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是一种流行的配置语言,相比传统的...

    2022年web前端最全面试题及答案【含vue-react】.docx

    defer和async都是script标签的属性,用于控制JavaScript脚本的加载和执行顺序。defer使得脚本在文档解析完成后执行,而async使得脚本在加载完成后执行。 12. 有几种前端储存的方式? 前端储存的方式包括Cookie、...

    SpringBoot 20道面试题和答案.docx

    SpringBoot 的配置加载顺序通常是: 1. properties 文件(包括 application.properties 和 profile-specific properties 文件,如 application-{profile}.properties) 2. YAML 文件(包括 application.yml 和 ...

    web前端开发基础作业考核试题.docx

    10. **外部样式表**:在HTML文档中,外部样式表通常在`&lt;head&gt;`标签内通过`&lt;link&gt;`标签引入,且应放在文档开始处,以优化加载顺序。 11. **列表样式**:`list-style-type`属性可以去除列表的项目符号,选项C正确。 ...

    Spring笔试考试题目.docx

    2. 类别加载时期(类加载时增强) 3. 执行时期(运行时增强) 【@AspectJ的配置】 配置Spring支持@AspectJ注解,需要在XML配置中使用标签。proxy-target-class属性控制代理方式: - 默认值为false,表示使用JDK...

Global site tag (gtag.js) - Google Analytics