如何在jetty中添加父上下文

如何在jetty中添加父上下文,jetty,contextpath,Jetty,Contextpath,我编写了一个contexthandler来映射http://hostname:9001/gm/test 详情如下: 公共静态无效主字符串[]args引发异常{ 服务器服务器=新服务器新队列线程池8,6; ServerConnector连接器=新的ServerConnector服务器; 连接器.setPort9001; server.setConnectorsnew连接器[]{Connector}; HandlerCollection处理程序=新建HandlerCollection; Contex

我编写了一个contexthandler来映射http://hostname:9001/gm/test 详情如下:

公共静态无效主字符串[]args引发异常{ 服务器服务器=新服务器新队列线程池8,6; ServerConnector连接器=新的ServerConnector服务器; 连接器.setPort9001; server.setConnectorsnew连接器[]{Connector}; HandlerCollection处理程序=新建HandlerCollection; ContextHandler ContextHandler=new ContextHandler/gm; ContextHandlerCollection上下文=新建ContextHandlerCollection; contexts.setHandlersnew Handler[]{new TestHandler/test}; contextHandler.setHandlercontexts; handler.setHandlersnew handler[]{contextHandler,new DefaultHandler}; server.setHandlerhandler; server.start; server.dumpStdErr; server.join; } 但它不起作用。如果我删除up代码中的var contextHandler。要求http://localhost:9001/test 它起作用了。调用了Testhandle.doHandle。如果我想将父上下文路径添加到ContextHandlerCollection中的所有ContextHandler中,如何操作

嵌套的ContextHandlerCollection不是它自己的上下文,也不是父上下文的附加上下文

处理者只知道自己和下面,而不知道上面是什么

您的代码本质上是这样的

Server
  + HandlerCollection
      + ContextHandler "/gm"
      |   + ContextHandlerCollection
      |       + TestHandler "/test"
      + DefaultHandler  
如果传入请求处于打开状态http://localhost:9001/gm/test 然后,该请求的处理将命中ContextHandler/gm,并允许处理与传入请求匹配的子树。然后它点击TestHandler/test,我假设它有自己的上下文路径或目标逻辑,然后不再匹配为/gm/test!=/测试,因为TestHandler对其上面的ContextHandler一无所知

您的代码可能如下所示

公共静态无效主字符串[]args引发异常{ 服务器服务器=新服务器新队列线程池8,6; ServerConnector连接器=新的ServerConnector服务器; 连接器.setPort9001; server.setConnectorsnew连接器[]{Connector}; HandlerCollection处理程序=新HandlerCollection; server.setHandlerhandlers; ContextHandlerCollection上下文=新建ContextHandlerCollection; 字符串baseContext=/gm; //地图上/gm/test contexts.addHandlersnew TestHandlerbaseContext+/test; //地图位于/gm/foo contexts.addHandlersnew foodHandlerBaseContext+/foo; baseContext=/odd; //地图位于/奇数/条形图上 contexts.addHandlersnew BarHandlerbaseContext+/bar; handlers.setHandlersnew Handler[]{Context,new DefaultHandler}; server.start; server.dumpStdErr; server.join; }