Java 如何将参数传递给HttpServer的实现?

Java 如何将参数传递给HttpServer的实现?,java,parameter-passing,httpserver,Java,Parameter Passing,Httpserver,我已经实现了com.sun.net.httpserver.httpserver: HttpServer server = HttpServer.create(new InetSocketAddress(8001), 0); server.createContext("/myserver", new myHttpHandler()); server.createContext("/myserver/get", new GetHttpHandler()); 我想使用以下url将参数传递给/m

我已经实现了com.sun.net.httpserver.httpserver:

 HttpServer server = HttpServer.create(new InetSocketAddress(8001), 0);
 server.createContext("/myserver", new myHttpHandler());
 server.createContext("/myserver/get", new GetHttpHandler());
我想使用以下url将参数传递给/myserver/get:

 http://localhost:8000/myserver/get?deviceid=ABB00122

 static class GetHttpHandler implements HttpHandler {

   public void handle(HttpExchange exchange) throws IOException {

 // how do I now access the deviceid?

   }
 }

如何访问在handle方法中随url一起发送的参数deviceid?

我没有使用此类型,但从中可以看出属性不是请求参数。信息很可能可以通过该方法访问。

HttpServer类非常简单。如果希望访问URL中传递的参数(使用GET方法),则需要提供一个方法来提取这些参数

您可以从以下位置获取完整URL: httpExchange.getRequestURI().getQuery()

然后从这个字符串可以得到详细信息


有关更多信息,请参阅。

您是否阅读了
HttpExchange
的javadoc?从这里开始。似乎我可以通过getAttribute访问参数,我尝试了字符串deviceid=(String)exchange.getAttribute(“deviceid”);但是获取null作为deviceid的值。我做错了什么?好吧。如果我从com.sun.net.httpserver.HttpExchange切换到javax.xml.ws.spi.http.HttpExchange,那么javax.xml.ws.spi.http.HttpExchange如何与com.sun.net.httpserver.httpserver一起使用?我应该也使用com.sun.net.httpserver.HttpHandler吗?好的,我已经解决了这个问题。com.sun.net.httpserver.httpserver应与com.sun.net.httpserver.HttpExchange和com.sun.net.httpserver.HttpHandler一起使用。至于解析发送的属性,由于没有getQueryString,它看起来要复杂得多。