我有一个特定的JSP,我想在我的网站的根页面(URL“/”)提供服务。所有其他请求应以静态方式提供。所以很自然地我配置了我的web.xml
:
<servlet>
<servlet-name>index</servlet-name>
<jsp-file>/index.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
不幸的是,似乎<url-pattern>/</url-pattern>
没有做我需要做的事情。而不只是处理“/”网址it is special-cased, and functions as the "default mapping",处理未被其他网址格式捕获的所有请求。
在这种特殊情况下,default
servlet的<url-pattern>/*</url-pattern>
处理所有 URL。对“/”的请求以404形式出现,无论发出什么请求,index
servlet都不会被调用。
有没有办法将“/”URL和只有该URL显式映射到特定的servlet?
答案 0 :(得分:3)
使用空模式字符串匹配上下文根:
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>