我的Servlet映射如下:
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
所以我的Servlet会响应http://bla.com/myservlet/bla/bla/bla
如何让它回复http://bla.com/bla/bla/bla
并摆脱路径的myservlet
部分。
此外,我想将hello world servlet剥离Jetty附带的默认欢迎文件。
感谢。
注意:
mod_rewrite
/ Apache 执行此操作 - 我正在寻找其他解决方案。答案 0 :(得分:2)
如果您正在使用Jetty安装。有两种方法可以做到这一点
root.war
,将其上下文根目录设为/
为您的webapp创建context.xml
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Required minimal context configuration : -->
<!-- + contextPath -->
<!-- + war OR resourceBase -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<Set name="contextPath">/</Set>
<Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/blawh.war</Set>
context.xml位于$JETTY_HOME/contexts
下。如您所见,此目录已包含test.war的context.xml。通过查看test.xml,您可以很好地了解webapp的context.xml应该是什么样子
完成自己的创建后,请继续删除contexts/test.xml
,contexts/test.d
和webapps/test.war
。 (只是为了清理测试的东西)。这也回答了你的第二个问题。
如果您使用的是maven,请执行以下操作:
<plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <configuration> <webAppConfig> <contextPath>/</contextPath> </webAppConfig> <!-- snip -->
答案 1 :(得分:1)
您可以添加多个网址格式以映射到同一个小程序
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/bla</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/bla/bla</url-pattern>
</servlet-mapping>