我有以下网址格式:
<servlet-mapping>
<servlet-name>name_of_a_servlet</servlet-name>
<url-pattern>*.some_pattern</url-pattern>
</servlet-mapping>
如果我在网址格式中有多个模式,例如*.htm
,*.css
,*.do
等,我可以在网址格式中使用*.*
吗?或者我必须这样使用;
<url-pattern>*.htm</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>*.do</url-pattern>
答案 0 :(得分:2)
*.*
不是有效的网址格式。 *
只能位于模式的开始或结尾。如果您打算涵盖每个 HTTP请求,则需要使用/*
。
<servlet-mapping>
<servlet-name>name_of_a_servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
但是我怀疑这个servlet是不是最好是filter。
答案 1 :(得分:0)
URL映射语法在Servlet API规范(我引用2.4)中定义,以获取此信息:
以“/”字符开头并以“/ *”后缀结尾的字符串 用于路径映射。 以“*”开头的字符串prefix用作扩展映射。仅包含'/'字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet路径是请求URI减去上下文路径,路径信息为空 所有其他字符串用于完全匹配 仅
所以简短的回答是url-pattern意味着是一个url模式。你必须制作多个模式才能完全匹配这三个模式。
答案 2 :(得分:-1)
<url-pattern>*.some_pattern</url-pattern>
应该是
<url-pattern>/*.some_pattern</url-pattern>
//在路径
或
-pattern>/path-pattern</url-pattern>