关于JSP生命周期的叙述,下列哪些为真?
A. JSP会先解释成Servlet源文件,然后编译成Servlet类文件
B. 每当用户端运行JSP时,jsp init()方法都会运行一次
C. 每当用户端运行JSP时,jsp service()方法都会运行一次
D. 每当用户端运行JSP时,jsp destroy()方法都会运行一次
答案:AC
解析:
Jsp只会在客户端第一次发请求的时候被编译,之后的请求不会再编译,同时tomcat能自动检测jsp变更与否,变更则再进行编译,重新编译也不调用init()。
第一次编译并初始化时调用: init() ;销毁调用: destroy() 。在整个jsp生命周期中均只调用一次。
service()方法是接收请求,返回响应的方法。每次请求都执行一次,该方法被HttpServlet封装为doGet和doPost方法
Servlet的生命周期
1.加载:容器通过类加载器使用Servlet类对应的文件来加载Servlet
2.创建:通过调用Servlet的构造函数来创建一个Servlet实例
3.初始化:通过调用Servlet的init()方法来完成初始化工作,这个方法是在Servlet已经被创建,但在向客户端提供服务之前调用。
4.处理客户请求:Servlet创建后就可以处理请求,当有新的客户端请求时,Web容器都会创建一个新的线程来处理该请求。接着调用Servlet的
Service()方法来响应客户端请求(Service方***根据请求的method属性来调用doGet()和doPost())
5.卸载:容器在卸载Servlet之前需要调用destroy()方法,让Servlet释放其占用的资源。
【注:除了init只初始化一次外、其他 用户端运行JSP时方法都会运行一次】
题目来源于 【牛客网】