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正在初始化...
相关推荐
vx_Biye_Design1 天前
【关注可免费领取源码】房屋出租系统的设计与实现--毕设附源码40805
java·spring boot·spring·spring cloud·servlet·eclipse·课程设计
vx_Biye_Design1 天前
基于Spring Boot+vue的湖北旅游景点门票预约平台的设计--毕设附源码29593
java·vue.js·spring boot·spring cloud·servlet·eclipse·课程设计
lang201509282 天前
JSR-340 :高性能Web开发新标准
java·前端·servlet
铅笔侠_小龙虾2 天前
Flutter 组件层级关系
前端·flutter·servlet
csdn2015_4 天前
Spring Boot `HttpServletRequest`
spring boot·http·servlet
GIOTTO情4 天前
舆情监测技术实战:Infoseek字节探索破解传统监测痛点
servlet
一勺菠萝丶4 天前
Jenkins 构建日志出现 `[INFO]` 乱码?原因与完整解决方案(小白必看)
java·servlet·jenkins
好好研究5 天前
SpringBoot扩展SpringMVC
java·spring boot·spring·servlet·filter·listener
gAlAxy...5 天前
SpringBoot Servlet 容器全解析:嵌入式配置与外置容器部署
spring boot·后端·servlet
Hx_Ma166 天前
SpringMVC框架提供的转发和重定向
java·开发语言·servlet