Servlet的运行
我们之前学习的java内容,运行代码都是需要先创建该类的对象,然后在mian()方法中去调用相关的方法,这样才会有结果输出。但是呢,我们在运行Servlet代码的时候并没有这样做。我们仅仅只是启动了服务器(Tomcat)。就可以把Srevlet运行起来。同时,我们还发现servlet里面的代码被调用了。其实类似于之前学习的java代码调用类似。调用的过程Tomcat服务器帮我们做好了。同时我们发现。我们每一次启动,访问,关闭的时候相关的方法都被调用了。我们可以获得这样的结论。tomcat容器可以帮助我们创建相关的实例,并且调用Servlet的相关生命周期方法。
Servlet生命周期方法
1.构造方法
该方法只被调用一次。只有第一次请求Servlet的时候。Servlet容器创建该Servlet的实例,调用构造方法。这说明Servlet是单实例的,这样就会存在线程安全的问题。所以不建议在Servlet中定义全局的变量。
2.init()方法
该方法 只被调用一次。当容器创建好该实例以后会立刻调用该方法。用于初始化当前的Servlet。该方法中可以传递一些参数用于在初始化Servlet的时候进行一些配置。
3.service()方法
该方法会被调用多次,每一次发送请求都会调用该方法。该方法就是用于响应请求的。
4.destory()方法
该方法只会被调用一次,在当前的Servlet在Web应用中需要停止或者是被卸载之前调用,用于释放当前的Servlet所占用的资源。
Servlet容器响应客户端请求过程如下:
Servlet的配置
load-on-startup参数的配置
1.意义:该参数可以指定该servlet在容器中被创建的时机。配置在servlet的节点中。参数如果为负数,那么会被第一次请求的时候被创建实例,如果不为负数,那么会被servlet容器加载的时候创建实例,且数据值越小越早被创建。
2.配置方法
(1).在web.xml文件中作为Servlet的节点进行配置
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>com.cn.test.HelloWorld</servlet-class>
<load-on-startup>-1</load-on-startup>
</servlet>
(2).使用注解的方式进行配置
@WebServlet(name="HelloWorld1",urlPatterns="/HelloWorld1",loadOnStartup=-1)
public class HelloWorld1 implements Servlet{
//其他代码
}