如何在Jetty的web.xml中映射URL路径到指定文件系统资源?
在Jetty 9.4.41中通过web.xml映射特定URL到静态资源
你可以通过两种纯XML配置的方式实现需求,无需编写自定义Servlet:
方法一:使用Jetty DefaultServlet配置参数
通过给DefaultServlet的自定义实例添加初始化参数,强制它返回指定的静态文件:
<servlet> <servlet-name>MySpecificResource</servlet-name> <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class> <!-- 指定资源基础路径为WAR包根目录 --> <init-param> <param-name>resourceBase</param-name> <param-value>/</param-value> </init-param> <!-- 覆盖请求路径,直接指向目标静态文件 --> <init-param> <param-name>pathInfoOverride</param-name> <param-value>/static/file.html</param-value> </init-param> <!-- 确保Servlet在启动时加载 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>MySpecificResource</servlet-name> <url-pattern>/the-url</url-pattern> </servlet-mapping>
方法二:使用<jsp-file>标签简化配置
Jetty的JSP Servlet支持直接映射到静态HTML文件,配置更简洁:
<servlet> <servlet-name>MySpecificResource</servlet-name> <!-- 直接指定目标静态文件的路径(相对于WAR根) --> <jsp-file>/static/file.html</jsp-file> </servlet> <servlet-mapping> <servlet-name>MySpecificResource</servlet-name> <url-pattern>/the-url</url-pattern> </servlet-mapping>
两种方法都能实现/the-url请求直接返回WAR包内/static/file.html的内容,无需编写额外Java代码。
内容的提问来源于stack exchange,提问作者RTF
相关产品推荐
相关产品推荐

