JSP技术
第六章、JSP技术
6.1 JSP概述
JSP文件中,HTML代码与Java代码共同存在,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。
- 跨平台
jsp基于Java语言的,它可以使用Java API,所以它也是跨平台的(同Java原理)。 - 业务代码相分离
界面的开发与应用程序的开发分离开。开发人员使用HTML设计界面,使用JSP标签和脚本来动态生成页面上的内容。服务器端,JSP引擎(容器,本书中指Tomcat)负责解析JSP标签和脚本程序,生成所请求的内容,并将执行结果以HTML页面的形式返回浏览器。 - 组件重用
JSP可以使用JavaBean编写业务组件,也就是使用一个JavaBean封装业务处理代码或者作为一个数据存储模型,在JSP页面中,甚至整个项目中都可以重复使用这个JavaBean,同时可应用到其他Java应用程序中。 - 预编译
用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码进行编译,仅执行一次编译。编译好的代码会被保存,下一次访问会直接执行编译好的代码。节约CPU资源,提升客户端的访问速度。
6.2 JSP运行原理
JSP是请求响应模式,客户端发出HTTP请求,JSP程序收到请求后进行处理并返回结果。
在一个JSP页面被第一次请求时,JSP引擎(容器)把该JSP文件转换为一个Servlet。
- 发出请求,请求访问JSP文件
- 将JSP文件转换成一个Java源文件(Java Servlet源程序)在转换过程中,如果发现语法错误,立即终端并向服务器和客户端返回错误信息。
- 转换成功,Java源文件编译成相应的字节码文件*.class 该文件是一个Servlet,Servlet容器会像处理其他Servlet容器一样处理它。
- 由容器加载后的Servlet类(*.class文件)创建一个该Servlet(JSP页面转换结果)实例,并执行初始化方法 jspinit(); ,初始化方法在其生命周期中只执行一次。
- 执行 jspService();处理客户端的请求。对于每一个请求,JSP容器都会创建一个新的线程执行。极大降低对系统资源的需求,提高系统的并