部署简单的 Web 应用程序时,java 文件(即 servlet)不会 运行 服务器上 (Tomcat)

While deploying a simple web application, the java file (i.e servlet) doesn't run on server (Tomcat)

1.java 文件没有错误,我已经创建了 form.html。 tomcat 工作正常,当我尝试 运行 .html 时它 运行 很好但是当我尝试 运行 .java 文件显示错误 "Servlet BeerSelect is not available" 而我已经定义了它。 对不起大家,我是新来的,所以没有必要的声誉来放图片。

您不能简单地 运行 一个 .java 文件,因为它在 tomcat 上。它应该是用于该目的的 servlet。

一个简单的 servlet 示例是:

    package com.jenkov.butterfly;
    import java.io.IOException;

    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class MyServlet extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws IOException {
            response.getWriter().println("Hello");
        }
    }

如果它已经是一个 servlet,您可能会缺少 web.xml:

中的映射
<?xml version="1.0" encoding="UTF-8"?>
<web-app
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
            http://java.sun.com/xml/ns/javaee
            http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

        <servlet>
            <servlet-name>MyServlet</servlet-name>
            <servlet-class>com.jenkov.butterfly.MyServlet</servlet-class>
        </servlet>

        <servlet-mapping>
            <servlet-name>MyServlet</servlet-name>
            <url-pattern>/MyServlet</url-pattern>
        </servlet-mapping>
</web-app> 

或者,您可以添加 @WebServlet 注释:

import java.io.IOException;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException {
        response.getWriter().println("Hello");
    }
}