JSP转译成Servlet详细过程

来源:互联网 发布:飞机迫降知乎 编辑:程序博客网 时间:2024/06/12 10:41

 

  •  

      当部署好 showdate.jsp之后,启动Tomcat服务器。

      1.在IE浏览器中输入配置好的路径 .... showdate.jsp 请求这个页面。

      2.JSP Container 即Tomcat 服务器会将 showdate.jsp 转译成 showdate_jsp.java 源文件。

      3.同时将 showdate_jsp.java 源文件编译成 showdate_jsp.class。

      4.编译执行showdate_jsp.class 类,处理请求,返回响应,容器将生成的页面返回给客户端显示。

       

      当JSP页面被转译成Servlet时,内容主要包含三个部分: 

      JSP网页中最主要的程序都是在此执行,将showdate.jsp和showdate_jsp.java做一个简单对比:

       

      第二部分:HTML标签

       

      第三部分:声明的对象

       

      在_jspService 方法中声明的局部变量:

       

      第四部分:表达式

       

  • 很多人都会认为JSP的执行性能会和Servlet相差很多,其实执行性能上的差别只在第一次的执行。因为JSP在执行第一次后,会被编译成Servlet的类文件,即.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不再重新把JSP编译成Servelt。

    因此,除了第一次的编译会花较久的时间之外,之后JSP和Servlet的执行速度就几乎相同了。Web容器处理JSP文件请求的执行过程主要包括以下4个部分:

    1.客户端发出Request请求

    2.JSP Container 将JSP转译成Servlet的源代码

    3.将产生的Servlet源代码经过编译后,并加载到内存执行

    4.把结果Response(响应)至客户端

    在执行JSP网页时,通常可以分为两个时期:转译时期(Translation Time)和请求时期(Request Time)。

    @转译时期:JSP网页转移成Servlet类。

    @请求时期:Servlet类执行后,响应结果至客户端。

    @转译期间做了两件事情:

    @转译时期:将JSP网页转移为Servlet源代码 .java.

    @编译时期:将Servlet 源代码 .java编译成 Servlet类 .class.

    当JSP网页在执行时,JSP Container会做检查工作,如果发现JSP网页有更新修改时,JSP Container才会再次编译JSP成Servlet; 如果JSP没有更新时,就直接执行前面所产生的Servlet。

    如下面一个简单的例子阐述jsp的执行过程:

     

     

 

 

 

 

本文学习至51CTO