在tomcat的conf/web.xml中有两个默认的Servlet,DefaultServlet和JspServlet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 <servlet > <servlet-name > default</servlet-name > <servlet-class > org.apache.catalina.servlets.DefaultServlet</servlet-class > <init-param > <param-name > debug</param-name > <param-value > 0</param-value > </init-param > <init-param > <param-name > listings</param-name > <param-value > false</param-value > </init-param > <load-on-startup > 1</load-on-startup > </servlet > <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 > default</servlet-name > <url-pattern > /</url-pattern > </servlet-mapping > <servlet-mapping > <servlet-name > jsp</servlet-name > <url-pattern > *.jsp</url-pattern > <url-pattern > *.jspx</url-pattern > </servlet-mapping >
DefaultServlet 由于url-pattern为/,是默认的Servlet,当客户端请求不能匹配其他所有的Servlet时,由该Servlet处理
主要用于处理静态资源 ,为了提升服务器性能,对访问文件进行了缓存
JspServlet 负责处理所有的jsp文件请求,其对应的url-pattern为*.jsp和*.jspx,其实Jsp说白了就是一种特殊的Servlet,而JspServlet就是来处理这个特殊的Servlet的
对相应的jsp页面的请求被JspServlet拦截
执行JspServlet的service方法,根据JSP文件生成对应的Servlet的java代码
将java代码编译为java类
构造Servlet实例并执行请求,调用生成的jsp的Servlet类内的_jspService方法