3

我在Jetty中有以下代码:

ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
contextHandler.setContextPath("/a");
ServletHolder holder = new ServletHolder(MyServlet.class);
contextHandler.addServlet(holder, "/b/*");

"/a"in call tosetContextPath"/b/*"in call to 和有什么不一样addServlet?这些路径是否连接起来以决定MyServlet将服务哪些请求?

另外,是否可以将 servlet 与特定的文件扩展名相关联?即,通过查看“ endsWith”部分,可以说,一个URI 以及以例如“.xsd”结尾的URI 发送到一个特定的Servlet?还是完全基于“ startsWith”逻辑进行调度?

4

1 回答 1

3

它应该基本上符合servlet 规范,其中 URL 由 组成http://host:port/<context-root>/<servlet-path-spec>,其中 Context root 由 定义,setContextPathServlet 路径规范由 的第二个参数定义addServlet。因此,您示例中的 servlet 将为所有以 . 开头的 URL 提供服务http://host:port/a/b/

Servlet 路径规范还允许定义到文件扩展名的映射,在您的示例中使用符号“*.xsd”,请参阅链接规范中的第 12.2 节。

于 2013-10-09T21:10:03.333 回答