【问题标题】:Why is JSP not mapped in web.xml while servlet does为什么 JSP 没有映射到 web.xml 而 servlet 映射
【发布时间】:2016-02-05 08:06:19
【问题描述】:

从后门我们知道 servlet 和 JSP 是相同的。 JSP也是servlet,所以JSP在执行的时候,先转换成servlet,然后servlet执行。

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

【问题讨论】:

    标签: jsp servlets web.xml


    【解决方案1】:

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

    在例如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>
    

    你看,任何匹配 URL 模式 *.jsp*.jspx 的请求都会调用服务器自己的 JspServlet,然后它会执行所有 JSP 工作。

    Tomcat 不了解您的“自定义”servlet,因此您不会在其中找到您的“自定义”servlet,您需要自己将它们映射到 webapp 自己的web.xml

    【讨论】:

      猜你喜欢
      • 2015-03-01
      • 2013-01-20
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      • 2012-07-23
      • 2011-01-18
      • 2016-07-05
      • 2019-08-07
      相关资源
      最近更新 更多