1、启动时自动装载Servlet,添加<loadon-startup>1</loadon-startup>
2、客户端首次发送Servlet请求时装载
3、修改Servlet类时,自动装载
在<servlet></servlet>标签里添加 数字越小表示优先级越高
<load-on-startup>1</load-on-startup>
第一种情况 Servlet容器装载Servlet
Servlet生命周期
Servlet生命周期
装载servlet:
<loadon-startup>1</loadon-startup>数字越小优先级越高
以下时刻Servlet容器装载Servlet
1、servlet容器启动时装载servlet--实现过程---web.xml的<Servlet></Servlet>中添加<loadon-startup>1</loadon-startup>.数字越小优先级别越高
2、客户端首次向servlet发送请求
3、Servlet类文件被更新后,重新装载Servlet
Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期,init()方法只被调用一次。
servlet长期贮存在内存中
在以下时刻servlet容器装载servlet;
在web.xml中添加<loadon-startup>1</loadon-startup> 数字越小表示优先级别越高。当tomcat启动时,会自动装载。不需要发送请求就可以装载,初始化
当服务启动(servlet容器)启动,客户首次向servlet发送请求(在案例中表现为第一次点击超链接),及通过超链接或者action等方式跳转到servlet
当servlet被更改且更新后,会重新装载。生成的字节码文件的创建日期就会变化
直接在控制台点停止不会执行destory方法,因为这是一种比较粗暴的方式。需要点击关闭服务
以下时刻Servlet容器装载Servlet
1、servlet容器启动时装载servlet--实现过程---web.xml的<Servlet></Servlet>中添加<loadon-startup>1</loadon-startup>.数字越小优先级别越高
2、客户端首次向servlet发送请求
3、Servlet类文件被更新后,重新装载Servlet
Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期,init()方法只被调用一次。
Servlet类文件被更新后,重新装载Servlet
Servlet容器启动后,客户首次向Servlet发送请求
Servlet容器启动时,自动装载Servlet:<loadon-startup>1</loadon-startup>
当客户端首次访问时---servlet执行顺序
构造方法---初始化方法---doget方法----销毁方法(采用stopServer)-若是直接在控制台停止,不执行销毁方法
下列时刻装载servlet
1,servlet容器启动时装载servlet--实现过程---web.xml的<Servlet></Servlet>中添加<loadon-startup>1</loadon-startup>.数字越小优先级别越高
2,客户端首次向servlet发送请求
3,Servlet类文件被更新后,重新装载Servlet
4,Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期,init()方法只被调用一次。
演示servlet类文件别修改后,自动、重新装载servlet。**但是,这时候构造方法和初始化方法并未重新执行!!
load-on-start效果演示
这里能否在servlet的service方法中增加代码,以告知其被执行,然后才是doGet方法被执行?
装载Servlet:
1.
结果:
2.
3.
4.
SerVlet生命周期——Servlet容器装载Servlet:
servlet的整个生命周期中,init方法只被调用一次
servlet容器装载servlet情况2:客户首次向该servlet发送请求
servlet容器装载servlet情况:servlet文件被更新(?)
servlet容器装载servlet情况1:
修改sevlet后台代码需要重启服务器
servlet改了之后会重新部署加载
servlet类文件被修改更新后 会重新装载servlet
<load-on-startup>1</load-on-startup>
这个执行之后只是代表servlet实例已经驻留在tomcat服务器里面了,
客户端并没有请求
<load-on-startup>1</load-on-startup>这个标签放在web.xml里面
数字代表优先级
越小越先执行
可以使tomcat自动加载servlet实例
直接在控制台粗暴式结束线程是不会执行destroy销毁方法的。要使用停止服务器的方法:tomcat---stop server 这样才会完整走一遍流程,先走构造方法 然后初始化方法 然后由servlet走doget 最后当服务器停止工作的时候,
再去调用servlet实例的destroy方法 这就是当客户端首次访问一个servlet的时候,走的流程
当用户点击页面超链接的时候,第一次向后端请求,这个叫做testservlet1的servlet 实例,tomcat服务器会初始化这个servlet,并且把这个实例驻留在内存当中。首先执行构造方法,然后执行初始化方法,然后执行doget方法。在eclipse的控制台直接终断解锁停止tomcat服务器是不会执行destroy销毁方法的,要在
servlet就是jsp的前身,在servlet的java代码里面拼凑字符串太过于杂糅,后来将其提取在jsp里面。