Webフォルダーに手動で作成したフォルダーではなく、Javaソースコードフォルダーのパッケージに通常のJavaクラスとしてサーブレットを作成する必要があります。また、サーブレットをURLパターンにマップする必要があります。
Javaソースコードフォルダにパッケージcom.example
(または他のもの、ただしパッケージ内にある必要があります)を作成してから、通常のJavaの方法で次のクラスを作成します。
package com.example;
// ...
@WebServlet("/login")
public class Login extends HttpServlet {
// ...
}
EclipseやNetbeansなどのIDEを使用している場合は、適切なフォルダに自動的にコンパイルされ、展開後/login
、コンテキストパスに関連するURLで利用できるようになります。
<form action="${pageContext.request.contextPath}/login" method="post">
サーブレット3.0互換のコンテナ(Tomcat 7、Glassfish 3など)をまだ使用していない場合は、@WebServlet
アノテーションを削除し、サーブレットを旧式の方法でweb.xml
次のように登録する必要があります。
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.example.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
参照: