Servlet的生命周期:
1、加载和实例化:
Servlet的加载和实例化是由Servlet容器负责的。对于Web程序的部署描述符中定义的每个Servlet,Servlet容器查找并加载Servlet类型的类。成功加载之后,容器创建Servlet的实例服务客户机的请求。
2、初始化:
实例化后,容器将调用Servlet的init()方法初始化这个对象,并传递实现ServletConfig接口的对象。初始化能让Servlet对象在处理客户端请求前完成一些初始化工作如建立数据库连接,获取配置信息等。对每一个Servlet实例,init()方法只调用一次。
3、请求处理:
在init()方法执行成功后,Servlet容器调用Servlet的service()方法对请求进行处理。在service()方法中,Servlet实例通过Request对象得到客户端的相关信息和请求信息,对请求进行处理后,调用Response对象的方法设置响应信息。
4、服务终止:
当Servlet实例需要被从服务中移除时,容器会调用实例的destroy()方法,释放实例使用的资源。实例则成为垃圾收集对象,不能再响应请求。
Jsp的生命周期:
1、转换:在这一阶段,读取、解析和验证 JSP 页面。如果没有出现错误,就创建一个包含 servlet 类的 Java 文件。
2、编译 :把在转换阶段创建的 Java 文件编译成类文件。在这一阶段验证所有 Java 代码,并报告语法错误。
3、加载和实例化:如果编译成功,就把 servlet 类加载到内存,并对其进行实例化。
4、jspInit():在 servlet 的寿命中,只调用 jspInit() 方法一次。它是执行 servlet 需要的任何初始化的方法。
5、jspService():当收到 JSP 页面的每个客户机请求时,把请求和响应传递给该方法。JSP scriptlet 和表达式就包括在该方法中,并进行处理。
6、jspDestroy():当JSP引擎从服务中删除 servlet 实例时,会调用 jspDestroy()。在该方法中,可以执行任何清理操作,比如释放资源。在调用该方法后,servlet 不能服务任何客户机请求。
1、加载和实例化:
Servlet的加载和实例化是由Servlet容器负责的。对于Web程序的部署描述符中定义的每个Servlet,Servlet容器查找并加载Servlet类型的类。成功加载之后,容器创建Servlet的实例服务客户机的请求。
2、初始化:
实例化后,容器将调用Servlet的init()方法初始化这个对象,并传递实现ServletConfig接口的对象。初始化能让Servlet对象在处理客户端请求前完成一些初始化工作如建立数据库连接,获取配置信息等。对每一个Servlet实例,init()方法只调用一次。
3、请求处理:
在init()方法执行成功后,Servlet容器调用Servlet的service()方法对请求进行处理。在service()方法中,Servlet实例通过Request对象得到客户端的相关信息和请求信息,对请求进行处理后,调用Response对象的方法设置响应信息。
4、服务终止:
当Servlet实例需要被从服务中移除时,容器会调用实例的destroy()方法,释放实例使用的资源。实例则成为垃圾收集对象,不能再响应请求。
Jsp的生命周期:
1、转换:在这一阶段,读取、解析和验证 JSP 页面。如果没有出现错误,就创建一个包含 servlet 类的 Java 文件。
2、编译 :把在转换阶段创建的 Java 文件编译成类文件。在这一阶段验证所有 Java 代码,并报告语法错误。
3、加载和实例化:如果编译成功,就把 servlet 类加载到内存,并对其进行实例化。
4、jspInit():在 servlet 的寿命中,只调用 jspInit() 方法一次。它是执行 servlet 需要的任何初始化的方法。
5、jspService():当收到 JSP 页面的每个客户机请求时,把请求和响应传递给该方法。JSP scriptlet 和表达式就包括在该方法中,并进行处理。
6、jspDestroy():当JSP引擎从服务中删除 servlet 实例时,会调用 jspDestroy()。在该方法中,可以执行任何清理操作,比如释放资源。在调用该方法后,servlet 不能服务任何客户机请求。