首页 > 代码库 > jsp深入理解

jsp深入理解

个人理解:

jsp技术是基于servlet技术的一个改进,将java代码和html的分离简化了编程的复杂度,jsp实际也是一个servlet。

jsp执行过程:客户端请求-action通过javabean传递变量给jsp-jsp通过jsp引擎编译成servlet源码-源码编译成class文件-执行class文件进行响应。

引用理解:

http://blog.sina.com.cn/s/blog_4e57731f0100b1k6.html

  可以看出hell.jsp经过“翻译”后的类名为hello_jsp 该类继承了org.apache.jasper.runtime.HttpJspBase类,而HttpJspBase类又是HttpServlet的子类。HttpJspBase在其service方法中调用了_jspService方法,针对特定的jsp页面,Tomcat的JSP引擎将其“翻译”成HttpJspBase的子类并重写其_jspService方法。该类的很多初始化内容有JSP引擎完成。
   在上面的_jspService方法中可以看到hello.jsp的“影子”,在JSP中使用<%...%>所书写的Java代码被原样的置于_jspService方法中;另外在JSP中的HTML脚本通过流对象out原样输出...当然,JSP的“翻译”不可能如此简单,因为JSP页面还可能写有指令、标签等复杂的结构。
   从上面的_jspService方法还可以看出,所谓JSP内建对象(request、reponse、application、session等)其实并不神秘,它们或是_jspService方法的参数变量,或是由JSP引擎在_jspService方法中预先定义好的变量,我们在JSP的<%...%>中可以直接使用。

 

http://wenku.baidu.com/link?url=_Yial8sAwS9zbOaq-G9sRYWYZ2HOy-ANsGxvB263xHgbufN5swVqoZ75LUguWbz5vMLHZdCcw0tAuJfJZhLEc2KtJn0HlOWcKdYtcKNQBZi

JSP运行原理:

当Web服务器上的JSP页面第一次被请求执行时,JSP引擎先将JSP页面文件转译成一个Java文件,即Servlet,Java Servlet是基于服务器端编程的API,用Java Servlet编写的Java程序为servlet,servlet通过HTML与客户交互。服务器将前面转译成的Java文件编译成字节码文件,再执行这个字节码文件来响应客户的请求。当这个JSP页面再次被请求时,只要该JSP文件没被改动,JSP引擎就直接调用已装载的Servlet。

 

jsp深入理解