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>
二:Servlet有load-on-startup配置
在servlet的配置当中,<load-on-startup>num</load-on-startup>的含义是:
标记容器是否在启动的时候就加载这个servlet。
Num>=0:表示容器在应用启动时就加载这个servlet; 正数的值越小,启动该servlet的优先级越高。
Num < 0:表示容器在该Servlet第一次被访问时才加载。
三:Listener 、Filter、Servlet启动顺序
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
相关推荐
`load-on-startup`元素的值决定了Servlet的加载顺序,值越小,优先级越高,应用启动时会优先加载。然后,通过`servlet-mapping`配置,我们可以设定Spring对哪些URL模式(如`.do`)进行拦截和处理。此外,为了确保...
- 配置文件加载顺序通常为:应用内配置 > 类路径下的配置 > 命令行参数 > 系统属性。 - Spring Boot默认采用SLF4J和Logback作为日志系统,支持灵活的日志配置和输出。 总的来说,Spring Boot通过简化配置和提供预...
要修改默认主页,可以在`web.xml`中调整`<welcome-file-list>`元素内的文件顺序。例如,要将`index.jsp`设为默认主页,可以将`index.jsp`移至列表首位。 ### 应用专用配置 每个Web应用还可以有自己的配置文件`WEB-...
Servlet 3.0允许我们将各个Servlet、Filter和Listener单独配置在各自的类上,然后在`web.xml`中仅声明它们,或者完全不使用`web.xml`,通过应用程序上下文发现机制自动扫描并加载这些组件。 此外,Servlet 3.0引入...
- **load-on-startup**:这是一个在Servlet配置(web.xml)中的元素,用于指定Servlet在服务器启动时是否预先加载。值为正整数时,Servlet会在服务器启动时按数值大小顺序创建。值为负或0则表示按需加载。 2. **...
总的来说,XML作为一种数据交换和存储的通用格式,广泛应用于Web服务、配置文件、数据传输等多个领域。理解XML的基础知识,以及如何在Java中解析和操作XML,对于IT从业者来说是非常重要的技能。
10. **Servlet配置**:Servlet在`web.xml`中进行配置,包括Servlet的映射路径、加载顺序等。 11. **Action在MVC框架中的角色**:Action是MVC框架中的控制层,负责接收请求、调用业务逻辑和服务层,并返回响应。 12...
Servlet的解析通常基于Web应用配置文件(web.xml),其中定义了Servlet的映射路径和加载顺序。服务器根据这些配置决定何时以及如何加载Servlet。 4. Servlet映射技术: Servlet映射允许将特定的HTTP请求与Servlet...
创建一个实现该接口的类,如`WebInit`,并在`onStartup`方法中加载Spring MVC配置,注册`DispatcherServlet`,并设置其路径映射和启动顺序。 ```java public class WebInit implements WebApplicationInitializer {...
2. **作业(Job)**:管理转换和作业执行顺序的高级流程,可以控制数据处理的时间和条件。 **三、Kettle的使用流程** 1. **设计工作区**:在Spoon中创建新的转换或作业,通过拖拽操作构建数据流。 2. **数据源连接*...
Struts2框架按如下搜索顺序加载Struts2常量: * Struts-default.xml * Struts-plugin.xml * Struts.xml * Struts.properties * Web.xml 在struts.xml文件中定义常量(推荐在struts.xml文件中配置),例如:”...
`load-on-startup`元素定义了Servlet在Web应用启动时的加载顺序,这里是1,意味着它将在其他Servlet之前加载。 如果你想自定义DefaultServlet的行为,可以通过修改或添加初始化参数来实现。例如,如果你想开启目录...
4. 部署servlet:部署servlet需要在web.xml文件中配置servlet和servlet-mapping元素。 5. JSP的组成元素:JSP的组成元素有四类,分别是注释、指令元素、脚本元素和动作元素。 6. Hibernate框架中的SessionFactory...
7. **Filter的执行顺序**:在`web.xml`中,Filter的配置顺序决定了它们的执行顺序。如果多个Filter映射到同一个URL,那么在`<filter-mapping>`标签内的顺序决定了Filter的执行顺序,先声明的先执行。 通过以上知识...
2. 重复剪切粘贴:剪切pom.xml中的所有依赖,刷新,然后重新粘贴依赖,让IDEA重新加载它们。 3. 项目重新加载依赖:右键点击项目,选择"Maven" -> "Reimport",这会重新解析整个项目的依赖。 4. 删除并重新下载依赖...
在`web.xml`文件中定义Servlet,包括名称、类名、URL路径和加载顺序。 ```xml <servlet-name>myServlet <servlet-class>action.MyServlet <load-on-startup>1 <servlet-name>myServlet <url-pattern>/...
* 将 Axis2-1.4/Axis2-1.4.1 解压开来的目录下的 lib 目录里的所有 jar 导入你工程的WEB-INF/lib 目录下,并加载入工程的 classpath。 * 在工程和 src 平级处新建一个目录叫 external-lib,并将 tomcat 里的用于 jsp...
Spring Boot的配置加载顺序遵循以下规则: 1. application.properties 或 application.yml 文件,通常位于项目的resources目录下。 2. 系统环境变量。 3. 命令行参数。 YAML是一种流行的配置语言,相比传统的...
- `document.close()`在浏览器加载页面后默认调用一次,再次调用`document.write()`会创建新的文档对象并覆盖原有内容。 11. **HTML链接和表单中的JavaScript**: - `href`属性可以使用`javascript:`协议调用...