simple HTTP server in Java using only Java SE API

前端 未结 17 1916
无人共我
无人共我 2020-11-22 13:28

Is there a way to create a very basic HTTP server (supporting only GET/POST) in Java using just the Java SE API, without writing code to manually parse HTTP requests and man

17条回答
  •  误落风尘
    2020-11-22 14:14

    This code is better than ours, you only need to add 2 libs: javax.servelet.jar and org.mortbay.jetty.jar.

    Class Jetty:

    package jetty;
    
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import org.mortbay.http.SocketListener;
    import org.mortbay.jetty.Server;
    import org.mortbay.jetty.servlet.ServletHttpContext;
    
    public class Jetty {
    
        public static void main(String[] args) {
            try {
                Server server = new Server();
                SocketListener listener = new SocketListener();      
    
                System.out.println("Max Thread :" + listener.getMaxThreads() + " Min Thread :" + listener.getMinThreads());
    
                listener.setHost("localhost");
                listener.setPort(8070);
                listener.setMinThreads(5);
                listener.setMaxThreads(250);
                server.addListener(listener);            
    
                ServletHttpContext context = (ServletHttpContext) server.getContext("/");
                context.addServlet("/MO", "jetty.HelloWorldServlet");
    
                server.start();
                server.join();
    
            /*//We will create our server running at http://localhost:8070
            Server server = new Server();
            server.addListener(":8070");
    
            //We will deploy our servlet to the server at the path '/'
            //it will be available at http://localhost:8070
            ServletHttpContext context = (ServletHttpContext) server.getContext("/");
            context.addServlet("/MO", "jetty.HelloWorldServlet");
    
            server.start();
            */
    
            } catch (Exception ex) {
                Logger.getLogger(Jetty.class.getName()).log(Level.SEVERE, null, ex);
            }
    
        }
    } 
    

    Servlet class:

    package jetty;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class HelloWorldServlet extends HttpServlet
    {
        @Override
        protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException
        {
            String appid = httpServletRequest.getParameter("appid");
            String conta = httpServletRequest.getParameter("conta");
    
            System.out.println("Appid : "+appid);
            System.out.println("Conta : "+conta);
    
            httpServletResponse.setContentType("text/plain");
            PrintWriter out = httpServletResponse.getWriter();
            out.println("Hello World!");
            out.close();
        }
    }
    

提交回复
热议问题