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 楼答案
在大多数情况下,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