从零开始学Java Web开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.1 JSP简介

在Internet发展的最初阶段,HTML语言只能在浏览器中显示静态的文本或图像信息,这无法满足人们对Web应用丰富性和复杂性的强烈需求。随着Internet和Web动态网站应用到商业领域,Web动态网站的开发技术的功能也越来越强大。目前,解决Web动态网站的开发技术非常多,例如JSP、ASP、ASP.NET、PHP等,都得到了广泛应用。其中,JSP是目前被广大开发者最为经常使用的。

4.1.1 JSP的形成与发展

JSP(Java Server Pages)是由Sun公司于1999年推出的一项Web动态网站开发技术,它是基于Servlet及整个Java体系之上的。利用该技术可以开发出功能强大、性能安全和跨平台的动态站点。

使用JSP技术开发的网页扩展名为*.jsp,它是在由HTML创建的传统的静态网页文件中加入Java程序片断(Scriptlet)及JSP标记构建而成的。

JSP技术的前身是Servlet,Servlet是Sun公司的Java技术对CGI编程的应对。它是完全由Java语言编写的类,运行在Java服务器端中,能够动态生成并返回包含客户端需要的数据的HTML页面。

与传统的CGI技术相比,Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。其详细信息如表4.1所示。

表4.1 Servlet技术优势

但是遗憾的是,Servlet具有一个致命的缺点,那就是所有响应代码都是通过Servlet程序生成的。而且Servlet程序中大量的代码都是用来生成HTML标记的,只有其中少部分代码用做数据的处理和响应。此外,开发Servlet程序起点要求较高,要求页面设计人员必须熟悉Java语言。因此Servlet产生之后,没有像PHP和ASP那样,快速得到应用。

因此Sun公司在结合了Servlet技术和ASP等Web动态网站开发技术各自的特点之后,又推出了JSP技术,JSP技术完全继承了Servlet技术的优势,并具备了新的优势。JSP相对于PHP和ASP技术有下面的优势,如表4.2所示。

表4.2 JSP优势

一种技术功能越是强大,其复杂性也就越高,JSP技术也不例外。在使用JSP技术成功编写高效、安全的Web应用的同时,JSP也有一些缺点。相对于ASP、PHP等其他Web动态网站开发技术来说,各自都有其优缺点。其详细信息如表4.3所示。

表4.3 JSP、PHP和ASP技术比较

续表

4.1.2 JSP的运行机制

JSP页面被部署在Web服务器中,Web服务器在收到访问JSP页面的请求时,首先对JSP文件中的Java程序片断进行语法检查并生成Servlet源文件,然后对其进行编译,编译完成后,使用JVM执行编译过的文件并将执行结果以HTML静态页面的形式返回给客户端。

图4.1 JSP页面运行机制

当再次请求同一JSP页面时,服务器将首先检测页面是否做过修改,若修改过则重新生成Servlet源文件并进行编译,否则直接执行初次调用时生成的Servlet类。

通过上述分析可以看出,JSP页面的第一次执行是需要耗费一些时间的,这些时间是耗费在JSP页面到Servlet转换并编译的过程中。JSP页面的具体运行机制如图4.1所示。

图4.1中所示的具体流程如下。

(1)客户端发出Request(请求)。

(2)Web服务器将JSP页面转换成Servlet的源代码。

(3)将生成的Servlet的源代码经过编译后生成class文件,并加载到内存中执行。

(4)把结果Response(响应)发送至客户端。

通过分析JSP的运行机制,将会发现JSP所有程序操作都是在服务器端执行的,而在网络上传送给客户端的仅是得到的结果,因此对客户端浏览器的要求很低。

4.1.3 Tomcat服务器的安装与配置

JSP页面必须被部署和运行于Web服务器中。所谓Web服务器是指为特定组件提供服务的一个标准化的运行时的环境,其中封装了JSP运行所需的底层API,为组件提供事务处理、数据访问、安全性、持久性等服务。

目前符合JSP标准的商业化Web服务器产品主要有BEA公司的WebLogic服务器、IBM公司的WebSphere服务器、Jakarta项目组的Tomcat服务器、开源项目Sourceforge的JBoss服务器等。其中Tomcat服务器是目前应用最为广泛的Web服务器。

Tomcat是Apache基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。它不但支持Servlet和JSP组件的部署和运行,而且还具备了作为商业化Web服务器的基本特征,例如Tomcat管理和控制平台、安全域管理和Tomcat阀等。Tomcat已经成为目前开发基于Java的Web应用程序的最佳服务器选择之一。

Tomcat服务器是Jakarta项目中的免费服务器,可以通过其官方网站免费下载获得。下载完成后,可以在本地磁盘的下载目录中查看到下载的Tomcat 6.x安装文件,如图4.2所示。

图4.2 下载的Tomcat 6.x安装文件

说明

在安装Tomcat服务器之前,必须确保系统中已经正确地安装并配置了JDK。

Tomcat服务器的具体安装步骤如下。

(1)双击下载的Tomcat安装文件apache-tomcat-6.0.16.exe,按照提示开始安装,首先将显示如图4.3所示的安装欢迎窗口。

(2)单击“Next”按钮,将显示如图4.4所示的“接受授权许可协议”窗口。

图4.3 Tomcat安装欢迎窗口

图4.4 “接受授权许可协议”窗口

(3)单击“I Agree”按钮,将接受软件授权许可协议,并显示如图4.5所示的选择安装模式窗口,这里我们选择“用户自定义”安装模式。

(4)单击“Next”按钮,在“选择Tomcat安装目录”窗口中选择Tomcat的安装目录,如图4.6所示。

图4.5 选择安装模式窗口

图4.6 选择Tomcat安装目录窗口

(5)单击“Next”按钮,显示如图4.7所示的设置Tomcat使用的端口号及登录Web管理界面的用户名和密码的窗口,Tomcat服务器默认端口是8080,用户可以修改为任意端口,但是必须确保该端口号未被其他程序占用。

(6)单击“Next”按钮,将显示选择JDK的安装路径窗口,安装程序将会自动搜索系统中已经存在的JDK,如果前面设置了JAVA_HOME环境变量,安装程序将会自动找到JDK的安装路径,如果没有自动搜索到则可以手工定位JDK的安装路径,如图4.8所示。

(7)单击“Install”按钮,将开始Tomcat服务器的安装,如图4.9所示。

(8)安装成功后,将显示如图4.10所示的安装成功窗口,在窗口中将提示启动Tomcat并查看readme文档。

图4.7 设置端口号和登录管理员信息

图4.8 为Tomcat设置JDK安装路径

图4.9 Tomcat服务器安装过程窗口

图4.10 Tomcat服务器安装成功

(9)单击“Finish”按钮,将显示如图4.11所示的Tomcat服务器启动界面。

(10)Tomcat服务器启动后,会在系统栏中加载绿色的服务器图标,如图4.12所示。

(11)双击这个图标可以进入Tomcat服务器配置窗口,用“Start”和“Stop”按钮开始和停止服务。而且在图标上单击鼠标右键可以看到一些设置项目,如图4.13所示。

图4.11 启动Tomcat服务器

图4.12 Tomcat服务器启动图标

图4.13 配置Tomcat运行参数菜单

(12)单击“Configure...”选项或者双击图标可看到如图4.14所示的Tomcat服务器配置窗口,在其中选择“Startup type”为automatic将使Tomcat服务器自动启动,这样每次开机后Tomcat服务器就会自动启动了。

(13)至此Tomcat服务器的安装与配置都已完成,打开浏览器,输入http://localhost:8080,如果正确会显示如图4.15所示的Tomcat服务器的默认首页面,则表示Tomcat服务器安装配置成功。

图4.14 Tomcat服务器配置窗口

图4.15 Tomcat服务器默认首页面

4.1.4 MyEclipse中集成Tomcat服务器

虽然MyEclipse中自带了一个Tomcat服务器,但是为了日后程序的开发、部署和运行更加方便和快捷,可以将用户安装的Tomcat服务器集成到MyEclipse中,具体的集成步骤如下。

(1)选择MyEclipse菜单栏中的“Window”|“Preferences”命令,在弹出的“首选项”窗口中选择“MyEclipse”|“Servers”|“Tomcat”,如图4.16所示。

(2)根据用户所安装的Tomcat服务器的具体版本选择配置项,我们前面安装的Tomcat是6.x版本,因此,这里单击“Configure Tomcat 6.x”链接,将显示Tomcat 6.x服务器配置窗口。在其中,首先将“Tomcat Server”选项设置为“Enable”,从而使得Tomcat服务器有效,然后单击“Tomcat home directory”选项后面的“Browse…”按钮,在弹出的“浏览文件夹”对话框中选择Tomcat 6.x的安装目录。当正确选择Tomcat 6.x的安装目录后,“Tomcat base directory”和“Tomcat temp directory”将自动设置上对应的目录。设置完成后如图4.17所示。

图4.16 首选项窗口中选择服务器配置

图4.17 选择Tomcat 6.x的安装目录

(3)至此,在MyEclipse中集成Tomcat服务器的配置步骤基本完成。是不是马上就可以在MyEclipse中使用Tomcat服务器了呢?这里建议最好先去检查一下Tomcat配置的JDK是否正确。在窗口左边的树形菜单中,单击“Tomcat 6.x”|“JDK”,将显示如图4.18所示的“Tomcat中JDK选项列表”窗口。

(4)在“Tomcat JDK name”下拉列表中,将显示已经存在的默认JDK,如果默认的JDK不正确,可以通过单击“Add...”按钮,向系统添加用户自定义的JDK,添加JDK对话框如图4.19所示。其中,“JRE name”用来设置用户自定义JDK的名字,单击“JRE home directory”后面的“Browse...”按钮,将弹出的“浏览文件夹”对话框,用来选择JDK的安装目录。正确选择JDK的安装目录后,“JRE system libraries”列表框中,将显示出该JDK中的jar文件。

(5)设置完成后,单击“OK”按钮,将返回如图4.18所示的窗口,在“Tomcat JDK name”下拉列表中,将看到刚创建的JDK作为Tomcat服务器的JDK了。这时候,单击“首选项”窗口中的“OK”按钮,才算全部完成MyEclipse中Tomcat服务器的配置工作。

(6)这时,单击MyEclipse工具栏中的“Run MyEclipse Servers”按钮,将看到Tomcat 6.x服务器,如图4.20所示。

(7)单击“Start”按钮,将启动Tomcat服务器。打开浏览器,输入http://localhost:8080,同样将显示如图4.15所示的Tomcat服务器默认首页面。单击“Stop”按钮,将停止服务器运行。这样就可以在MyEclipse中直接控制Tomcat服务器了。

图4.18 Tomcat中JDK选项列表

图4.19 添加用户的JDK

图4.20 显示配置好的Tomcat 6.x服务器

4.1.5 MyEclipse中创建JSP页面

在MyEclipse中,JSP页面是以Web项目的形式组织起来的。所以要创建JSP页面之前,必须首先创建一个Web项目,创建的具体步骤如下。

(1)选择MyEclipse菜单栏中的“File”|“New”|“Project…”命令,将显示如图4.21所示的创建项目对话框。在其中选择“Web Project”选项。

(2)单击“Next”按钮,将启动创建Web项目的向导。在该向导窗口的“Project Name”文本框中输入项目名称“FirstWeb”,然后选中“J2EE Specification Level”下面的Java EE 5.0单选按钮,其余选项会自动填充,用户无须修改。最后单击“Finish”按钮就可以创建Web项目了。创建完成后的Web项目向导窗口如图4.22所示。

图4.21 创建Web Project

图4.22 创建Web项目向导窗口

创建Web项目向导窗口中各输入项的详细含义如表4.4所示。

表4.4 创建Web项目向导窗口中各输入项含义

说明

选择哪个版本的“J2EE Specification Level”取决于开发者所使用的服务器版本,例如Tomcat 4.x以下版本就只能选择J2EE 1.4,而Tomcat 6.x服务器就可以选择J2EE 5.0。其中,J2EE 5.0可以直接使用EL表达式语言和JSTL。

(3)单击“Finish”按钮,就将创建Web项目,在创建过程中,MyEclipse将弹出如图4.23所示的“是否打开Java Enterprise透视图”对话框。

(4)单击“Yes”按钮,将在MyEclipse中的Java Enterprise透视图中显示新创建的Web项目。

Web项目创建完成后,就可以在该项目中创建JSP页面了,具体步骤如下。

图4.23 询问是否打开Java Enterprise透视图对话框

(1)选择MyEclipse菜单栏中的“File”|“New”|“JSP(Advanced Templates)” 命令,将显示如图4.24所示的创建JSP向导窗口。在这个窗口的“File Name”文本框中输入所创建的JSP页面的名称,“File path”文本框中输入创建的JSP页面在项目中存储的位置,默认都是存放在项目的WebRoot目录下,在“Template to use”下拉列表框中选择要使用的JSP页面模板。

(2)然后单击“Finish”按钮,即可创建新的JSP页面。MyEclipse会使用如图4.25所示的JSP编辑器来打开刚创建的JSP页面。

图4.24 创建JSP向导窗口

图4.25 JSP编辑器

说明

JSP编辑器的代码视图还支持自动查错和代码编写提示功能,另外还支持断点的设置等。因此使用MyEclipse的JSP编辑器可以大大减少开发人员JSP代码出错的机会。

4.1.6 MyEclipse中发布和运行Web项目

Web项目在开发完成之后,需要发布到Web服务器上才能够被访问和运行。MyEclipse支持发布Web项目到任何MyEclipse所支持的服务器上。

在开发过程中Web项目的发布和运行的具体步骤如下。

(1)在“Package Explorer”视图中用鼠标右键单击要发布的Web项目,在弹出的快捷菜单中选择“MyEclipse”|“Add and Remove Project Deployments…命令”,将弹出如图4.26所示的“项目部署”对话框。

(2)单击“Add”按钮,将弹出如图4.27所示的“创建新部署”对话框,在其中的“Server”下拉列表框中选择要部署的Web服务器,这里选择部署到Tomcat 6.x服务器上,并在“Deploy type”选项组框中选择发布模式为“Exploded Archive”开发模式。而“Deploy Location”文本框则显示了最终项目文件被发布到的目标目录。

图4.26 “项目部署”对话框

图4.27 “创建新部署”对话框

图4.28 项目部署后的“项目部署”对话框

(3)单击“Finish”按钮,项目将部署到所选择的服务器上,“项目部署”对话框将如图4.28所示。在“Deployment Status”列表框中显示“Successfully deployed.”,表示项目部署成功。在该对话框中单击“Remove”按钮将会删除这个发布,单击“Redeploy”按钮则将重新发布这个应用,单击“Browse”按钮则将会在系统的文件浏览器中打开发布后的应用所在的目录。

(4)单击“OK”按钮,将完成Web项目部署。然后启动Tomcat服务器,服务器启动之后,输出的日志就会显示在“Console”视图中,便于开发者浏览和跟踪查看日志来判断服务器是否正常启动完毕。图4.29 显示了正常的Tomcat启动完毕后的输出日志。

图4.29 Tomcat服务器启动成功的日志输出

(5)正常启动服务器后,用户就可以通过在浏览器中输入URL地址来访问Web项目了。