版权声明:《==study hard and make progress every day==》 https://blog.csdn.net/qq_38225558/article/details/82959798
Servlet的生命周期:构造器-->init方法--> 循环[ service方法 ]-->destory方法(正常关闭Tomcat)
这种方式只有在访问的时候servlet才创建,那么如何在启动web的时候,就自动初始化,运行init方法,创建servlet对象呢??
方式一:web.xml中添加 <load-on-startup>1</load-on-startup> ( 注意:中间的数据,最小启动越早 )
方式二:如果是使用@WebServlet注解,则直接在注解中加上loadOnStartup=1 【注意:@WebServlet注解配置Servlet需修改web.xml文件 metadata-complete="false" 】
ex:@WebServlet(value={"/default"},loadOnStartup=1)
ex方式1:web.xml中添加 <load-on-startup>1</load-on-startup>
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0" metadata-complete="true">
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.zhengqing._01Helloservlet.HelloServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>
</web-app>
public class HelloServlet extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("===初始化===");
}
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
System.out.println("===Servlet程序===");
}
}
ex方式2:如果是使用@WebServlet注解,则直接在注解中加上loadOnStartup=1
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0" metadata-complete="false">
</web-app>
@WebServlet(value={"/HelloServlet"},loadOnStartup=1)
public class HelloServlet extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("===初始化===");
}
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
System.out.println("===Servlet程序===");
}
}