(只有懂得JSP工作原理才能真正理解JSP)
JSP技术有点类似ASP技术,它在传统的网页HTML文件(*.htm, *.html)中插入JAVA程序段(Scriptlet)和JSP标签(tag),从而形成了JSP文件(*.jsp)
JSP工作原理:
1、在服务端有一个JSP容器主要负责获得对JSP页面的请求。当一个JSP页面第一次被请求时,容器首先会对JSP页面转换成Servlet。在转换时,所有HTML标签将被包含在println()语句中,所有JSP元素将会被转换成JAVA代码。
2、在转换的过程中,若发现JSP页面中存在错误语法,则转换将会被终止,并向服务器和客户端输出错误信息。如果转换成功,则转换后的Servlet会被编译成相应的class文件。因编译的过程会耗费一点时间,所以第一次访问该页面的响应时间会比较长。
3、JSP容器还负责调用从JSP转换而来的Servlet,该Servlet负责提供服务响应用户的请求。在调用Servlet时,首先执行其jspInit()方法(jspInit()方法在Servlet的生命周期中只被执行一次),然后调用JSPService()方法进行处理客户端的请求。对客户端发送的每一个请求,JSP容器都会创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP容器会创建多个线程,每个客户端请求对应一个线程。
4、如果.jsp文件被修改了,服务器将根据设置决定是否对该文件进行重新编译,如果需要,则将编译结果取代内存中的Servlet,并继续上述处理过程。
5、当Servlet被处理后,调用jspDestroy()方法结束它的生命周期,同时被JVM的垃圾回收器回收。