首页 > 试题广场 >

Servlet的生命周期可以分为初始化阶段,运行阶段和销毁阶

[不定项选择题]
Servlet的生命周期可以分为初始化阶段,运行阶段和销毁阶段三个阶段,以下过程属于初始化阶段是()。
  • 加载Servlet类及.class对应的数据
  • 创建servletRequest和servletResponse对象
  • 创建ServletConfig对象
  • 创建Servlet对象
推荐
Servlet的生命周期一般可以用三个方法来表示:
  1. init():仅执行一次,负责在装载Servlet时初始化Servlet对象
  2. service() :核心方法,一般HttpServlet中会有get,post两种处理方式。在调用doGet和doPost方法时会构造servletRequest和servletResponse请求和响应对象作为参数。
  3. destory():在停止并且卸载Servlet时执行,负责释放资源

初始化阶段:Servlet启动,会读取配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,将ServletConfig作为参数来调用init()方法。所以选ACD。B是在调用service方法时才构造的

编辑于 2016-04-27 10:20:37 回复(10)
编辑于 2017-08-23 16:53:56 回复(21)
Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。 Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。 这个过程为: 1) 客户端发送请求至服务器端; 2) 服务器将请求信息发送至 Servlet; 3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求; 4) 服务器将响应返回给客户端。
发表于 2018-05-04 08:30:54 回复(0)
Servlet的生命周期可以分为初始化阶段,运行阶段和销毁阶段三个阶段,以下过程属于初始化阶段是
1.  加载Servlet类及.class对应的数据
2. 创建ServletConfig对象
3. 创建Servlet对象

每一次请求来到容器时,会产生HttpServletRequest与HttpServlceResponse对象,并在调用service()方法时当做参数传入。
在WEB容器启动后,会读取Servlet设置信息,将Servlet类加载并实例化,并为每个Servlet设置信息产生一个ServletConfig对象,而后调用Servlet接口的init()方法,并将产生的ServletConfig对象当作参数传入。
发表于 2016-07-12 23:02:50 回复(2)
Servlet的生命周期一般可以用三个方法来表示:
  1. init():仅执行一次,负责在装载Servlet时初始化Servlet对象
  2. service() :核心方法,一般HttpServlet中会有get,post两种处理方式。在调用doGet和doPost方法时会构造servletRequest和servletResponse请求和响应对象作为参数。
  3. destory():在停止并且卸载Servlet时执行,负责释放资源

初始化阶段:Servlet启动,会读取配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,将ServletConfig作为参数来调用init()方法。所以选ACD。B是在调用service方法时才构造的

发表于 2015-12-22 20:56:40 回复(1)
Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。 Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。 这个过程为: 1) 客户端发送请求至服务器端; 2) 服务器将请求信息发送至 Servlet; 3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求; 4) 服务器将响应返回给客户端。
发表于 2016-03-11 19:53:53 回复(0)
选ACD
发表于 2016-01-08 10:11:03 回复(3)
Servlet的生命周期一般可以用三个方法来表示:
  1. init():仅执行一次,负责在装载Servlet时初始化Servlet对象
  2. service() :核心方法,一般HttpServlet中会有get,post两种处理方式。在调用doGet和doPost方法时会构造servletRequest和servletResponse请求和响应对象作为参数。
  3. destory():在停止并且卸载Servlet时执行,负责释放资源

初始化阶段:Servlet启动,会读取配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,将ServletConfig作为参数来调用init()方法。所以选ACD。B是在调用service方法时才构造的

发表于 2016-01-26 17:19:35 回复(1)
生命周期 (1)init:初始化阶段 - Serlvet容器加载serlvet类,将.class文件加载到虚拟机内存。 - Serlvet容器加载Servletconfig类。 - Serlvet容器创建serlvet对象。这个servlet对象下面会稍微说一下。 - Serlvet容器调用servlet的初始化的init方法将servlet进行初始化。 (2)service:处理请求,返回结果 - 当serlvet容器收到请求后,创建HttpRequest和HttpResponse方法。 - servlet容器调用service方法,容器将请求参数HttpRequest和HttpResponse传递给service,HttpRequest中封装了所有跟请求相关的信息。 - HttpResponse将请求的结果传递给用户。 (3)destory:销毁阶段 - web容器终止的时,会调用servlet的destory方法,销毁servlet对象, - 释放资源
发表于 2021-05-13 09:06:22 回复(0)
A加载servlet是属于JVM加载类的过程吧 和servlet初始化有什么关系 加载的时候servlet还没创建呢
发表于 2015-11-23 09:33:09 回复(2)
这道题有点不规范,init初始化方法应该在sevlet被服务器创建对象之后才启动的,怎么会ac的说法呢?
发表于 2017-01-12 08:58:22 回复(0)
初始化阶段:Servlet启动,会读取配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,将ServletConfig作为参数来调用init()方法。 运行阶段:在调用doGet和doPost方法时会构造servletRequest和servletResponse请求和响应对象作为参数。
发表于 2016-10-30 00:58:06 回复(0)
d
发表于 2015-10-14 18:58:15 回复(2)
创建servletRequest和servletResponse对象      这是在运行阶段完成的,用过调用doGet() 和 doPost() 然后构造的serveltRequest对象和servletResponse对象
编辑于 2022-04-26 15:20:59 回复(0)
它这题目是有问题的,正常的生命周期应该如下
1、web容器负责加载Servlet,对Servlet进行实例化
2、WEB容器调用Servlet的init()方法,对Servlet进行初始化 在Servlet实例化之后,Servlet容器会调用init()方法,来初始化该对象,主要是为了让Servlet对象在处理客户请求前可以完成一些初始化的工作,例如,建立数据库的连接,获取配置信息等。对于每一个Servlet实例,init()方法只能被调用一次。init()方法有一个类型为ServletConfig的参数,Servlet容器通过这个参数向Servlet传递配置信息。Servlet使用ServletConfig对象从Web应用程序的配置信息中获取以名-值对形式提供的初始化参数。另外,在Servlet中,还可以通过ServletConfig对象获取描述Servlet运行环境的ServletContext对象,使用该对象,Servlet可以和它的Servlet容器进行通信。无论有多少客户机访问Servlet,都不会重复执行init()。
3、WEB容器调用Servlet的service()方法处理请求
4、WEB容器决定销毁Servlet时,先调用Servlet的destroy()方法,通常在关闭web应用之前销毁Servlet
发表于 2022-04-06 22:08:01 回复(0)
Servlet 一共分为 5 个阶段:加载 ——> 实例化 ——> init() ——> service() ——> destroy()

加载做的就是通过 web.xml 由服务器将虚拟路径 url-pattern 解析,匹配对应的全类名,将该 Class 文件 load 到内存,具体是由谁来做的呢?Web 容器在 Java 提供的三个类加载基础上又提供了五个类加载器,至于作用和原因有兴趣的可以网上搜下 Tomcat 运行机制。

加载完毕后由 Tomcat 容器负责将其实例化。简单来讲就是通过 Container 的子容器 Wrapper 的标准实现 StandardWrapper(该类实现 ServletConfig,ServletConfig 就是在此时生成的) 配合 Pipeline 以及 StandardWrapperValve 和 Wrapper 的标准实现门面类 StandardWrapperFacade(该类实现了 ServletConfig,构造方法需 StandardWrappr 对象) 以 loadServlet() 这个方法得到 Servlet 的实例,细节省略,之后会调用 initServlet(Servlet servlet) 方法,执行 GenericServlet.init() 方法,源码里 init 做了俩件事,一是把由容器初始化的 ServletConfig 对象注入到当前类也就是 GenericServlet,还有就是对提供的午餐的 init() 方法的调用,这个主要是为了不影响 Servlet 运行的前提下提供用户来覆盖的 init 方法。

接下来 service,实际上这个 service 通常指的是 HttpServlet 的 service。在 service 之前有个 FilterChain 的东西,过滤器干完活了再转到 service 中,然后由 HttpServlet 的 service(ServletRequest req, ServletResponse res) 做类型转换 service(HttpServletRequest req, HttpServletResponse resp),判断 req.getMethod() 类型然后转入不同的处理逻辑。

最后 WEB 应用卸载的时候由容器调用 destroy 方法,具体怎么调用的有兴趣的可以自己翻源码。


发表于 2017-11-13 13:28:31 回复(0)
发表于 2017-07-21 18:26:54 回复(1)
每一次请求来到容器时,会产生HttpServletRequest与HttpServlceResponse对象,并在调用service()方法时当做参数传入。
在WEB容器启动后,会读取Servlet设置信息,将Servlet类加载并实例化,并为每个Servlet设置信息产生一个ServletConfig对象,而后调用Servlet接口的init()方法,并将产生的ServletConfig对象当作参数传入。
发表于 2016-06-05 13:32:37 回复(0)
  1. Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。
  2. init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。
  3. service():它是Servlet的核心,负责响应客户的请求。每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。
  4. destroy(): 仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。
发表于 2016-03-10 19:26:53 回复(0)
对应加载,创建初始化servlet的整个过程,创建servletRequest和servletResponse实现servlet方法,并不在这个范畴中
发表于 2022-01-11 08:02:09 回复(0)
请求和响应是在service方法执行
发表于 2021-04-03 08:45:48 回复(0)