什么是JSP?
JSP全名为Java Server Pages。它是由SUN公司在1996年6月发布的用于开发动态Web应用的技术.JSP是基于Java Servlet的Web开发技术。其根本是一个简化的Servlet设计,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
可以替代 freemarker,Velocity,tapestry。
JSP的技术特点
1. 能够在任何web或应用程序服务器上运行.
2. 将程序逻辑与页面显示分开.
3. 采用标签简化开发.
4. 组件可重用.
JSP运行机制
首相要明确的是:当一个JSP文件第一次被请求时,JSP容器会先把JSP文件转换成一个Servlet。
JSP的运行过程如下:
1. JSP容器现将该JSP文件转化成一个Java源文件(Java Servlet源程序),在转换过程中如果发现JSP文件中存在任何语法错误,则中断转换过程,并向服务端和客户端返回错误信息。
2. 如果转换成功,则JSP容器使用javac将生成的Java源文件编译成相应的字节码文件*.class 。 该*.class就是一个Servlet,Servlet容器就会想处理其它Servlet一样来处理它。
3. 由Servlet容器加载转换后的Servlet类(.class文件),创建一个该Servlet的实例,并执行Servlet的jspInit()方法,jspInit()方法在Servlet的整个生命周期中只会执行一次。
4. 执行_jspService方法来处理客户端请求。对每一个请求,JSP容器都会创建一个新的线程来处理它。如果有多个客户端同时请求该JSP文件,则JSP容器也会创建多个线程,使得每个客户端请求都有一个线程。JSP运行过程中采用的这种多线程的执行方式可以极大的降低对系统资源的需求,提高系统的并发量和相应时间。要注意的是(3)不中生成的Servlet是常驻内存的,所以响应速度也是非常快的。
5. 如果JSP文件被修改了,则服务器将根据设置决定是否对该问价进行重新编译,如果需要重新编译,则使用重新编译后的结果来取代内存中常驻的Servlet,并继续上诉的处理过程。
6. 虽然JSP效率很高,但是在第一次调用时往往由于需要转换和编译过程而产生一些轻微的延迟。此外,由于系统资源不足等原因,JSP容器会以某种不确定的方式将Servlet从内存中移除。当这种发生时会首先调用jspDestory()方法。
7. 接着Servlet实例便被加入“”垃圾收集“”处理。
8. 当请求处理完成后,响应对象由JSP容器接收,并将HTML格式的响应信息发送回客户端。