public void handle(Socket socket) { InputStream input = null; OutputStream output = null; try { input = socket.getInputStream(); output = socket.getOutputStream(); // 创建请求对象 request = new HttpRequest(input); // 创建响应对象 response = new HttpResponse(output); response.setRequest(request); // 设置响应头 response.addHeader("Server", "Bradypod Server Container"); response.addHeader("Content-Type", "text/html"); // 解析请求 request.parse(); response.sendHeaders(); // 发送响应头 // 判断是否请求动态资源 if (request.getRequestURI() == null) { response.getWriter().println("404 Not Found!"); } else if (request.getRequestURI().startsWith("/servlet/")) { ServletProcessor processor = new ServletProcessor(); processor.process(request, response); } else { ResourceProcessor processor = new ResourceProcessor(); processor.process(request, response); } // --> end if-else // 关闭连接 socket.close(); } catch (IOException ex) { } }
public void process(Socket socket) { SocketInputStream input = null; OutputStream output = null; try { input = new SocketInputStream(socket.getInputStream(), 2048); output = socket.getOutputStream(); // create HttpRequest object and parse request = new HttpRequest(input); // create HttpResponse object response = new HttpResponse(output); response.setRequest(request); response.setHeader("Server", "Pyrmont Servlet Container"); parseRequest(input, output); parseHeaders(input); // check if this is a request for a servlet or a static resource // a request for a servlet begins with "/servlet/" if (request.getRequestURI().startsWith("/servlet/")) { ServletProcessor processor = new ServletProcessor(); processor.process(request, response); } else { StaticResourceProcessor processor = new StaticResourceProcessor(); processor.process(request, response); } // Close the socket socket.close(); // no shutdown for this application } catch (Exception e) { e.printStackTrace(); } }