Servlet的映射有两个子标签的url-pattern和servlet名。 url-pattern的指定为其在servlet的名字给这个servlet应该被称为URL的类型。要注意的是,容器将使用区分大小写为servlet的匹配字符串比较。
的第一个规范url-pattern
a web.xml
服务器上的servlet容器上的服务器上下文的文件。COM的模式匹配,在<url-pattern>/status/*</url-pattern>
如下:
第二规格的
url-pattern
位于路径A上下文
http://server.com/server/status/synopsis = Matches
http://server.com/server/status/complete?date=today = Matches
http://server.com/server/status = Matches
http://server.com/server/server1/status = Does not match
/在example.com在代理上的例子的模式匹配,在<url-pattern>*.map</url-pattern>
如下:
http://server.com/server/US/Oregon/Portland.map = Matches
http://server.com/server/US/server/Seattle.map = Matches
http://server.com/server/Paris.France.map = Matches
http://server.com/server/US/Oregon/Portland.MAP = Does not match, the extension is uppercase
http://example.com/examples/interface/description/mail.mapi =Does not match, the extension is mapi rather than map`
url-mapping
的第三规范,如果没有其他模式匹配,则包含模式<url-pattern>/</url-pattern>
的映射将匹配请求。这是默认的映射。映射到此模式的servlet称为默认servlet。
默认映射通常指向应用程序的第一页。显式提供默认映射还可以确保应用程序返回的格式错误的URL请求由应用程序处理,而不是返回错误。
下面的servlet映射元素将server
servlet实例映射到默认映射。
<servlet-mapping>
<servlet-name>server</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
对于包含该元素的上下文中,即没有被另一个映射处理的任何请求被转发到server
的servlet。
,最重要的是我们应该知道的URL路径映射
- 容器将尝试找到请求到Servlet的路径的路径的精确匹配约规则。成功的匹配选择servlet。
- 容器将递归地尝试匹配最长的路径前缀。这是通过一次将路径树降级到一个目录来完成的,使用'/'字符作为路径分隔符。最长的匹配决定了所选的servlet。
- 如果URL路径中的最后一个段包含扩展名(例如.jsp),那么servlet容器将尝试匹配处理扩展请求的servlet。扩展名被定义为最后'。'字符后的最后一个段的一部分。
- 如果前三条规则都不导致servlet匹配,那么容器将尝试提供适合所请求资源的内容。如果为应用程序定义了“默认”servlet,它将被使用。
参考URL Pattern
第一读取servlet规范和映射。请参阅@var_给出的答案。如果您再次遇到问题或异常,请粘贴相关异常,社区将尝试调试该问题。 –
您应该接受让社区从中受益的答案。 –