※ ChatGPTを利用し、要約された質問です(原文:doGetの引数に「入るモノ」について)
このQ&Aのポイント
doGetメソッドの仮引数には、HttpServletRequestをimplementsしたクラスのインスタンスが入れられます。
具体的には、リクエスト情報を表すHttpServletRequestクラスのインスタンスと、レスポンス情報を表すHttpServletResponseクラスのインスタンスが入ることになります。
これらのクラスはサーブレットコンテナの役割であるTomcatによってインスタンス化されます。
サーブレットにおけるクラスのdoGetメソッドについて
質問です(Tomcat3.2.1 + JDK1.3)。
public void doGet(HttpServletRequest request,
HttpServletResponse response)
理屈で考えると、このdoGetメソッドの2つの仮引数
(request, response)には、
「インターフェースHttpServletRequestをimplements
したクラス」のインスタンス
‥‥と、
「インターフェースHttpServletRequestをimplements
したクラス」のインスタンス
の2つのインスタンスが入れられるハズですよね。
そこで疑問なのが、
1. それら2つのクラスの名前はなんというのでしょう?
(というのはインターフェースHttpServletRequestや
インターフェースHttpServletResponseを
実装したクラスのメソッドの処理内容の定義を
見たいのです‥)
2. 誰がそのクラスをインスタンス化しているのでしょう?
(サーブレットコンテナのTomcat? JRE? JVM?‥
いったい誰が?‥‥用語の区別も曖昧なのですが)
補足すると、
Javaアプリケーションのmainメソッドでは、
public static void main(String[] args)
として、コマンドラインの引数がそのまま仮引数argsに
入る。じゃあ、サーブレットの場合はどうなのか?
といった感じです。
2.のほうはトンチンカンな質問かもしれませんが、
1.の質問は切実です。
ご存知の方、教えてください。
お礼
>このHttpServletRequestFacadeクラスの使われかたも、ソースを見ればわかります。 なるほど、ここにあったんですね。 このソースを解読する(?)のは大変そうですが、 チャレンジしてみます。 amajunさん、どうもありがとうございました。