如何通过码头通配符以编程方式设置处理程序的上下文路径?

时间:2018-09-13 22:59:00

标签: java jetty

通常在码头,您在xml中指定上下文路径

<bean id="myHandler" class="org.eclipse.jetty.server.handler.MyHandler">
    <property name="handler" ref="myHandler" />
    <property name="contextPath" value="/myHandler" />
</bean>

是否可以通过编程方式在不使用xml的情况下设置带有野生路径contextpath的处理程序?

1 个答案:

答案 0 :(得分:0)

contextPath是该上下文下所有内容的父路径。

Jetty仅在contextPath匹配的情况下将您的请求提交给该处理程序。 本质上,这是一个只读值,只能在启动该处理程序的LifeCycle之前设置。

因此,如果您使用/api,则基本上与/api/*/api/

相同

然后,您可以使用标准的HttpServletRequest详细信息来访问实际提交给您的URI。

如果您需要以更复杂的方式对URI进行切片/切块,则可能只想使用ServletContextHandler和普通的Servlet。

您甚至可以利用ServletContextHandler中的PathMappings来以创造性的方式(前缀,精确,后缀,glob,regex,uri-template等)映射Servlet。