servlet(容器?规范?实现?)为啥会在 url 路径这个问题上设计的如此古怪?

servlet(容器?规范?实现?)为啥会在 url 路径这个问题上设计的如此古怪?,第1张

servlet(容器?规范?实现?)为啥会在 url 路径这个问题上设计的如此古怪?,第2张

我是最近才注意到这一点,其他有 http 实现的语言(框架),基本上,在 http 地址解析这个问题上,会倾向于把域名根路径“/”之后开始的部分视为一个整体,嗯,最多就是可能会把路径的最后部分——如果有后缀名的话——视为文件本身。比如 http://www.v2ex.com/aaa/bbb/ccc/ddd/123.txt。那么请求路径就是 /aaa/bbb/ccc/ddd/。这是一个整体,一般不会再拆分。但是在 servlet 的实现上,有两个东西,1 个叫 servletPath ( request.getServletPath()),一个叫 pathinfo ( request.getPathInfo())。而且很有意思的是,这两个东西的值是和 web.xml 配置文件中的 url-pattern 所采用的模式有关,我想了很长时间,没想明白这样的意义在哪里,为啥 servlet 在设计上没有把 /aaa/bbb/ccc/ddd/视为一个整体,而专门搞了 ServletPath,PathInfo。这应该是有某种作用的 ----------------------- 以下是精选回复-----------------------

答:因为一个 webserver 上要跑多个 webapps 啊,/app1/path,/app2/path,...
答:这个问题我在学习 Servlet 时也发现了,当时有类似想法,但没有深究。
答:区分 api 请求和静态文件请求的一种方式。
答:有什么问题吗?
REQUEST_URI = /a/b/c.php/d/e/f?x=1
SCRIPT_NAME = /a/b/c.php
PATH_INFO = /d/e
_GET = [ “ x ” => 1 ]

是什么让你会觉得这是 java 发明的?

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » servlet(容器?规范?实现?)为啥会在 url 路径这个问题上设计的如此古怪?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情