在学习Servlet时,我们知道Tomcat能够从客户端的请求URL中提取出Web应用程序目录(/ServletStudy)和Servlet匹配的URL(/firstServlet)。
如果我们使用如下URL访问jsp文件,Tomcat会如何处理呢?
http://localhost:8080/JspStudy/JspFile/first.jsp
Tomcat同样可以从以上URL中提取出Web应用程序目录(/JspStudy)和jsp文件所在的目录(/JspFile/first.jsp),这样Tomcat就能准确定位jsp文件的位置,即
<Tomcat安装目录>\webapps\JspStudy\JspFile\first.jsp
既然Tomcat找到了即将被访问的jsp文件,那么它会如何处理这个jsp文件呢?
先让我们来看下面一段配置片段:
<!--这段代码来自<Tomcat安装目录>\conf\web.xml--> <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> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspx</url-pattern> </servlet-mapping>
很明显,这是配置了一个Servlet,该Servlet的名字是jsp,对应的Servlet类是JspServlet,匹配的url是“*.jsp、*.jspx”,即所有以“.jsp、*.jspx”结尾的请求全部交给JspServlet。
(我们假定这是首次访问first.jsp)
1、把jsp文件编译成Servlet源文件