2

サーブレットの service() メソッドから init() メソッドを呼び出すことはできますか? 面接の質問としてこれを得ました。とにかく、なぜ誰かがこれをするのでしょうか?

4

7 に答える 7

9

initfromserviceを呼び出す理由はありませんinit。コンテナーによって呼び出されることを意図しています。構成で初期化し (名前が示すように)、必要な高価な操作 (データベースへの接続の設定など) を実行できるようにするためです。

サーブレット自体からを呼び出すようにプログラムでサーブレットを再構成したい場合は、ある程度理にかなっているかもしれませんinitが、私はこの使用例を理解するのに苦労しています。

于 2012-04-20T09:51:30.523 に答える
1

通常のサーブレット ライフサイクルでは、init() メソッドを呼び出す前に service() メソッドは呼び出されません。

于 2012-04-20T09:54:10.687 に答える
0

init()サーブレットを機能させる前に、必要なものをすべて初期化するためにメソッドが呼び出されます。

インタビューで尋ねられた質問は、次の分野であなたの知識を彼らに知らせることを目的としていました。

  1. とはinit()
  2. なぜそれが求められるのですか
  3. どこと呼んでいますか
  4. サービスから電話するとどうなりますか

ナンバー4。それは建物を建設し、次にバイヤーにそこに落ち着いて、そしてその構造を置き始めるように呼びかけるようなものです。彼らは、プロジェクトの処理に関するあなたの管理と組織の才能を知るためにこれを求めていました。

言い換えれば、それを行うことは無駄であり、サーブレットは影響を受けません!

于 2012-04-20T10:07:37.253 に答える
0
void init(ServletConfig config)throws ServletException

servletコンテナは、をinit methodインスタンス化した後、 を 1 回だけ呼び出しますservletinit methodサーブレットがリクエストを受け取る前に、 が正常に完了する必要があります。
次のservlet場合、コンテナーはサーブレットをサービスに配置できません。init method.

ただしinit、クラスの通常の関数として呼び出すよりも明示的に呼び出したい場合。

于 2012-04-20T10:43:23.567 に答える
0

サービスメソッドがすべてのユーザー要求に対して呼び出されます (ユーザー固有の要求および応答オブジェクトを使用)。サービス メソッドから init を呼び出すと、init が何度も呼び出されると想像してください。したがって、そのように呼び出すことはお勧めできません。

于 2014-11-27T08:13:48.473 に答える