サーブレットクラスはHttpServletRequestのメソッドを使用して
リクエストパラメータを取り出しますが、
どの記述でHttpServletRequestクラスをインスタンス化しているのでしょうか?
※HttpServletRequestはクラスではなく、インターフェースです
申し訳ございません。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
サーブレットコンテナから渡されるのではないでしょうか.
投稿2019/08/15 13:35
総合スコア12632
0
そもそも正確にはクラスではなくインターフェースです。
newできません。
投稿2019/08/15 14:06
総合スコア80850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/15 20:42
2019/08/16 01:16
2019/08/17 04:26
0
そもそもHttpServletRequestはインターフェースであり、
リクエストパラメータを取得するgetParameter()を実行するために、サーブレットクラスで何らかのインスタンスを生成する必要がない。
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8"); String name = request.getParameter("name"); String gender = request.getParameter("gender");
}
getParameter()を実行するのに、サーブレットクラスで「何々クラス」のインスタンスを生成する必要はないですよね。
サーブレットコンテナからサーブレットクラスにHttpServletRequestインターフェースを実装した「何々クラス」のインスタンスが引数として渡されており、getParameter()を実行できるかどうかはrequestの型であるHttpServletRequestインターフェースがgetParameter()を持っているかどうかだけで決まるので。
渡ってきたインスタンスのリクエストパラメータを取得したいのに、サーブレットクラスでインスタンスを生成するって何がしたいんだ?ってなりますよね。
自分としては「どうしてインスタンス化してないクラスのメソッドが使えるんだ?」と悩んでいたわけですが。
List<Integer> list = new ArrayList<>();
list.add(1);
これまで上記のようにインスタンス化とインスタンス化したクラスのメソッド実行はセットであることが多かったので、
他クラスのメソッドを用いるにはそのクラスのインスタンス化が必要という思考から抜け出せないでいました。
質問にご回答して頂いた皆様、本当に有難うございました。
投稿2019/08/15 19:17
総合スコア3
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/15 13:38
2019/08/15 13:45
2019/08/15 13:59
退会済みユーザー
2019/08/15 14:10
退会済みユーザー
2019/08/15 14:12
2019/08/15 14:25
2019/08/15 19:10