java – HTTP请求对象
发布时间:2020-12-15 08:31:17 所属栏目:Java 来源:网络整理
导读:标准 Java SE中是否有可以接受来自套接字的HTTP请求的对象?我已经找到了如何创建和发送一个,但我还没有找到从套接字检索HTTP对象的方法.我可以创造一个我的自我,但我宁愿依赖经过严格测试的对象. 考虑到JSP的结构,这似乎很容易获得. 解决方法 Java 6 SDK中
标准
Java SE中是否有可以接受来自套接字的HTTP请求的对象?我已经找到了如何创建和发送一个,但我还没有找到从套接字检索HTTP对象的方法.我可以创造一个我的自我,但我宁愿依赖经过严格测试的对象.
考虑到JSP的结构,这似乎很容易获得. 解决方法
Java 6 SDK中有一个小型HTTP服务器(不确定它是在JRE中还是在非Sun JVM中).
从http://www.java2s.com/Code/Java/JDK-6/LightweightHTTPServer.htm开始: import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.concurrent.Executors; import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; public class HttpServerDemo { public static void main(String[] args) throws IOException { InetSocketAddress addr = new InetSocketAddress(8080); HttpServer server = HttpServer.create(addr,0); server.createContext("/",new MyHandler()); server.setExecutor(Executors.newCachedThreadPool()); server.start(); System.out.println("Server is listening on port 8080" ); } } class MyHandler implements HttpHandler { public void handle(HttpExchange exchange) throws IOException { String requestMethod = exchange.getRequestMethod(); if (requestMethod.equalsIgnoreCase("GET")) { Headers responseHeaders = exchange.getResponseHeaders(); responseHeaders.set("Content-Type","text/plain"); exchange.sendResponseHeaders(200,0); OutputStream responseBody = exchange.getResponseBody(); Headers requestHeaders = exchange.getRequestHeaders(); Set<String> keySet = requestHeaders.keySet(); Iterator<String> iter = keySet.iterator(); while (iter.hasNext()) { String key = iter.next(); List values = requestHeaders.get(key); String s = key + " = " + values.toString() + "n"; responseBody.write(s.getBytes()); } responseBody.close(); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |