从servlet中的service方法调用init()方法

时间:2012-04-20 09:40:05

标签: java servlets

我们可以从servlet中的service()方法调用init()方法吗?我把这作为一个面试问题。为什么有人会这样做?

7 个答案:

答案 0 :(得分:9)

没有理由从init调用serviceinit是由容器调用 - 用配置初始化它(顾名思义)并允许它做它需要做的任何昂贵的操作(建立与数据库或其他任何连接)。

如果您想以编程方式重新配置servlet以从servlet本身调用init,那么可能会有所帮助,但我很难看到这个用例。

答案 1 :(得分:1)

在调用init()方法

之前,不会调用典型的servlet生命周期service()方法

答案 2 :(得分:0)

您可以将init作为方法调用,而不是在servlet的生命周期中调用它。

即使是服务方法也只能在init之后调用。

答案 3 :(得分:0)

调用

init()方法来初始化所有需要的东西,然后才能使servlet工作。

在采访中提出的问题是为了让你的知识在以下领域让他们了解:

  1. 什么是init()
  2. 为什么要求
  3. 我们在哪里称之为
  4. 如果我们从服务中调用它将会发生什么
  5. 第4号。这就像建造一座建筑物,然后呼吁买家安顿下来,然后开始建造它的结构。他们要求了解您在项目处理方面的管理和组织才能。

    换句话说,这样做无济于事,你的servlet也不会受到影响!

答案 4 :(得分:0)

void init(ServletConfig config)throws ServletException

servlet容器在实例化init method后恰好调用servlet一次。在servlet接收任何请求之前,init method必须成功完成 如果servlet

init method.容器无法将servlet投入使用

但是:如果你想明确地调用init而不是你打电话给你班级的正常功能。

答案 5 :(得分:0)

init方法只能被调用一次。它在首次创建servlet时调用,而不是为每个用户请求再次调用。因此,它用于一次性初始化,就像applet的init方法一样。

当用户首次调用与servlet相对应的URL时,通常会创建servlet,但您也可以指定在首次启动服务器时加载servlet。

当用户调用servlet时,会创建每个servlet的单个实例,每个用户请求都会生成一个新线程,该线程会根据需要传递给doGet或doPost。 init()方法只是创建或加载一些将在servlet的整个生命周期中使用的数据。

答案 6 :(得分:0)

不,我建议不要调用,因为init()方法应该只调用一次来进行一些初始化(比如数据库连接代码,这只需要调用一次,没有理由多次调用它)其中as将为每个用户请求调用service方法(具有用户特定的请求和响应对象)。想象一下,如果你从服务方法调用init,那么init会调用很多次。所以这样调用不是一个好主意。 / p>