为什么servlet没有在web.xml中映射JSP

时间:2015-11-04 17:38:32

标签: jsp servlets web.xml

我们知道后门的servlet和JSP是相同的。 JSP也是servlet,所以当JSP执行时,它首先转换为servlet然后执行servlet。

我的问题是,如果servlet和JSP相同,那么为什么我们在web.xml部署描述符文件中映射servlet,但是我们没有映射JSP?

1 个答案:

答案 0 :(得分:4)

它已经映射到服务器自己的web.xml,它已应用于所有网络应用程序。因此,您无需在所有网络应用中明确注册它。

例如在Tomcat中,您可以在Tomcat安装的/conf/web.xml文件中找到以下与JSP servlet相关的条目(下面的行号与Tomcat 8.0.26相匹配)。

245    <servlet>
255        <servlet-name>jsp</servlet-name>
256        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
257        <init-param>
258            <param-name>fork</param-name>
259            <param-value>false</param-value>
260        </init-param>
261        <init-param>
262            <param-name>xpoweredBy</param-name>
263            <param-value>false</param-value>
264        </init-param>
265        <load-on-startup>3</load-on-startup>
266    </servlet>
381    <servlet-mapping>
382        <servlet-name>jsp</servlet-name>
383        <url-pattern>*.jsp</url-pattern>
384        <url-pattern>*.jspx</url-pattern>
385    </servlet-mapping>

您会看到,任何与网址格式*.jsp*.jspx匹配的请求都会调用服务器自己的JspServlet,然后它会执行所有JSP工作。

Tomcat不了解您的&#34; custom&#34; servlets,所以你不会找到你的&#34; custom&#34; servlet在那里,你需要自己在webapp自己的web.xml中映射它们。