1.JSP 简介及工做原理

1.JSP 简介

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一块儿创建的一种动态网页技术标准。JSP技术有点相似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而造成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其余操做系统上运行。html

2.JSP 工做原理

 

JSP页面工做原理图java

 

当一个JSP文件第一次被请求的时候,JSP引擎(自己也是一个Servlet)首先会把这个JSP文件转换成一个Java源文件在转换过程当中若是发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息;若是转换成功,JSP引擎用javac把该Java源文件编译成相应的.class文件并将该.class文件加载到内存中。web

 

其次建立一个该Servlet的实例,并执行该实例的jspInit()方法(jspInit()方法在Servlet的生命周期中只被执行一次)。数据库

 

而后建立并启动一个新的线程,新线程调用实例的jspService()方法。(对于每个请求,JSP引擎会建立一个新的线程来处理该请求。若是有多个客户端同时请求该JSP文件,则JSP引擎会建立多个线程,每一个客户端请求对应一个线程)。编程

 

浏览器在调用JSP文件时,Servlet容器会把浏览器的请求和对浏览器的回应封装成HttpServletRequest和HttpServletResponse对象,同时调用对应的Servlet实例中的jspService()方法,把这两个对象做为参数传递到jspService()方法中。浏览器

 

jspService()方法执行后会将HTML内容返回给客户端。服务器

 

若是JSP文件被修改了,服务器将根据设置决定是否对该文件进行从新编译若是须要从新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。 若是在任什么时候候因为系统资源不足,JSP引擎将以某种不肯定的方式将Servlet从内存中移去。当这种状况发生时,jspDestroy()方法首先被调用, 而后Servlet实例便被标记加入“垃圾收集”处理。 网络

 

补充:多线程

 

以多线程方式执行可大大下降对系统的资源需求,提升系统的并发量及响应时间,但应该注意多线程的编程限制,因为该Servlet始终驻于内存,因此响应是很是快的。并发

 

虽然JSP效率很高,但在第一次调用时因为须要转换和编译而有一些轻微的延迟。

 

在jspInit()中能够进行一些初始化工做,如创建与数据库的链接、创建网络链接、从配置文件中获取一些参数等,而在jspDestory()中释放相应的资源。

 JSP生命周期 init() 和Destory()

jspInit()及jspDestory()格式以下:

 

public void jspInit()      

 

 { 

 

     System.out.println("jspinit");   

 

 } 

 

public void jspDestory()   

 

 { 

 

    System.out.println("jspDestory");

 

}

相关文章
相关标签/搜索