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正在初始化...
相关推荐
BD_Marathon1 小时前
【JavaWeb】HTML_常见标签_表单的提交方式
servlet
一直都在5721 小时前
手写tomcat(2):Servlet原理和自定义tomcat
java·servlet·tomcat
古城小栈1 小时前
Jenkins 自动构建 搞起来
java·servlet·jenkins
又是忙碌的一天1 小时前
servlet的体系原理+tomcat原理
java·servlet·tomcat
柒.梧.2 小时前
Servlet原理和Tomcat原理的知识总结
java·servlet·tomcat
7澄12 小时前
Java Web 底层解析:Servlet 执行流程、Tomcat 工作原理与自定义 Tomcat 实现
java·前端·servlet·tomcat·自定义tomcat·tomcat执行流程·servlet执行流程
喜欢流萤吖~1 天前
Servlet 生命周期详解
java·servlet
一勺菠萝丶1 天前
Jenkins SSH 部署非 root 用户权限问题完整排查与解决方案(最推荐方法总结)
servlet·ssh·jenkins
java_logo1 天前
Jenkins Docker 容器化部署指南
java·运维·servlet·docker·容器·jdk·jenkins
避避风港2 天前
转发与重定向
java·servlet