Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为com.sun.net.httpserver.httpserver(Java)动态创建上下文_Java_Httpserver - Fatal编程技术网

为com.sun.net.httpserver.httpserver(Java)动态创建上下文

为com.sun.net.httpserver.httpserver(Java)动态创建上下文,java,httpserver,Java,Httpserver,我需要使用com.sun.net.httpserver.httpserver处理HTTP请求,这些请求由以下URL架构触发: http://somehost:9000// 是传递给 是服务器提供的预定义服务 问题是在编译时上下文路径是未知的(因为),所以我不能只调用createContext(字符串路径,HttpHandler)。如何将这种“动态”上下文绑定到特定的HttpHandler实例?您可以处理“/”并调整处理程序,如下所示: createContext("/", new HttpHan

我需要使用
com.sun.net.httpserver.httpserver
处理HTTP请求,这些请求由以下URL架构触发:

http://somehost:9000//

是传递给

是服务器提供的预定义服务

问题是在编译时上下文路径是未知的(因为
),所以我不能只调用
createContext(字符串路径,HttpHandler)
。如何将这种“动态”上下文绑定到特定的
HttpHandler
实例?

您可以处理“/”并调整处理程序,如下所示:

createContext("/", new HttpHandler(){
    @Override
    void handle(final HttpExchange exchange) throws IOException {
         // use getRequestURI()
    }
});

另请参见

我知道这是一条非常古老的线索,但对于任何找到它的人,我希望我的回答会有所帮助

我最近创建了一个类似的服务器,在那里我需要一个表单/person/[id]/[location]的URL处理程序,其中“id”和“location”是变量值。但我也需要一个/人处理者

我确信在某个地方有关于这个的文档,但我发现creatContext将为它首先识别的任何对象分配一个处理程序

这意味着我所要做的就是为“/person”定义一个处理程序,并在该处理程序中检查[id]和[location]值。如果有这些值,处理程序将执行不同的操作,如果没有,则只执行/person处理程序


我希望这有帮助

处理“/”然后适应处理程序?我正在寻找更多。。。比如说。。。简化的解决方案,但这似乎是我唯一的选择@RC.,您能否添加您的注释作为答案,以便我将其标记为已接受,谢谢。没有其他方法解析路径参数吗?您能否提供一个代码示例,说明如何检查
id
位置
值?这是一个好问题!我这样做是为了一个学校的项目,不幸的是,我不认为我有任何代码。我可能使用了getRequestURI,我记得我根据“/”分隔字符串以查看是否存在id或位置。很抱歉