Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

setContentTypeに関して

おはようございます。
Java Servletを触り始めたばかりの初心者です。

まずはサンプルコードを動かそうと思い、先輩方のホームページを参考にコードを入力しておりました。
全てのコード入力が完了していないのですが、かなり気になるエラーが発生しております。
以下、入力途中のコードになります。

----- ここからコード -----
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet
{
    public void doGet(HttpServletRequest request, HttpServletRequest response)
    throws IOException, ServletException
    {
        response.setContentType("text/html");
        
        ((ServletResponse)response).setContentType("text/html");
    }
}
----- ここまでコード ----

エラーとなっている箇所はsetContentTypeをキャストせずに使用してる箇所となります。
発生しているエラーは「The method setContentType(String) is undefined for the type HttpServletRequest」というものです。
HttpServletRequestではそんな定義ないよ!的な感じでしょうか・・・。
そこで試したのがその下の行のコードになります。キャストをつけてコンパイルしてみました。これはエラーになりませんでした。
しかしながら、HttpServletRequestはHttpServletを継承しており、HttpServletではsetContentTypeは定義されております。わざわざ親クラスにキャストし使用するのはおかしいのではないかと・・・。リファレンスにしておりますホームページでもキャストの記述はありません。

何故このエラーが発生しているのかがわからないのです。ここ見てみれば?的な確認ポイントなどありましたらアドバイス頂ければ幸いです。

開発環境:
eclipse

1

回答

14754

閲覧

1件の回答

評価

0

自己完結です。
やらかしてました(´・ω・`)タイプミスでした。

みちゃらめっ(´;ω;`)

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。