JSP运行机制
JSP是服务器端技术,在服务器端JSP引擎解释JSP代码,然后将结果以HTML的页面形式发送到客户端,在客户端的用户是看不到JSP代码的。
JSP的运行过程:
1.当服务器上的一个JSP页面第一次被请求时,服务器上的JSP引擎解析页面,并生成一个Java源文件*.java。
2.然后把该java文件编译成Java class字节码文件*.class。这个class文件就是Servlet,Servlet引擎像处理其它所有的Servlet一样处理该class文件。
3.Servlet引擎载入class文件开始执行。
4.Servlet执行完成后,把结果返回给发出请求的客户。
其中,过程1、2只在首次执行或升级JSP时才发生,Servlet引擎只在服务器重新启动后产生第一个请求时才执行过程3;class载入器仅载入class文件一次,并且在Java虚拟机的运行期间内均有效可行。过程4的执行效率与数据量有关。由于在JSP程序的执行过程中预先生成了.class文件,所以同其他技术相比,JSP的运行速度是较快的。
由以上可知,JSP仅在第一次执行时需将.jsp转译为.java文件(即Servlet类),当再重复调用执行时,就直接执行第一次所产生的Servlet,而不用再重新将JSP编译成Servlet。因此,除了第一次的编译会花较多的时间之外,之后的JSP和Servlet的执行速度几乎相同。
一般,将JSP网页的执行分为两个时期:转译时期(Translation Time)和请求时期(Request Time)。转译时期即过程1,请求时期即过程2、3、4。
转译、请求时期程序示意图如下:
<!--StartFragment -->