404エラーが発生した際の対処法
14.2 404エラーが発生した際の対処法
404エラーは、画面遷移先として指定したURLのファイルやURLパターンが見つからない時に発生します。
本節では、404エラーが発生した際の対処法とその手順を説明します。
14.2.1 誤字脱字は無いか
404エラーの主な原因に、ファイル名やURLパターンの記述内容が一致していないことが挙げられます。誤字脱字が無いことはもちろん、アルファベットの大文字・小文字や半角・全角についても完全一致している必要がありますので、しっかりと確認しておきましょう。
①URLバーから画面遷移する場合に確認すべき場所
・URLバーに入力したURL
・(遷移先がjspの場合)jspファイル名や、jspファイルが格納されているフォルダ名
・(遷移先がサーブレットの場合)@WebServletに記載したURLパターン
図 14.2.1 誤字脱字の確認箇所(URLバーから遷移した場合)
②入力フォームやリンクから画面遷移する場合に確認すべき場所
・formタグのaction属性やaタグのhref属性に記載しているURL
・(遷移先がjspの場合)jspファイル名や、jspファイルが格納されているフォルダ名
・(遷移先がサーブレットの場合)@WebServletに記載したURLパターン
図 14.2.2誤字脱字の確認箇所(フォームから遷移した場合)
14.2.2 14.2.2 URLパターンが正しく記載されているか
誤字脱字は無いのに404エラーが発生している場合は、URLパターンの記載が誤っている可能性があります。
以下の手順に沿って、URLパターンが適切に記載されているか確認しましょう。
① 要求されたリソースが利用できない場合
図 14.2.3 要求されたリソースが利用できない場合
「実行」ボタンで起動した際に、図のようなメッセージが出ている場合は、@WebServletアノテーションを書き忘れている可能性が高いです。サーブレットの記述を見直し、書き忘れている場合は追記しましょう。
図 14.2.4 @WebServletアノテーションが無いと正しく動作しません
また、似たようなメッセージですが、以下のようにURLパターンだけ表示された場合は、作成したプログラムがきちんとコンパイルされていない可能性が高いです。
図 14.2.5 要求されたリソースが利用できない場合 その2
こちらについては「プロジェクト・エクスプローラー」でコンパイルできているかを確認することができます。「build」フォルダ内の「classes」フォルダ内に、各パッケージ用のフォルダがあります。その中に、「○○ Servlet.class」という形で、各Javaファイルをコンパイルしてできたクラスファイルがあるのですが、これが無い場合、上記のメッセージが表示されてしまいます。
図 14.2.6 プロジェクト・エクスプローラー
基本的には自動的にコンパイルされる設定になっている筈なので、メニューの「プロジェクト」タブを確認しましょう。こちらにチェックを付けた上で、対象のサーブレットの.javaファイルを保存すると、対応するクラスファイルが生成され、エラーが解決します。
図 14.2.7 「自動的にビルド」にチェックが入っていれば自動的にclassファイルが生成される
② 対象のサーブレットがHttpServletクラスを継承しているか
図 14.2.8 ターゲットリソースの表現を見つけられなかった場合
もし、「メッセージ」が無く、上記の説明だけの画面になっている場合は、サーブレットとして用意したクラスがHttpServletクラスを継承できていない可能性が高いです。クラス定義の行に「extends HttpServlet」が記載されているか確認し、書かれていない時は追記してください。
図 14.2.9 クラス定義部分