初心者が初めてサーブレット/JSP/JDBCを使ってWebアプリケーションを制作する際、404などのエラーで上手く表示されないことがあったので備忘録として残します。
使用環境
PC:MacBook Air 2018
OS:macOS Sonoma 14.3.1
IDE:Eclipse 2023
Webコンテナ:Tomcat 10.1.18
RDBMS:MySQL 8.3.0
404エラーとは?
404エラー(404 not found)とは、存在しないWebページにアクセスしようとした際に表示されるエラーです。
web.xmlのservletタグ、servlet-mappingタグのサーブレット名違い
Eclipseでサーブレットを作成した際にweb.xmlにservletタグ、servlet-mappingタグが作成されます。
しかし、サーブレットを右クリック→リファクタリング→名前の変更でサーブレット名を変更してもservletタグ、servlet-mappingタグ内のサーブレット名は変更されず、404エラーが表示されてしまいます。
なので、サーブレット名を後から変更した際はweb.xmlのservletタグ、servlet-mappingタグ内のサーブレット名も修正するようにしています。
servletタグ、servlet-mappingタグが見つからない
Eclispseでサーブレットを作成する際、「サーブレット」ではなく通常の「クラス」から作成するとservletタグ、servlet-mappingタグが作成されないので404エラーが表示されました。
JSPファイルのpageディレクティブ内のスペルミス
JSPファイルのpageディレクティブ内にスペルミスがあった場合も、404エラーが表示されました(正:pageEncoding="UTF-8"、誤:pageEncording="UTF-8"など)。
その他のエラー
No suitable driver found for
JDBCドライバの準備(Tomcatのlibディレクトリに配置)をせずにJDBCでデータベースに接続しようとしたら、エラー(No suitable driver found for)が表示されました。
java.lang.IllegalArgumentException
サーブレットの情報をweb.xmlのservletタグ、servlet-mappingタグで指定して、なおかつアノテーションでURLを指定したらjava.lang.IllegalArgumentExceptionのエラー(サーブレット[サーブレット名]と[パッケージ名.サーブレット名]を同じurl-pattern[/サーブレット名] にマッピングすることはできません。)が表示されました。