Servlet 设置启动时机(web.xml方式和@WebServlet方式)

1、通过web.xml方式

java 复制代码
5)Servlet的启动时机
- 默认情况下,servlet是不会随着容器的启动而被实例化的,只有当第一次给我发请求时才会被实例化
  那么,这种情况对于第一次请求是不公平的
  因此,为了提高用户体验度,提高服务器的响应速度。我们会设置Servlet的启动时机,让他随着容器的启动而被实例化
- 设置启动时机:
  web.xml:<load-on-startup>从0开始的正整数</load-on-startup>
XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
	version="4.0">
	<servlet>
		<servlet-name>Hello06</servlet-name>
		<servlet-class>com.csdn.servlet.StartOccasionServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Hello06</servlet-name>
		<url-pattern>/h06</url-pattern>
	</servlet-mapping>
</web-app>
java 复制代码
package com.csdn.servlet;
import jakarta.servlet.GenericServlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import java.io.IOException;
public class StartOccasionServlet extends GenericServlet {
    public StartOccasionServlet() {
        System.out.println("H06正在实例化...");
    }
    @Override
    public void init() throws ServletException {
        System.out.println("H06正在初始化...");
    }
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("H06正在服务...");
    }
    @Override
    public void destroy() {
        System.out.println("H06正在销毁...");
    }
}
H06正在实例化...
H06正在初始化...

2、通过@WebServlet注解的方式

java 复制代码
5)Servlet的启动时机
- 默认情况下,servlet是不会随着容器的启动而被实例化的,只有当第一次给我发请求时才会被实例化
  那么,这种情况对于第一次请求是不公平的
  因此,为了提高用户体验度,提高服务器的响应速度。我们会设置Servlet的启动时机,让他随着容器的启动而被实例化
- 设置启动时机:
  web.xml:<load-on-startup>从0开始的正整数</load-on-startup>
  注解:@WebServlet(urlPatterns = "/h06", loadOnStartup = 1)
java 复制代码
package com.csdn.servlet;
import jakarta.servlet.GenericServlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet(urlPatterns = "/h06", loadOnStartup = 1)
public class StartOccasionServlet extends GenericServlet {
    public StartOccasionServlet() {
        System.out.println("H06正在实例化...");
    }
    @Override
    public void init() throws ServletException {
        System.out.println("H06正在初始化...");
    }
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("H06正在服务...");
    }
    @Override
    public void destroy() {
        System.out.println("H06正在销毁...");
    }
}
H06正在实例化...
H06正在初始化...
相关推荐
2302_8097983216 小时前
【JavaWeb】JDBC
java·开发语言·servlet
.又是新的一天.18 小时前
02_Servlet
hive·hadoop·servlet
多多*18 小时前
Spring之Bean的初始化 Bean的生命周期 全站式解析
java·开发语言·前端·数据库·后端·spring·servlet
keke102 天前
Java【14_3】接口(Comparable和Comparator)、内部类-示例
java·开发语言·servlet
贺函不是涵2 天前
【沉浸式求职学习day41】【Servlet】
java·学习·servlet·maven
DN金猿2 天前
Jenkins的流水线执行shell脚本执行jar命令后项目未启动未输出日志问题处理
servlet·jenkins·jar
饕餮争锋3 天前
javax.servlet.Filter 介绍-笔记
笔记·servlet
饕餮争锋3 天前
WebMvcConfigurer介绍-笔记
java·笔记·servlet
bing_1583 天前
Spring MVC 拦截器 (HandlerInterceptor) 是什么? 它与 Servlet Filter 有什么区别?
spring·servlet·mvc
唐山柳林5 天前
城市生命线综合管控系统解决方案-守护城市生命线安全
java·安全·servlet