Servlets I';我收到一个404错误,don';我不知道我在做什么;我失踪了

Servlets I';我收到一个404错误,don';我不知道我在做什么;我失踪了,servlets,http-status-code-404,Servlets,Http Status Code 404,我有以下servlet: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class MailServlet extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws Serv

我有以下servlet:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MailServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        String m = request.getParameter("mail");
        String sub = request.getParameter("subject");
        String messg = request.getParameter("message");

        SendMail.send(m, sub, messg);
        out.print("Your Mail has been sent successfully");
        out.close();
    }
}
我试图通过以下形式调用它:

<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width">
</head>
<body bgcolor="pink">
    <form action="MailServlet">
        <table>
            <tr>
                <td>To:</td>
                <td><input type="text" name="mail"/><br/></td>
            </tr>
            <tr>
                <td>Subject:</td>
                <td><input type="text" name="subject"><br/></td>
            </tr>
            <tr>
                <td>Message Text:</td>
                <td><textarea rows="12" cols="80" name="message"></textarea><br/></td>
            </tr>
            <tr>
                <td><input type="submit" value="Send"></td>
                <td><input type="reset" value="Reset"></td>
            </tr> 
        </table>
    </form>
</body>

致:

主题:
信息文本:

但是,它返回HTTP状态404:


需要映射servlet才能访问它们

如果您使用的是Servlet 3.0,则可以使用:

@WebServlet("/MailServlet") // /MailServlet is the partial URL of the servlet.
public class MailServlet extends HttpServlet {

    [...]

}
如果未使用Servlet 3.0,则必须在
web.xml
中映射Servlet,方法是将以下行放入
webapp
元素中:

<servlet>
    <servlet-name>MailServlet</servlet-name>
    <servlet-class>com.yourpackage.MailServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MailServlet</servlet-name>
    <url-pattern>/MailServlet</url-pattern>
</servlet-mapping>

MailServlet
com.yourpackage.MailServlet
MailServlet
/MailServlet

您是否在web.xml中映射了servlet?没有。您能给我一些指导吗@反斜杠谢谢你节省了我的时间。它起作用了。