我们知道当用户通过URL访问Servlet时,Web服务器会根据请求的URL地址在web.xml配置文件中查找匹配的,然后将请求交给指定的Servlet程序去处理。但是,在通过URL访问jsp文件时,项目的在web.xml中找不到与JSP相关的配置,但web服务器仍然可以根据URL找到对应的jsp文件。这是为什么?
这是因为在tomcat服务器中的web.xml文件中实现了JSP的相关配置。如下:
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
从上面的配置信息可以看出,以.jsp为拓展名的URL访问请求都是由org.apache.jasper.servlet.JspServlet
处理,所以,Tomcat中的JSP引擎就是这个Servlet程序,该Servlet程序实现了对所有JSP页面的解析。