您需要在 Java 源代码文件夹中的包中创建 servlet 作为普通 Java 类,而不是在 web 文件夹中手动创建的文件夹中。您还需要将 servlet 映射到 URL 模式。
在 Java 源代码文件夹中创建一个包com.example
(或其他东西,但它必须在一个包中),然后以通常的 Java 方式创建以下类:
package com.example;
// ...
@WebServlet("/login")
public class Login extends HttpServlet {
// ...
}
如果您使用的是 Eclipse 或 Netbeans 之类的 IDE,那么它将自动编译到正确的文件夹中,并且在部署后它将在 URL 上可用/login
,相对于上下文路径。
<form action="${pageContext.request.contextPath}/login" method="post">
如果您仍然没有使用与 Servlet 3.0 兼容的容器(Tomcat 7、Glassfish 3 等),那么您需要删除@WebServlet
注释并以老式方式注册 servlet,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>
也可以看看: