【发布时间】:2012-01-02 03:43:19
【问题描述】:
我对 servlet 映射的 web.xml 的结构感到困惑,执行它没有任何问题,但我试图弄清楚为什么我们在部署描述符中有这样的模式。
<web-app>
<servlet>
<servlet-name>Servlet1</servlet-name>
<servlet-path>foo.Servlet</servlet-path>
</servlet>
<servlet-mapping>
<servlet-name>Servlet1</servlet-name>
<url-pattern>/enroll</url-pattern>
</servlet-mapping>
</web-app>
现在据我了解,每当请求 url-pattern "/enroll" 时,servlet 容器都会将 servlet-name 与 url-pattern 匹配,并尝试找到相应的 servlet-path 并将将控件转发给 foo.Servlet。所以基本上会有两个通过,一个用于查找 servlet-name,另一个用于 servlet-path,我的问题是容器是否设计为以下列方式工作
<web-app>
<servlet>
<servlet-name>foo.Servlet</servlet-path>
<url-pattern>/enroll</url-pattern>
</servlet>
</web-app>
如果我们使用以下方法会有什么缺点。那不是更高效,响应时间也更快。
【问题讨论】:
-
为什么您认为不同的 XML 架构会影响运行时性能?
-
好吧,我只是关心获取实际值所需的通过次数
-
通常,servlet 容器只读取
web.xml并在内存中创建它的表示。它比每次请求到来时读取web.xml快数倍。
标签: java web-applications servlets java-ee-5