Java Jetty::ServletContextHandler#setContextPath(..)以及如何将Servlets与特定文件扩展名关联
我在中有以下代码: 调用Java Jetty::ServletContextHandler#setContextPath(..)以及如何将Servlets与特定文件扩展名关联,java,servlets,jetty,contextpath,Java,Servlets,Jetty,Contextpath,我在中有以下代码: 调用setContextPath中的“/a”与调用addServlet中的“/b/*”之间有什么区别?这些路径是否连接在一起以决定哪些请求MyServlet将提供服务 另外,是否可以将servlet与特定的文件扩展名相关联?也就是说,通过查看URI的“endsWith”部分,从而将以“.xsd”结尾的URI分派到特定的Servlet?或者调度完全基于“startsWith”逻辑吗?它应该基本上符合,其中URL由http://host:port//,其中上下文根由setCont
setContextPath
中的“/a”
与调用addServlet
中的“/b/*”
之间有什么区别?这些路径是否连接在一起以决定哪些请求MyServlet
将提供服务
另外,是否可以将servlet与特定的文件扩展名相关联?也就是说,通过查看URI的“
endsWith
”部分,从而将以“.xsd”结尾的URI分派到特定的Servlet?或者调度完全基于“startsWith
”逻辑吗?它应该基本上符合,其中URL由http://host:port//
,其中上下文根由setContextPath
定义,Servlet路径规范由addServlet
的第二个参数定义。因此,示例中的servlet将服务于以开头的所有URLhttp://host:port/a/b/
Servlet路径规范也允许定义到文件扩展名的映射,在您的示例中使用符号“*.xsd”,请参阅链接规范中的第12.2节
ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
contextHandler.setContextPath("/a");
ServletHolder holder = new ServletHolder(MyServlet.class);
contextHandler.addServlet(holder, "/b/*");