
第1章 初识Java EE—Hello,World!
Java EE即Java平台企业版(Java Platform Enterprise Edition),是为企业级应用而推出的标准平台,它的用途是开发Web动态网站。
本章通过一个具体的项目——“Hello,World!”项目来认识Java EE。
1.1 Hello,World!项目需求分析
1.1.1 项目需求
Hello,World!项目是本书的第1个Java EE项目,它的需求如下。
1)完成开发环境的选择和安装。
2)创建第1个项目Hello,World。
3)编写如下3种类型的网页。
●静态网页。
●客户端动态网页。
●服务器端动态网页。
4)配置项目。
5)运行这个项目,通过浏览器访问这些网页来了解3种网页之间的区别。
1.1.2 学习需求
为实现这个需求,需要学习Web应用、Java EE的相关知识,学会Java EE开发环境的安装和使用。
1.2 Web应用程序
Web即万维网(World Wide Web,简写为“Web”、“WWW”或“W3”),俗称为网站,是一个由许多互相链接的超文本文档组成的系统,通过HTTP协议访问。
1.2.1 C/S和B/S结构
客户机/服务器(C/S,Client/Server)是一种网络应用模式。客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求。在这种模式下,需要分别编写客户端程序和服务器程序,每台客户机都需要安装客户端程序。
浏览器/服务器(B/S,Browser/Server)是另一种网络应用模式。用户利用浏览器向服务器进程发出要求某种服务的请求,服务器进程响应该请求。在这种模式下,所有程序都安装在服务器上,任何客户机都无需安装客户端程序,客户机通过浏览器访问服务器。Web应用就是B/S结构的,Java EE是实现Web应用的一种技术。
1.2.2 HTTP协议
Web应用是B/S结构的,浏览器和服务器的通信是通过HTTP协议来完成的。HTTP协议基于请求/响应模式,即客户端与服务器的每一次交互始于客户端(浏览器)发出一个请求,服务器接收到该请求后,进行处理并返回响应信息,一次交互便告结束。客户端向服务器传递的信息称为HTTP请求包,服务器向客户端传递的信息称为HTTP响应包。
一次典型的请求/响应过程如下。
1)客户机与服务器建立连接,在用户输入网址后或单击超链接后自动进行。
2)连接建立后,浏览器向服务器发送请求包。
3)服务器接收到请求包,处理该请求,如果成功,返回成功代码以及响应的内容;如果失败,返回错误代码。
4)浏览器将服务器返回的响应显示在浏览器的窗口上。
5)断开客户机与服务器的连接。
1.2.3 Web技术介绍
与传统的C/S结构应用程序开发不同,Web开发涉及的技术非常广泛。
1.静态网页和动态网页
静态网页是指内容和界面固定不变,与用户交互性不高的网页,动态网页则提供了丰富的功能、动态变化的数据、以及多种多样的用户交互网页。二者采用的技术有较大的差别。
(1)静态网页
静态网页的内容由文本、图片、动画、音频和视频等媒体资源组成,一般采用HTML、CSS对这些资源进行组织和展示,采用Dreamweaver、Photoshop、Fireworks和Flash等网页、图片和动画制作工具来设计和制作。
(2)动态网页
动态网页可以分为两大类,一类是客户端动态网页,另一类是服务器端动态网页。
●客户端动态网页:在静态网页的基础上,采用JavaScript语言、Ajax技术等客户端编程技术,提供绚丽的界面,丰富的互动功能,但是数据一般不是动态变化的。
●服务器端动态网页:采用服务器端编程技术,根据用户的操作提供动态的数据。通常服务器端动态网页的界面并不华丽,由于提供的是动态数据,因而功能强大。
一个优秀的Web应用程序应该综合使用客户端编程和服务器端编程技术,从而实现一个真正意义上的动态网站。
2.客户端开发技术
虽然客户机上除了浏览器之外不需要安装任何软件,但为了更好地渲染网页界面,提高用户的使用体验,Web开发过程中往往投入大量的成本进行客户端的编程。与C/S应用不同,Web应用的客户端程序不需要在客户机安装,客户端程序是在用户访问网页的同时下载到浏览器上并运行的,这就增加了Web客户端编程的难度。
客户端开发技术比较多,主要有如下几类。
●HTML:超文本标记语言,即通常所说的网页编程。
●CSS:层叠样式表,用于展现HTML文档的外观。
●XML:可扩展标记语言,用于数据交换等。
●JavaScript:一种最常用的客户端脚本语言,提供与用户交互的接口。
●Ajax:一种用于Web应用开发的异步通信技术。
上述技术是相辅相成的,因此客户端开发需要根据用户的需求,综合使用上述各种技术。多种技术的相互配合,也增加了客户端开发的难度。客户端开发所采用的技术与服务器端开发技术没有必然的联系,可以根据用户需求和开发人员的技能进行选择。
3.服务器端开发技术
Web服务器提供Web应用需要访问的资源,即存放网站的服务器。对于静态网站,只需要一个HTTP服务器,并不需要服务器端编程,用户访问的是固定不变的静态内容。而对于动态网站,则需要在服务器上编写服务器软件,用以动态地为用户提供Web资源。
服务器端开发技术主要有下述4种。
●CGI:通用网关接口,这是比较早期的服务器端编程技术。
●ASP以及ASP.NET:这是微软提供的服务器端编程技术,缺点是局限于Windows平台,优点是简单易用,适合初学者学习。
●PHP:这是非常流行的AMP(Apache、MySQL和PHP)技术的组成部分,可部署在Linux或Windows平台,广泛用于中小型网站的开发。
●JSP以及Java EE:这是基于Java语言的服务器端编程技术,可部署在Linux或Windows平台,适用于大中型网站的开发。
服务器端开发需要根据用户需求,选择某一种技术进行。上述几种技术是独立的,不能同时使用。
1.3 Java EE技术
Java EE(Java Platform Enterprise Edition,Java平台企业版)是当时的Sun Microsystem公司(现被Oracle公司收购)为企业级应用推出的标准平台。Java平台分为3个主要版本Java EE、Java SE和Java ME。Java EE原名J2EE,2005年6月,因为Java SE 5的推出,J2EE更名为Java EE。随着Java技术的发展,Java EE平台得到了迅速的发展,成为Java语言中最活跃的体系之一。Java EE不仅仅是指一种标准平台(Platform),它更多地表达了一种软件架构和设计思想。
Java EE有多重含义,最狭义的含义是Sun Microsystem公司的Java SE,加上Java EE的核心规范EJB及其相关技术的技术规范的集合。EJB功能强大、技术复杂、资源消耗大、难于学习和使用,通常是被大公司用来开发大型应用,因此常常称为重量级的J2EE。
Java EE的宽泛一点的含义是基于Java SE的、所有与企业级应用有关的技术的集成。在这些技术中,首推的是SSH架构,即Struts+Spring+Hibernate技术。SSH技术的设计思想先进、技术成熟、易于学习和使用、开发成本低,得到了普遍的应用,常被称为轻量级的J2EE。本书学习的就是SSH技术。
Java EE最广的含义是指一种软件框架和设计思想,该思想的核心是采用多层、分布式和基于组件的企业级应用模型来开发企业级应用系统,任何采用这种思想进行开发的Java应用也可以认为是一种Java EE。
Java EE相关的技术涵盖许多方面,诸如Applet、EJB、JAAS、JACC、JAF、JAX-RPC、JAX-WS、JAXM、JAXP、JAXR、JCA、JDBC、JMS、JMX、JNDI、JSF、JSP、JSTL、JTA、JavaMail、Servlet、StAX和WS等。在Java EE开发的实践中,需要根据项目的特点,选择合适的技术满足各种需求。本书将学习JSP、Servlet、Java Bean、Struts、Spring、JDBC和Hibernate等技术。
1.4 Java EE开发环境和运行环境
1.4.1 Java EE开发环境
Java EE需要下述开发环境。
●JDK:Java开发离不开JDK。通常Java EE开发需要Java SE 5以上版本,目前最新的版本是Java SE 8。
●IDE开发环境:Java EE开发可以选择各种IDE环境,Eclipse是使用最广泛的,是开源和免费的。另外还有NetBeans、IntelliJ和MyEclipse,后两者是商业软件。
●数据库:通常Java EE都需要数据库的支持。Java语言支持几乎所有的数据库管理系统(商业的Oracle、DB2、SQL Server以及开源的MySQL、PostgreSQL、HSQLDB和Derby等)。由于MySQL跨平台、性能高、功能适中、稳定性好以及开源免费的特点,赢得了广大Java程序员的喜爱。
●JDBC驱动程序:不同的数据库管理系统需要不同的JDBC驱动程序,应该根据选定的数据库管理系统来选择JDBC驱动程序,从开发数据库管理系统的公司可以免费下载。
●Web容器:Web容器(即Web应用服务器)是必需的。Web容器有IBM公司的WebSphere、Oracle公司的WebLogic等大型商业软件,也有JBoss、Resin、Tomcat等中小型开源软件,其中应用最普遍的是Tomcat,它是Apache基金会下的一个开源项目。
●界面设计工具:这是为设计网页界面使用的工具,包括图片制作、动画制作以及网页美工设计等(本书不讨论图片、动画等美工设计)。
●浏览器:用于测试网站,常用的浏览器有Chrome、Firefox、IE等。由于技术原因,各种浏览器对于标准的支持有些差别,本书主要使用Google的Chrome作为测试平台,理由是它的调试功能比较方便。
本书所使用的开发环境全部是开源软件,这也体现了开源软件的魅力。
1.4.2 Java EE运行环境
Java EE的运行环境分为服务器端和客户端。
1.服务器端
在服务器上需要安装如下软件。
●JRE:Java EE应用的运行不需要JDK,只要有JRE即可。
●数据库:首推使用MySQL,也可以使用Oracle等商业软件。
●Web容器:首推使用Tomcat,也可以使用JBoss或其他商业软件。
2.客户端
在客户端上只需要浏览器,不需安装其他软件。浏览器有许多种,Windows平台下的常用浏览器有如下几种。
●Chrome:即谷歌浏览器,目前是43版,特点是标准化、兼容性好。
●Firefox:目前是38版,特点是标准化、兼容性好。
●IE:目前常用的是7、8、9、10和11版,特点是用户数量大,但是兼容性差、标准化程度不够。
另外还有其他平台下的浏览器,如Linux平台、Mac OS平台、Android平台以及各种手机平台等。由于Web应用与浏览器的兼容性关系非常大,Web开发时对目标浏览器的定位不同,将会导致对实际支持的浏览器有一定的限制。
1.5 开发环境的安装和使用
1.5.1 JDK的安装和配置
JDK的下载地址是http://www.oracle.com/technetwork/java/index.html,当前的常见版本是1.5(Java SE 5)、1.6(Java SE 6)、1.7(Java SE 7)版和Java SE 8,下载时应注意区分不同的操作系统版本。按常规方法安装,注意安装结束后的环境变量配置。配置实例如下。
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
path=;%JAVA_HOME%/bin
CLASSPATH=.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar
本书使用1.6(Java SE 6)版。
1.5.2 Eclipse的安装和配置
Eclipse的下载地址是http://www.eclipse.org/downloads/,当前的常见版本是3.5(代号Galileo)、3.6(代号Helios)、3.7(代号Indigo)、4.2(代号Juno)、4.3(代号Kepler)和4.4(代号Luna)。Eclipse有多达14种不同用途的版本,如Java开发、Java EE开发、C++开发和PHP开发等,应该选择下载Eclipse IDE for Java EE Developers的版本,下载时还要注意区分不同的操作系统版本。按常规方法安装,即直接解压缩到某个文件夹中,然后直接运行其中的eclipse.exe,或者为其设置一个快捷方式。
本书使用4.3(代号Kepler)版,文件名是eclipse-jee-kepler-R-win32.zip。
Eclipse字符编码的默认配置是GBK和ISO-8859-1,前者是全局的设置,后者是JSP网页的设置。为了更好地处理中文,应该将这二者都改为UTF-8。方法是从Eclipse的主菜单中选择Window→Preferences,从弹出的窗口中进行选择。一共要作两处设置(见图1-1)。
注:如果在编辑窗口中中文字号明显偏小,则需要下载专用的雅黑字体并加以配置,详见http://www.ngweb.org/jee中的说明。
图1-1 设置Eclipse的字符编码
1.5.3 MySQL的安装和配置
1.服务器的安装和配置
MySQL社区版的下载地址是http://dev.mysql.com/downloads/mysql/,当前的常见版本是5.1、5.5以及最新的5.6版,下载时注意区分不同的操作系统版本。本书使用比较稳定的5.1版。
MySQL有两种版本,社区版(MySQL Community Server)是免费的,企业版(MySQL Enterprise)是商业软件。下载安装免费的社区版,安装过程非常简单,但安装后的配置中有3个部分需要注意。
●选择多国语言时要用utf8(见图1-2)。
●添加MySQL的安装目录到Path路径中,应该打上勾(见图1-2)。
●设置系统管理员(root)用户的密码,建议在开发阶段使用sa作为密码。
图1-2 MySQL配置(选择语言和添加路径)
2.下载MySQL的JDBC驱动程序
在Java中访问MySQL数据库还需要MySQL数据库的JDBC驱动程序,下载地址是http://dev.mysql.com/downloads/connector/j/,其名称是“MySQL Connector/J”,不区分操作系统。当前版本是5.1.30,本书使用的版本是5.1.25,文件名mysql-connector-java-5.1.25.tar.gz,解压后只需使用其中的mysql-connector-java-5.1.25-bin.jar文件。
1.5.4 Tomcat的安装和试运行
Tomcat的下载地址是http://tomcat.apache.org/,常见版本有6.x、7.x和8.x版,Tomcat有两种版本供下载,一种不区分操作系统,同一个软件可以在Linux和Windows下运行,另一种区分操作系统,主要针对Windows操作系统,方便其作为一个服务在Windows下运行。
本书使用6.0.39版,不区分操作系统的版本。从http://tomcat.apache.org下载,选择下载tar格式的文件,例如6.0.39版的文件名是apache-tomcat-6.0.39.tar.gz。把文件解压到一个合适的目录(例如D:/apache-tomcat-6.0.39)即可。
安装完成后运行D:\apache-tomcat-6.0.39\bin\startup.bat启动Tomcat,这时将会打开一个命令行窗口,显示Tomcat的运行信息(图1-3a)。不应该关闭该窗口,因为关闭该窗口意味着同时关闭Tomcat。
注意这种启动方式仅仅用于测试Tomcat是否安装成功,并不能用于测试代码,因此在本书的后续部分不再使用这种方式启动。
如果无法正常启动Tomcat,可能的原因有:
●没有正确设置JAVA_HOME等环境变量,设置方法见1.5.1 JDK的安装一节。
●端口号已被占用,Tomcat的默认端口号是8080,如果其他的Web服务也用了这个端口号,启动将失败。一种常见的情况是第二次启动Tomcat,这是肯定失败的。
如果需要关闭Tomcat,建议使用标准的方式,即通过运行D:\tomcat6\bin\shutdown.bat来关闭Tomcat。直接关闭图1-3a所示的窗口也能关闭Tomcat。
图1-3 Tomcat的启动界面和默认页面
从Tomcat的启动信息,可以查找到Tomcat使用的端口号(图1-3a显示的端口号是8080),8080是Tomcat的默认端口号。
在浏览器中用http://127.0.0.1:8080/或http://localhost:8080/来测试Tomcat是否正常运行,这时应该看到Tomcat的默认主页(图1-3b),这个页面上包括安装好的Tomcat使用文档、JSP例子(JSP Examples)以及一些有用的链接。
1.5.5 安装Chrome浏览器
出于标准化和调试方面的考虑,本书采用Chrome浏览器。Chrome浏览器的下载地址是https://www.google.com.hk/,这是在线安装版本,也可以从其他网站下载离线安装版本。
可以用任何种类的浏览器,采用其他浏览器从理论上讲对学习本书没有任何影响,实际上可能有少量差别。
1.6 实训1 Hello,World!项目
实训1:本实训将通过一个Hello,World!项目来体验Java EE应用开发的基本过程,在这个过程中将分别编写静态网页、客户端动态网页和服务器端动态网页,并比较三者的区别。
1.开发环境的安装
按照前面的说明,依次安装JDK、Eclipse、Tomcat和Chrome浏览器。注意本项目不需要MySQL和JDBC驱动程序,直到第4章才需要MySQL数据库的支持。
2.创建项目
启动Eclipse,然后从主菜单选择New→Dynamic Web Project(图1-4a),或New→Other,后一种选择将弹出“新建”窗口,选择Web中的Dynamic Web Project,单击Next(图1-4b)。这两种方式都将创建一个Dynamic Web Project(动态Web项目)。
图1-4 选择新建项目的类型
在New Dynamic Web Project窗口中填写项目名称hello(图1-5a),单击New Runtime设置项目的Web容器(Web服务器为Apache Tomcat v6.0),这时会弹出New Server Runtime Enrironment窗口,设置Web容器的安装路径,即Tomcat的安装路径(图1-5b)。最后将Dynamic web module version改为2.5,单击“Finish”按钮,完成项目的创建(图1-5a)。
图1-5 创建动态Web项目并设置Web容器
这时在Project Explorer中可以看到新建项目的结构(图1-6),其中src是Java源代码目录,WebContent是网站内容目录,在这个目录中将保存所有网站内容,包括网页、图片、动画、音频和视频片段等,在这个目录下还有一个WEB-INF目录,它保存与网站有关的库文件(lib目录)、Java的字节码文件,以及网站的配置文件web.xml。
注意:Dynamic web module version的默认值是3.0,如果忘记改为2.5,则创建的项目中没有预先生成的web.xml文件,这样的项目应该在Tomcat 7.0下调试和运行。因此,如果出现这种情况,应该将项目彻底删除,然后重新创建。
图1-6 新建项目的结构
3.使用Jitor实训指导软件
这不是项目开发的需要而安装的软件,而是为了学习的需要而安装的实训指导软件。
访问Jitor实训指导软件网站(见图1-7a),具体的地址由教师在上课时提供,例如http://192.168.68.1:8089/jee/jitor。自学的读者可以参考本书附录的说明下载和安装Jitor实训指导软件网站。
图1-7 Jitor实训指导软件网站首页和客户端软件首页
按照网站首页的说明下载jitor.jar,并复制到hello项目的WebContent\WEB-INF\lib目录中,刷新项目后,在项目的src目录下新建一个类MyJitor,其中含有如下的main方法。
将这个类作为Java application运行,这时弹出一个实训指导软件的窗口(见图1-7b,其中的“SHH工具”在第4~7章学习),单击“开始”按钮后出现登录界面(账号和密码由教师提供,自学者可以直接用admin用户登录,密码也是admin),登录后将显示实训列表(见图1-8a)。选择“实训1 Hello,world!项目”进入实训指导界面,根据提示的步骤,按顺序进行操作或编写程序,每完成一步,单击窗口上方的步骤序号按钮或单击对应的检查步骤超链接,检查操作是否通过。通过后,成绩将会同时上传到服务器上,对应的按钮底色改为淡蓝色,如果失败,则按钮底色改为淡红色(见图1-8b)。
图1-8 Jitor实训指导软件实训列表和实训1的界面
Jitor实训指导软件被本书的所有实验和实训项目用于指导和检查实验和实训的操作过程。因此,做每一项实验和实训项目时都要安装和使用这个软件,并根据其指导来完成实验和实训项目。
4.编写静态网页
创建项目后就可以开始编写网页。首先编写的是一个静态网页,命名为world.html。方法是从WebContent目录的右键菜单选择new→HTML File。然后在弹出的“New HTMLFile”窗口中填写网页的文件名为world.html,单击“Finish”按钮,完成静态网页的创建,如图1-9所示。
图1-9 创建静态网页
这时Eclipse生成一个静态网页world.html,它位于WebContent目录之下,该文件在编辑区被打开,如图1-10a所示。
图1-10 编辑静态网页和添加Web服务器
这是一个HTML文件,其中包含自动生成的一些主要标签。现在需要做的是修改这个文件,在<body>标签内插入文字“Hello,world!”作为这个网页的测试内容,如图1-10a所示。
5.运行网站
下一步是运行这个网站,也就是添加、配置和启动Tomcat服务器,通过浏览器测试运行的结果。这个步骤需要分为下述几个子步骤:
(1)添加Web服务器
方法是通过单击服务器(Servers)选项卡的标题,打开Servers选项卡,单击Servers区第1行的超链接“Click this link to create a new server”(图1-10a的箭头所示部分),或从Servers区空白处的鼠标右键菜单中选择New→Server,从弹出的“Define a New Server”窗口中选择Apache下的Tomcat v6.0 Server,单击“Finish”按钮完成,如图1-10b所示。如果在创建项目时没有设置Target Runtime,还需要通过“Browser”按钮,选择Tomcat的安装目录。
注:如果找不到服务器(Servers)选项卡,则可能是Eclipse的视图有误,应该重新选择Java EE视图,方法是从主菜单中选择Window→Open perspective→Other,在弹出的窗口中选择Java EE。这时Eclipse的右上角的Java EE为选中状态。如果不小心关闭了服务器选项卡或控制台选项卡等,可以通过主菜单中的Window→Reset perspective…来重置Java EE视图为默认样式。
(2)将项目添加到Web服务器
前一步在Server区添加了Web服务器,名为Tomcat v6.0 Server at localhost。从这个服务器的鼠标右键菜单上选择Add and remove…,在弹出的窗口中选择将要添加的项目,然后单击Add>按钮,该项目将被移到右边的窗格中。单击“Finish”按钮,如图1-11所示。
图1-11 向服务器添加项目
这时可以看到项目已添加到服务器上,如图1-12a所示。
(3)启动服务器
启动服务器只需简单的一步,当服务器Tomcat v6.0 Server at localhost被选中时,单击其右上方的绿色三角形按钮,就可启动Tomcat,启动后显示运行状态的红色图标为加亮状态,同时Console窗口将输出启动过程的有关信息,注意其中的内容Starting Coyote HTTP/1.1 on http-8080,表示这个Web服务器的端口号是8080,如图1-12b所示。
图1-12 Tomcat的启动和启动信息
单击图1-12b的红色运行按钮,可以关闭Tomcat服务器。
如果Tomcat服务器启动失败,最可能的原因是8080端口被占用,即8080端口被另一个Tomcat进程所占用,例如在安装Tomcat时运行了bin\startup.bat,这时先关闭这个Tomcat进程,再用刚才的方法从Eclipse启动它。
(4)用浏览器查看结果
打开一个浏览器(Chrome、Firefox或IE),在地址栏输入地址:
http://127.0.0.1:8080/hello/world.html
其中127.0.0.1是本机的IP地址,8080是端口号,hello是项目的名称,world.html是网页的文件名。注意项目名称和文件名部分是大小写敏感的。
在Chrome浏览器中看到的网页如图1-13a所示。可以通过Chrome浏览器中网页上的右键菜单(如图1-13c所示)选择“查看网页源代码”来显示网页源代码的内容,如图1-13b所示。网页源代码的内容与服务器上world.html文件的内容完全相同。
图1-13 用浏览器查看网页及网页源代码
6.服务器端动态网页
到此,我们已经创建了一个动态网站,编写了一个静态网页,并运行这个网站,通过浏览器访问网站上的静态网页。下面将编写一个动态网页作为对照。
用与创建静态网页类似的方法,创建一个动态网页(JSP),参见图1-9左图,但新建的不是HTML File,而是JSP File,文件名是demo.jsp,然后修改为如下代码。
【例1-1】服务器端动态网页demo.jsp。
在这个页面中嵌入了3行Java代码实现了动态功能,代码由<%%>标记括起来,out.print()表示将参数的值作为服务器的响应输出到浏览器。
由于Date类是属于java.util包的,因此还需要导入这个类,导入的命令在JSP文件中写为<%@page import="java.util.Date"%>,对导入命令的详细说明将在第3章讨论。
如果无法保存这个JSP文件,最可能的原因是字符编码不正确,Eclipse创建JSP文件时的默认字符编码是ISO-8859-1,当文件中含有中文字符时,必须将编码改为UTF-8,否则Eclipse将提示保存时出错。上述代码中有3处ISD-8859-1需要修改为UTF-8,最好的方法是先修改Eclipse的默认字符编码为UTF-8(见1.5.2节),然后再创建JSP文件。
网页的显示效果和源代码见图1-14。从网页源代码中可以看到,网页的内容是Java代码的执行结果,不是服务器端的代码本身。
图1-14 服务器端动态网页及其网页源代码
7.客户端动态网页
前面我们编写了一个服务器端的动态网页demo.jsp,现在再编写一个客户端动态网页作为比较,创建一个JSP文件,名为demo-js.jsp,然后将其修改为如下代码。
【例1-2】客户端动态网页demo-js.jsp。
在这个页面中嵌入了3行JavaScript代码,代码用一个HTML标签script括起来,document.write()方法表示直接向浏览器输出参数的值。JavaScript将在第2章讨论。
对照服务器端和客户端的动态网页,它们的显示结果是相同的(比较图1-14a和图1-15a),但其内部机制完全不同,这从它们的网页源代码中可以看出来(比较图1-14b和图1-15b)。对于服务器端动态网页,代码的执行是在服务器上完成的,浏览器接收到的页面内容是Java代码的执行结果,浏览器直接显示网页的内容。而对于客户端动态网页,代码的执行是在浏览器上实现的,浏览器从服务器上接收到的页面内容是JavaScript代码本身,浏览器执行这些代码,然后将结果显示在浏览器上。
图1-15 客户端动态网页及其网页源代码
静态网页、服务器端动态网页和客户端动态网页的比较见表1-1。
表1-1 静态网页、服务器端动态网页和客户端动态网页的比较
需要注意的是,在通常情况下一个网站同时需要使用服务器端和客户端的动态网页技术,以实现丰富的功能和良好的用户体验。本书主要讨论服务器端动态网页技术,仅在必要时,才讨论一些客户端动态网页技术。
8.默认页面和配置文件
Tomcat的默认页面(首页)是index.html、index.jsp等6个,实际生效的是按配置中的默认页面顺序找到的第1个。配置保存在web.xml文件中,其代码如下。
【例1-3】项目配置文件web.xml。
因此,编写一个index.html文件,代码如下:
【例1-4】网站首页文件index.html。
这时,只要通过http://127.0.0.1:8080/hello/就能访问这个网站默认页面(首页)(见图1-16),并通过首页访问其他页面。通常每个项目以及每个目录都有默认页面,可以缩短网址的长度。
图1-16 默认页面(首页)
1.7 小结
本章介绍了各种Web技术,讨论了Java EE的开发环境和运行环境,并通过一个实例实现了一个简单的Java EE应用项目的开发。本章还通过实例讨论了静态页面、服务器端动态网页和客户端动态网页,以及三者之间的区别。
此外,还介绍了Jitor实训指导软件的使用,该软件将用于全书的实验和实训指导以及检查。
1.8 作业
一、问答题
1.客户端开发技术有哪些?这些技术之间有什么关系?
2.服务器端开发技术有哪些?这些技术之间有什么关系?
3.简述Java EE的开发环境。
4.什么是静态网页和动态网页?它们有什么区别。
5.什么是服务器端动态网页和客户端动态网页?它们有什么区别。
二、探索题
1.在Windows操作系统中安装一个虚拟机软件VirtualBox(https://virtualbox.org),在该虚拟机中安装一个Linux操作系统(CentOS或Ubuntu,http://www.centos.org或http://www.ubuntu.com)。
2.在上述安装的Linux操作系统中安装Java开发环境,下载相应软件的Linux版本并安装,尝试在Linux环境下使用Eclipse进行Java开发。