我的部署描述符如下
<servlet>
<servlet-name>postServlet</servlet-name>
<servlet-class>com.http.post.PostServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>postServlet</servlet-name>
<url-pattern>/postServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>postServlet</servlet-name>
<servlet-class>com.http.post.PostServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>postServlet</servlet-name>
<url-pattern/>
</servlet-mapping>
我可以通过点击以下网址来访问PostServlet
请假设/ url / to / my / server as
http://myserver:8080
/url/to/my/server/MyWebAppName
/url/to/my/server/MyWebAppName (few white spaces at the end of context)
/url/to/my/server/HTTPMethods/
/url/to/my/server/HTTPMethods/////
/url/to/my/server/HTTPMethods///postServlet
/url/to/my/server/HTTPMethods///postServlet (few white spaces here too)
有人可以通过概括来解释这种行为吗?
然而,如果两者之间存在任何空间,它就会失效 / url / to / my / server / HTTPMethods /// // 这是有道理的,因为浏览器使用%20
编码空格是否有任何特定原因会忽略尾随空格
以下网址失败 / URL /到/我/服务器/ HTTPMethods ///// postServlet //
答案 0 :(得分:0)
阅读可能会令人困惑,但URL spec
可以回答您的所有问题基本上,前导和尾随空格被简单地剥离(如果你真的需要空格作为URL的一部分,你应该将它们编码为%20
关于HTTPMethods /// postServlet的表示法,多个斜杠简单地视为单个斜杠。