JSP概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章
JSP概述
JSP(Java Server Pages)是由Sun公司以Java语言为脚本语言开发出来的一种动态网页制作技术,主要完成网页中服务器动态部分的编写。
该技术是在Servlet技术的基础上形成的,并继承了Java语言的多种优势,如安全性、支持多线程、平台无关性等。
与其他动态网页技术相比较,如ASP、PHP等,具有运行速度快、安全等特点。
本章将简要介绍JSP的产生到现状,并重点介绍构建JSP的运行平台,即
Tomcat和JDK的安装及配置。
在本章最后给出一个JSP+JavaBean+Servlet实例,演示JSP各部分的运行情况。
➢了解Web技术的产生和发展。
➢了解JSP的产生和应用。
➢了解JSP的技术优势。
➢掌握常见JSP的设计模式。
➢掌握JDK下载、安装、配置。
➢掌握Tomcat下载、安装。
➢掌握编写JSP工作原理。
➢了解JSP页面包含元素。
➢了解JSP的开发流程。
1.1 JSP简介
要熟练掌握JSP技术,首先需要了解JSP的产生和发展历史,明确JSP技术在Web技术中所占有位置,JSP技术能够解决的问题。
在本小节中,将主要介绍JSP形成的必然原因,与其他动态技术相比所具有的优势。
等,都得到了广泛应用。
JSP是它们中的佼佼者。
JSP(Java Server Pages)是由Sun Microsystem公司于1999推出的新技术,是基于Java Servlet 以及整个Java体系的Web开发技术。
利用这一技术可以建立先进、安全和跨平台的动态网站。
在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记,就构成了JSP网页(*.jsp)。
Web服务器在收到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。
程序片段可以操作数据库、重新定向网页、发送E-mail 等等,这就是建立动态网站所需要的功能。
JSP所有程序操作都在服务器端执行,网络上传送给客户端仅是得到的结果,对客户浏览器的要求最低。
Servlet是JSP技术的发展前身,它是Java技术对CGI编程的回应。
Servlet程序在服务器端运行,动态生成Web页面。
Servlet由Java语言编写,运行在Tomcat服务器中,能够主动生成HTML标记和客户端需要的数据,并能够将生成的数据返回到客户端。
与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。
其详细信息如表1-1所示。
表1-1Servlet技术优势
高效在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。
而在Servlet中,每个请求由一个轻量级的Java
线程处理(而不是重量级的操作系统进程);
在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重
复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。
在性能
优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活
动等
方便Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP 头、处理Cookie、跟踪会话状态等
功能强大在Servlet中,可以完成许多使用传统CGI程序很难完成的任务。
例如,Servlet能够直接和Web 服务器交互,而普通的CGI程序不能。
Servlet还能够在各个程序之间共享数据,很容易实现数
据库连接池之类的功能
可移植性好Servlet用Java语言编写,Servlet API具有完善的标准。
因此,为I-Planet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar。
所有主流服务
器都直接或间接通过插件支持Servlet
节省投资不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)
但遗憾的是,Servlet具有一个致命缺点,就是所有响应代码都是通过Servlet程序生成的,如
数据内容和显示分离 使用JSP 技术,Web 开发人员可以使用HTML 或者XML 标记来设计和格式化最
终页面。
使用JSP 标记或者小脚本来产生页面上的动态内容。
产生内容的逻辑被
封装在标记和JavaBeans 群组件中,并且捆绑在小脚本中,所有的脚本在服务器
端执行。
如果核心逻辑被封装在标记和Beans 中,那么其他人,如Web 管理人员
和页面设计者,能够编辑和使用JSP 页面,而不影响内容的产生。
在服务器端,
JSP 引擎解释JSP 标记,产生所请求的内容(例如,通过存取JavaBeans 群组件,使用JDBC 技术存取数据库),并且将结果以HTML (或者XML )页面的形式发
送回浏览器。
这有助于作者保护自己的代码,而又保证任何基于HTML 的Web
浏览器的完全可用性
可重用组件 绝大多数JSP 页面依赖于可重用且跨平台的组件(如JavaBeans 或者Enterprise
JavaBeans )来执行应用程序所要求的更为复杂的处理。
开发人员能够共享和交换
执行普通操作的组件,或者使得这些组件为更多的使用者或者用户团体所使用。
基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和
优化结果的开发努力中得到平衡
采用标记简化页面开发 Web 页面开发人员不会都是熟悉脚本语言的程序设计人员。
JSP 技术封装了许多
功能,这些功能是在易用的、与JSP 相关的XML 标记中生成动态内容所需要的。
标准的JSP 标记能够存取和实例化 JavaBeans 组件,设定或者检索群组件属性,
下载Applet ,以及执行用其他方法更难于编码和耗时的功能 一种技术功能越是强大,其复杂性就越高,JSP
技术也不例外。
在使用JSP 技术成功编写高效,安全的Web 网站的同时,JSP 也面临入门比较困难的问题。
相对与其他网页开发技术,如ASP 、PHP 来说,三者各有其优点。
其详细信息如表1-3所示。
表1-3 JSP 、PHP 和ASP 技术比较
运行速度
快 较快 较快 运行耗损
较小 较大 较大 难易程度
容易掌握 简单 简单 运行平台
绝大部分平台均可 Windows 平台 Windows/Unix 平台 扩展性
好 较好 较差 安全性
好 较差 好 函数支持
多 较少 多 数据库支持
多 多 多 厂商支持
多 较少 较多 对XML 的支持
支持 不支持 支持
软件。
1.1.2 JSP的开发模式
JSP自产生到现在,应用越来越广泛,其相关技术也越来越多,如JavaBean、EJB等。
相关技术的产生,使JSP技术更容易实现Web网站的开发和控制。
JSP网站开发技术,经常使用下面几种组合开发网站,包括纯粹JSP技术实现、JSP+JavaBean实现、JSP+JavaBean+Servlet实现、J2EE实现等。
不同的开发组合,可以称为不同的设计模式,最常用的技术是JSP+JavaBean+Servlet。
使用纯粹JSP技术实现动态网站开发,是JSP初学者经常使用的技术。
JSP页面中所有的代码都是在同一个页面,如<html>标记、<css>标记、<javascript>标记、逻辑处理、数据库处理代码等。
这么多代码,混合在一个页面中,容易出现错误,出现错误后,不容易查找和调试。
这时设计出的网站,采用JSP技术还是采用ASP技术就没有什么大的差别了。
JSP+JavaBean技术的使用,很好地达到了页面静态部分和动态部分相互分离。
在这种技术中,使用JSP技术中的HTML、CSS等可以非常容易地构建数据显示页面,而对于数据处理,可以交给JavaBean技术处理,如连接数据库代码、显示数据库代码。
当执行功能代码封装到JavaBean 中时,同时也达到了代码重用的目的。
如显示当前时间的JavaBean,不仅可以用在当前页面,还可以用在其他页面。
这种技术的使用,已经显示出JSP技术的优势,但并不充分,JSP+JavaBean+Servlet技术的组合更加充分地显示了JSP的优势。
JSP+JavaBean+Servlet技术的组合,很好地实现了MVC模式,MVC模式是应该提倡学习和使用的一种模式。
MVC模式是Model-View-Controller的缩写,中文翻译为“模式-视图-控制器”,MVC应用程序总是由这三个部分组成。
Event(事件)导致Controller改变了Model或View,或者同时改变两者。
只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。
类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。
MVC 模式最早是Smalltalk语言研究团提出的,应用于用户交互应用程序。
Smalltalk语言和Java语言有很多相似性,都是面向对象语言。
MVC模式是一个复杂的架构模式,其实现也显得非常复杂。
但是,人们已经总结出了很多
Model处于Middle Tier,通常用服务器端的JavaBean或者EJB实现,即业务逻辑部分的实现。
其形式如图1-1所示。
图1-1 MVC三个部分的形式
视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。
随着应用的复杂性和规模性,界面的处理也变得具有挑战性。
一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
业务流程的处理交予模型(Model)来处理。
比如一个订单的视图只接受来自模型的数据,并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。
模型(Model)就是业务流程/状态的处理,以及业务规则的制定。
业务流程的处理过程对其他层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。
业务模型的设计可以说是MVC最主要的核心。
通过MVC设计模式可知,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的依据。
抽象与具体不能隔得太远,也不能太近。
控制器(Controller)可以理解为从用户接受请求,将模型与视图匹配在一起,共同完成用户的请求。
划分控制层的作用也很明显,它清楚地告诉人们,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求,控制层并不做任何的数据处理。
例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。
因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。
如果用户通过某个视图的控制器改变了模型的数据,所有其他依赖于这些数据的视图都应反映到这些变化。
因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。
这实际上是一种模型的变化-传播机制。
发的一个强有力的支撑环境。
在这种模式里,EJB替代了前面提到的JavaBean技术。
在Web服务器端,2000年以后出现了几种主要的技术融合方式。
首先,越来越多的Web开发环境开始支持MVC(Model-View-Contorller)的设计模型,为开发者提供了全套的开发框架。
实际上,J2EE和.NET平台本身就是这种开发框架的典型代表。
开源项目在Web开发框架和应用模型方面表现得非常积极,Struts、Jetspeed、JPortlet、Cocoon、Lenya、XOOPS等都是开源世界里与MVC开发框架、门户服务和Web内容管理相关的优秀解决方案。
J2EE设计模式由于框架大、不容易编写、不容易调试,因此比较难以掌握。
目前只是应用在一些大型的网站上,当然,J2EE模式的前景是好的,让大家拭目以待吧。
对于本节介绍的4种JSP开发模式,常用的是第二种和第三种。
只有在充分理解这两种开发模式的基础上,才能掌握J2EE设计模式。
1.2 JSP的开发环境
在1.1节中,介绍了JSP的产生、优势和现在流行的开发模式。
在了解了JSP的相关技术后,本节将主要介绍配置JSP运行环境,如JDK和Tomcat的安装。
1.2.1 安装和配置JDK
JSP技术目前唯一支持的脚本语言为Java语言,在JSP页面运行时,需要有相应的编译器编译和解释器来执行这些Java代码。
执行Java代码,需要下载和安装Java的JDK开发工具包。
JDK (Java Development Kit,Java开发包,Java开发工具)是一个编写Java的Applet和应用程序的程序开发环境。
它由一个处于操作系统层之上的运行环境以及开发者编译、调试和运行用Java语言编写的Applet和应用程序所需的工具组成。
在计算机上,安装了JDK开发工具包就可以编译和运行Java代码了。
JDK是Sun Microsystems针对Java开发人员而开发的产品。
自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software Development Kit)。
JDK中包括Java编译器(javac)、打包工具(jar)、文档生成器(javadoc)、查错工具(jdb),以及完整的JRE(Java Runtime Environment,Java运行环境),也被称为Private Runtime。
并包括了用于产品环境的各种类库,以及给开发人员使用的补充库,如国际化的库、IDL库。
JDK中还包括各种例子程序,用以展示Java API中的各部分。
JSP概述
7
第1章
从初学者的角度来看,采用JDK开发Java程序能够很快地理解程序中各部分代码之间的关
系,有利于理解Java面向对象的设计思想。
JDK的另一个显著特点是随着Java(J2EE、J2SE以
及J2ME)版本的升级而升级。
但它的缺点也是非常明显的,就是从事大规模企业级Java应用开
发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。
JDK一般有三种版本,其详细信息如表1-4所示。
名称说明
SE(J2SE)Standard Edition,标准版,主要用于开发Java桌面应用程序
EE(J2EE)Enterpsise Edition,企业版,使用这种JDK开发J2EE应用程序,用于Web方面
ME(J2ME)Micro Edition,微型版,主要用于移动设备、嵌入式设备上的Java应用程序Java开发工具(JDK)是许多Java专家最初使用的开发环境。
尽管许多编程人员已经使用第
三方的开发工具,但JDK仍被当作Java开发的重要工具。
JDK由一个标准类库和一组建立、测试
及建立文档的Java实用程序组成。
API是一些预定义的类库,开发人员需要用这些类库来访问Java
语言的功能。
Java API包括一些重要的语言结构以及基本图形、网络和文件I/O。
一般来说,Java API
的非I/O部分对于运行Java的所有平台是相同的,而I/O部分则仅在通用Java环境中实现。
2.下载JDK
获取JDK开发工具包非常简单,可以直接在JDK官方网站下载,也可以在网络上进行搜索。
这里演示在官方网站上来获取JDK开发工具包,JDK开发工具包的官方网站的网址为/,在地址栏中输入该网址,单击【转到】按钮,会显示如图1-2所示的窗口。
图1-2 JDK官方下载网站
在窗口中,找到显示页面中的右侧,单击Java SE超级链接,会显示如图1-3所示的窗口。
Ajax+JSP网站开发从入门到精通
8
图1-3 JDK版本选择
在显示窗口中,找到最新的JDK开发工具包,并单击Download按钮下载,会显示如图1-4所示的窗口。
在本页面中,显示的是不同平台下的JDK安装包,如Windows、Linux、Solaris。
在上面的窗口中,找到适合于自己计算机平台的JDK版本,这里下载jdk-6u2-windows-i586-p.exe可执行程序。
这里需要注意的是,在下载JDK工具包之前,需要选择接受协议。
3.安装JDK
直接单击下载的jdk-6u2-windows-i586-p.exe可执行程序,就可以开始安装。
其步骤如下所示:(1)双击可执行程序,将打开【许可协议】对话框,单击【接受】按钮,打开【自定义安装】对话框,选择接受该协议,继续单击【下一步】按钮。
(2)在如图1-5所示的对话框,可以更改文件的安装路径以及是否安装某些组件,这里选择默认安装。
图1-4 JDK下载页面图1-5 【自定义安装】对话框
(3)设置完成后,单击【下一步】按钮开始进行安装,下面整个过程一直单击【下一步】按钮。
在安装快要结束时,安装过程中可能会根据本地计算机的情况提示是否安装或重新安装JRE (Java运行时环境),直接选择安装,其安装路径和JDK安装路径一样。
安装完成后,会显示安装成功提示。
4.配置JDK
JDK安装完成后,还并不能够使用,还需要进行配置。
其过程如下所示。
(1)右击【我的电脑】,选择【属性】命令,会弹出一个【系统属性】对话框,如图1-6所示。
JSP概述
9
第1章(2)单击【高级】标签,单击该选项卡中的【环境变量】按钮,会显示如图
1-7所示的对
话框。
(3)单击如图1-7所示的【新建】按钮,会显示一个如图1-8所示的对话框。
在如图1-8所示的对话框中,变量名文本框中要输入创建的系统变量名称,这里输入“path”。
path表示Java在运行时,如果需要相关命令可以到path的路径下寻找。
在变量值文本框中输入
JDK安装路径下bin文件夹的所在路径,如输入“,;C:\Program Files\Java\jdk1.6.0\bin;”,变量值由
三部分构成,“,”表示在当前目录下寻找,“;”表示不同路径分隔符,C:\Program Files\Java\
jdk1.6.0\bin表示在该目录下寻找。
图1-6 【系统属性】对话框图1-7
【环境变量】对话框(4)上述操作完成后,单击【确定】按钮。
现在还不能重新使用JDK开发工具包,需要重新
启动命令提示符窗口。
这里需要注意的是,如果计算机系统上没有安装其他的Java编辑开发工具,
上述操作就可以了。
如果安装了其他的Java开发工具,如JBuilder等,还需要配置另外一个系统
变量,其配置过程与path一样。
其名称为classpath,系统变量值为JDK安装路径下的lib文件路
径,以笔者计算机为例,应输入变量值为“,;C:\Program Files\java\jdk1.6.0\lib\dt.jar;C:\Program
Files\Java\jdk1.6.0\lib\tools.jar;”。
配置完成后,检测安装是否成功。
需单击【开始】|【运行】命令,在弹出对话框中,输入“cmd”,
确定后,会显示如图1-9所示的窗口,在显示窗口中输入“javac –version”命令,如果输出JDK
开发工具包的版本,表示安装成功;否则安装失败。
图1-8 【新建系统变量】对话框图1-9 JDK安装检测
到此为止,JDK安装和配置就已经完成了。
Ajax+JSP网站开发从入门到精通
10
1.2.2 安装和配置Tomcat
JSP技术可以使用的服务器有很多,如Tomcat、Jboss、Resin、WebLogic等。
每个服务器都有自己的特点,其应用方面也不相同。
其中Tomcat服务器在中、小型的JSP网站上应用比较广泛,具有和JSP技术结合紧密等特点。
1.Tomcat简介
自从JSP发布之后,推出了各式各样的JSP引擎。
Apache Group在完成GNUJSP 1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet,这样Tomcat就诞生了。
Tomcat是Jakarta项目中的一个重要的子项目,其被Java World杂志的编辑评选为2001年度最具创新的Java产品,同时它又是Sun公司官方推荐的Servlet和JSP容器,因此其越来越多地受到软件公司和开发人员的喜爱。
Servlet和JSP的最新规范都可以在Tomcat的新版本中得到实现。
其次,Tomcat是完全免费的软件,任何人都可以从互联网上自由地下载。
Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。
不过,Tomcat处理静态HTML 的能力不如Apache。
对于Tomcat的相关技术在后面章节会陆续提到。
2.下载Tomcat
获取Tomcat非常容易,可以直接在网络上搜索或者从Tomcat官方网站获取。
打开IE浏览器,在地址栏中输入“/”,单击【转到】按钮,会显示如图1-10所示的窗口。
图1-10 Tomcat官方网站显示
在窗口中单击页面左侧的Tomcat 6.x超级链接,会显示如图1-11所示的窗口。
11
图1-11 Tomcat下载窗口
在如图1-11所示的窗口中,有不同的Tomcat版本,用来适应不同的操作系统平台,这里选
择Windows操作系统平台,单击Windows Service Installer(pgp, md5)超级链接下载。
3.安装Tomcat
单击下载的可执行程序,会弹出一个如图1-12所示的窗口,在该窗口中单击Next按钮,会
弹出如图1-13所示的窗口。
图1-12 Tomcat安装启动窗口图1-13 Tomcat安装显示窗口
在图1-13所示的窗口中单击I Agree按钮,进入下一个安装窗口,如图1-14所示,该窗口中
有相关的插件需要进行选择,在这里把所有的插件全部选中,即选择Full选项,选择好后单击
Next按钮,会显示如图1-15所示的窗口。
12
图1-14 安装选项窗口图1-15 安装位置选择窗口
在图1-15所示的窗口中单击Browse按钮选择该Tomcat安装的路径位置,选择好后,单击Next按钮,进入下一个窗口,如图1-16所示,在该窗口中,主要是进行端口的配置,即所编写的JSP程序在那个端口运行,这里Tomcat默认的是操作系统的8080端口。
单击Next按钮,会进入下一个窗口,如图1-17所示。
图1-16 端口选择窗口图1-17 选择Java虚拟机窗口
在如图1-17所示的窗口中,要选择Tomcat服务器在运行的时候,使用那个开发工具包编译和解释执行JSP文件,JSP文件实质上是一个Java文
件,是由Java中的Servlet包产生的。
在这里要选择
的是jdk1.6.0文件夹。
选择好后,单击Install按钮,
程序会自动完成安装。
安装完成后,会弹出一个如图
1-18所示的窗口。
在如图1-18所示的窗口中选择要运行的软件,如
可以直接运行该Tomcat服务器,或打开Tomcat的使
用说明书。
在这里选择两个都运行,Tomcat服务器运
行后,会在右下角的状态栏出现一个图标,绿色
表示正常启动,可以使用,红色表示不可以使用。
到此为止Tomcat已经安装完成了,检验是否安
装成功,打开IE浏览器,在地址栏中输入“http://localhost:8080/”,单击【转到】按钮,会弹出
一个如图1-19所示的窗口,这时就表明服务器已经正确安装了。
13
图1-19 Tomcat服务器主页运行窗口
Tomcat安装完成后,就可以进行实例的开发了。
1.2.3 JSP的运行原理
当在计算机系统上安装并配置了Tomcat和JDK后,就可以运行JSP页面了。
开发JSP页面
可以采用的工具有多种,如记事本、Eclipse、JBuilder、Dreamweaver等。
在本书中,使用记事本
作为开发JSP页面的工具,这样能够更加容易地理解JSP的运行原理。
现在创建一个实例,以演示JSP的创建过程,用来分析JSP的运行原理。
打开记事本,输入
下列代码:
//实例1-1
<%@ page contentType="text/html; charset=GB2312" %>
<html>
<head><title>第一个JSP例子</title></head>
<body>
<%
out.print("欢迎学习JSP和Ajax技术");
%>
</body>
</html>
将上述代码保存,名称为test.jsp。
打开Tomcat安装路径下的webapps文件夹,如C:\Tomcat
6.0\webapps,在该文件夹下建立一个test文件夹用来存放编写好的JSP页面,并在test文件夹下
建立一个WEB-INF文件夹,用来存放JSP页面运行时所有加载的第三方类,可以是读者自己编
写的,也可以是从网上下载的。
这时test.jsp文件就是保存在C:\Tomcat 6.0\webapps\test目录下。
14
一切完成之后,打开IE浏览器,在地址栏中输入
“http://localhost:8080/test/test.jsp”,会显示如图1-20
所示的窗口。
在JSP页面的编写过程中,需要注意的是,JSP
中的脚本语言Java区分大小写,以及脚本语言和
<html>标记是如何区分的。
运行一个JSP页面,需要在客户端打开IE浏览器,并输入要请求的页面地址,这样才能在浏览器中显示结果。
实际上这个过程是HTTP协议的一个请求-响应过程,客户端发出请求,服务器端获取请求并处理请求,最后将处理结果返回给客户端。
下面来介绍JSP页面的请求在Tomcat 服务器是如何工作的。
Tomcat服务器(Servlet容器)在获取了客户端发送的请求后,依据请求调用相关的JSP处理页面,如果该页面是第一次执行,需要把JSP页面中的代码转换为Servlet代码形式,转换完毕后,需要转换的Java文件即编译成了class文件,编译完成后,使用JVM执行编译过的文件,并将执行结果返回到客户端。
如果该页面不是第一次执行,就会直接调用该页面的class文件执行。
可以看出,JSP页面的第一次执行是需要耗费一些时间的,这些时间是耗费在JSP文件到Servlet文件转换并编译的过程中。
其详细信息如图1-21所示。
客户端
JSP引擎
Servlet(.java)
Java编译器
JVM
是否是第一次调用
服务器端
JSP页面
class文件(class)
Y
N
图1-21 JSP运行机制
从图1-21中可以看出,JSP页面第一次的执行速度比较慢,其他时候执行速度比较快。
JSP 页面在运行时,实际上是以Java文件的形式在运行。
客户请求某个页面的时候,只要该文件没有发生过更改,JSP引擎就直接调用已经装载的Servlet。
如果已经做过修改的话,那就会再次执行以上过程,翻译、编译并装载。
test.jsp文件同样在执行过程中会形成Java文件,打开C:\Tomcat 6.0\work\Catalina\localhost\ test\org\apache\jsp文件夹,在该文件夹中找到test_jsp.java文件,该文件是test.jsp文件转换为Servlet
图1-20 JSP显示。