01、JSP执行原理
JSP同Servlet一样,都运行在Servlet容器中。当用户访问JSP页面时,.JSP
页面的处理过程如图4-2所示。
图4-2所示的JSP执行过程可分为五个步骤。
(1) 客户端向服务器发送JSP页面请求。
(2) 容器接收到请求后检索对应的JSP页面,如果该JSP页面(或被修改后的JSP页面)是第一次被请求,则容器将此页面中的静态数据(HTML文本)和动态数据(Java脚本)全部转化成Java代码,将JSP文件翻译成一个Java文件,即Servlet。
(3) 容器将翻译后的Servlet源代码编译形成字节码文件(.class),对于Tomcat服务器而言,生成的字节码文件默认存放在“<Tomcat 安装目录>\work目录下”。
(4) 编译后的字节码文件被加载到容器内存中执行,并根据用户的请求生成HTML格式的响应内容。
(5) 容器将响应内容发送回客户端。
当同一个JSP页面被再次请求时,只要该JSP文件没有发生过改动,容器将直接调用已装载的字节码文件,而不会再执行翻译和编译的过程,从而大大提高了服务器的性能。此过程如图4-3所示。
综上所述,JSP整个执行流程如图4-4所示。
在JSP执行过程中,JSP文件被翻译为Servlet的过程反映了JSP与Servlet的关系。案例4-1给出了showDate.jsp翻译后生成的showDate_jsp.java文件的源代码,由此可以看出JSP中的HTML代码和Java脚本是如何被翻译为Java代码的。
【案例4-2】showDate_jsp.java部分代码
上述代码中的方法"_jspService(HttpServletRequest request,HttpServletResponse response)"用来处理用户的请求,翻译过程中JSP网页的代码都在此方法中;同时该Java文件所继承的HttpJspBase类又继承了HttpServlet类。
标签:容器,Java,文件,JSP,系列,Servlet,页面 From: https://www.cnblogs.com/o-O-oO/p/18105200