在Intellij中找不到Servlet

cub*_*beb 4 java jsp servlets intellij-idea

我试图运行我的jsp页面和servlet.当我尝试通过url调用它时找不到Servlet

http:// localhost:8080/StudentServlet 我收到404错误说:

"请求的资源不可用".

我也试图通过表格来调用它.当我单击提交时,无法识别它产生相同的错误.

在这里阅读答案,要求使用Maven或通过web.xml设置映射.根据我的理解,通过web.xml设置是旧方法,新方法是在我拥有的servlet上设置名称.不确定我做错了什么.

我没有使用和构建工具,只是启动我在本地使用的Tomcat服务器来运行jsp页面.但Servlet无法识别.添加了项目结构的截图,以防出现问题.

Servlet的

@WebServlet(name = "StudentServlet")
public class StudentServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html");

        PrintWriter out = response.getWriter();

        out.println("<html><body>");

        out.println("<h3>Student name is:" +
                request.getParameter("firstname") +
                " " +
                request.getParameter("lastname") +
                "</h3>");

        out.println("</body></html>");

    }
}
Run Code Online (Sandbox Code Playgroud)

的index.jsp

<form action="StudentServlet" method="get">
    First Name: <input type="text" name="firstname"/>
    <br/><br/>
    Last Name: <input type="text" name="lastname"/>
    <br/><br/>
    <input type="submit" value="Submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

项目结构

在此输入图像描述

Cra*_*der 6

WebServlet文档说明以下内容:

必须在注释的valueor urlPattern属性中声明至少一个URL模式,但不能同时在两者中声明.

您可以使用以下内容:

@WebServlet("/StudentServlet")
Run Code Online (Sandbox Code Playgroud)

或这个:

@WebServlet(name = "StudentServlet", urlPatterns={"/StudentServlet"})
Run Code Online (Sandbox Code Playgroud)

或这个:

@WebServlet(name = "StudentServlet", value="/StudentServlet")
Run Code Online (Sandbox Code Playgroud)

value属性被建议用于URL模式是唯一的属性被设置,否则urlPattern应使用属性.