Servlet生命周期详解
Servlet中的生命周期方法:
1.被创建:执行int方法,只执行一次
Servlet什么时候被创建?
默认情况下,第一次被访问时,Servlet被创建
在<servlet>标签下配置
1.第一次被访问时,创建
<load-on-startup>的值是负数
2.在服务器启动时,创建
<load-on-startup>的值为0或正整数
Servlet的int方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的
多个用户同时访问时,可能存在线程安全问题
解决:进来不要在Servlet中定义成员变量。即使定义了成员变量,也不要对修改值
2.提供服务:执行service方法,执行多次
每次访问Servlet时,Service方法都会被调用一次。
3.被销毁:执行destroy方法,只执行一次
Servlet被销毁时执行。服务器关闭时,Servlet被销毁
只有服务器正常关闭时,才会执行destroy方法。
destroy方法在Servlet被销毁之前执行,一般用于释放资源
Servlet3.0注解配置
步骤:
创建javaEE项目,选择Servlet的版本3.0以上的,可以不创建web.xml
定义一个类,实现Servlet连接口
在类上使用@WebServlet注解,进行配置
package com.example.day_12_servlet; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import java.io.IOException; @WebServlet("/demo") public class ServletDemo implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("Servlet3.0来了"); } @Override public String getServletInfo() { return null; } @Override public void destroy() { } }标签:Servlet3.0,创建,详解,Override,执行,Servlet,public From: https://www.cnblogs.com/wsfj/p/17085144.html