为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或位置。很抱歉