有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从main方法加载servlet

我有主类,在那里我做api请求并与数据库集成。 我还创建了servlet,在这里我想从客户端获取数据并将其放入数据库。 它是主类中的主要方法:

public static void main(String[] args) throws IOException {

    serverSocket = new ServerSocket(8888); // Server port
    System.out.println("Server started. Listening to the port 8888");

    initProviderList();
    initNewsAppDB();

    Thread newFeedsUpdate = new Thread(new NewFeedsUpdate(providerList));
    newFeedsUpdate.start();
}

它是servlet:

  @WebServlet(name = "GetClientTokenServlet")
public class GetClientTokenServlet extends HttpServlet {

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

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String token = request.getParameter("token");
        System.out.println(token);
    }

网络。xml:

    <?xml version="1.0" encoding="UTF-8"?>
<web-app
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
        version="4.0">

    <servlet>
        <servlet-name>GetClientTokenServlet</servlet-name>
        <servlet-class>GetClientTokenServlet</servlet-class>
    </servlet>

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

如何将GetClientTokenServlet(能够侦听客户端调用)设置到main方法中


共 (1) 个答案

  1. # 1 楼答案

    在大多数情况下,Java中的web应用程序没有main方法。main方法由servlet容器实现,例如Tomcat,这就是您实际运行的方法。servlet容器发现应用程序的类和web。xml通过某种方法,通常是在一个WAR file中找到它们,这个WAR file是您放在servlet容器定义的目录中的,例如Tomcat的webapps目录。servlet容器然后实例化web.xml文件中标识的servlet

    也就是说,您可以在自己的应用程序中将一些web服务器实例化为组件。通常用于此目的的服务器是Jetty。Jetty是一个web服务器,它将传入的请求传递给您定义的“处理程序”。您可以让Jetty从WAR文件加载整个web应用程序,并实例化在web.xml中定义的servlet,或者您可以使用ServletHandler手动注册servlet;在这种情况下,您不需要web.xml