第3章 JSP基础

本章要点

  • Java Web开发环境的安装和配置。
  • JSP网页文件的基本构成。
  • page指令和include指令的使用。
  • include指令如何实现文件包含。
  • forward动作元素的使用。
  • JSP中对中文字符的处理。

3.1 JSP开发概述

JSP(Java Server Pages) 是由Sun公司倡导、多家公司参与,于1999年推出的一种动态网页技术标准。它基于Java Servlet的Web开发技术,利用这一技术可以开发动态的、高性能的Web应用程序。在HTML文件中加入Java程序片段和JSP标记,就构成了JSP网页。在技术方面,JSP与ASP非常相似。

本节要点

  • JSP开发环境安装配置,创建第一个简单的程序。
  • 静态网页、动态网页运行机制与特点。
  • Web服务器、网络数据库基本概念。
  • JSP/ASP/ASP.NET/PHP技术的区别。
  • C/S模式的特点、B/S模式的特点。

3.1.1 案例1 JSP开发环境的安装

【设计要求】
完成JSP开发环境的安装。
【学习目标】
(1)了解JSP开发环境构成和主要开发工具软件。
(2)掌握开发环境安装与配置。
【知识准备】
1.JDK
Java开发工具包(Java Developer Kit,JDK)是由Sun公司提供的Java开发工具。开发JSP必须使用JDK工具包,它包含Java编译器、解释器和虚拟机(JVM),为JSP页面文件、Servlet程序提供编译和运行环境——JSP引擎使用JDK提供的编译器,将Servlet源代码文件编译为字节码文件,Servlet引擎使用JDK提供的虚拟机(JVM)运行Servlet字节码文件。
2.Web服务器
Web服务器是JSP网页运行的不可缺少的支撑平台,它的主要功能是对客户的请求进行处理和响应。Web服务器有多种,如IIS、Apache和Tomcat等
(1)利用ASP或ASP.NET技术进行Web程序开发,采用的是IIS服务器。
(2)利用PHP技术进行Web程序开发,采用的是Apache服务器。
(3)利用JSP技术进行Web程序开发,采用的是JRE和相关的应用服务器(如Apache、Tomcat等)。
本书选用的Web服务器是Tomcat6.0。
Tomcat服务器是由Sun公司在JSWDK(Java Server Web Development Kit)的基础上发展而来的一个优秀的Web服务器,它是由JavaSoft和Apache开发团队共同开发的产品。Tomcat服务器自带JSP引擎和Servlet引擎。
3.数据库系统
“数据 + 资源共享”这两种技术结合在一起即成为如今被广泛应用的网络数据库(也称Web数据库)。SQL Server、MySQL和Oracle都是网络数据库系统。它们是Web程序开发的核心,用来存储用户的各种资源。Oracle数据库系统是美国Oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(C/S)或浏览器/服务器(B/S)体系结构的数据库之一。Oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库,它实现了分布式处理功能。它为JSP网页提供了强大的后台数据支持。
4.动态网页技术
(1)ASP网页技术是微软公司推出的简单、高效的动态网页开发技术,但是该技术不适合进行大型网站的开发。
(2)ASP.NET是微软公司在ASP技术的基础上进行改进和提高后的新一代Web应用开发技术,可进行大型动态网站开发,但是不具备跨平台的特点。
(3)PHP技术是一种跨平台的服务器端的嵌入式脚本语言,可以快速地开发Web应用程序,但是该项技术支持目前还不够系统和完善。
(4)JSP网页技术是Sun公司(目前被Oracle收购)推出的具有跨平台运行能力的开源动态网站开发技术,JSP技术也可以在Servlet和JavaBean的支持下,完成功能强大的动态网站程序的开发。
5.开发工具
目前的开发工具有NetBeans、Eclipse、MyEclipse、JCreator、Dreamweaver等,本书选用的是以MyEclipse作为代码编辑平台。
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大地提高工作效率。它拥有功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSP、CSS、Javascript、Spring、SQL、Hibernate。
【实施过程】
JSP的运行环境是由Java开发工具包、Tomcat服务器和MyEclipse开发平台3个部分组成的,以下是Java Web开发环境的配置步骤。
1.安装配置JDK
(1)下载JDK
JDK是Sun公司免费提供的Java开发工具,最新版是JDK 7,请读者到Sun公司网站下载。下面是下载J2SE版本的JDK工具包网址:http://www.oracle.com/technetwork/Java/Javase/downloads/index.html,安装文件jdk- 7u51-windows-i586.exe(约123.6MB)。
(2)安装JDK
JDK的安装过程很简单,只要正确地按照安装向导一步步进行操作,就可以成功安装JDK(具体过程略)。
(3)配置环境变量
JDK 开发工具安装成功后,便是对JDK 进行环境变量的设置。或许有的读者会问,为什么要设置环境变量?设置环境变量的目的是什么?这个问题首先还得从环境变量说起,环境变量其实就是由路径和文件名组成的字符串,系统可以通过环境变量提供的路径控制程序的行为。
① 在桌面上选中“我的电脑”,单击鼠标右键,在弹出的菜单中,单击“属性”,如图3-1所示。

图像说明文字

② 在弹出的系统属性对话框中,单击“高级”选项卡,然后单击“环境变量”按钮,如图3-2所示。

图像说明文字

③ 在弹出的环境变量对话框中,单击“新建”按钮,如图3-3所示。

图像说明文字

④ 单击“新建”按钮,弹出新建用户变量对话框,在这里需要设置3个变量,它们分别是:JAVA_HOME、path 和CLASSPATH。

  • JAVA_HOME:在变量名输入框中输入JAVA_HOME,在变量值输入框中输入JDK 的安装目录,如图3-4所示。

图像说明文字

  • CLASSPATH:在设置JDK的CLASSPATH 时会包含一个jre\lib\rt.jar,Java 查找类时会把这个.jar 文件当作一个目录来进行查找。如图3-5所示。

图像说明文字

  • path:当执行一个可执行文件时,如果该文件不能在当前路径下找到,则会到Path 寻找径,如果在Path 中也找不到,就会报错。新建编辑系统变量对话框,如图3-6所示:

图像说明文字

⑤ JDK 环境的测试,在电脑中打开命令提示符窗口,输入:javac,如图3-7所示,环境变量配置成功。

图像说明文字

2.安装配置Tomcat 6
(1)下载安装Tomcat6,官网下载网址:http://tomcat.apache.org/,如图3-8所示。

图像说明文字

(2)下载完成Tomcat后就可以安装Tomcat。安装Tomcat时,系统会自动安装JSP引擎和Servlet引擎(具体安装过程略)。
(3)安装完Tomcat后,测试Tomcat是否安装成功。打开IE浏览器,在地址栏内输入“http://localhost:8080”。其中,“localhost”也可以是“127.0.0.1”表示本地主机,“8080”表示访问的Tomcat服务器的端口号。如果显示如图3-9所示的页面,表示Tomcat安装成功,否则需要重新安装。

图像说明文字

3.安装MyEclipse
可以到网络上自行下载MyEclipse,MyEclipse不同于Eclipse,它是一个商业插件,也就是说使用它是需要收费的。要求使用者购买一个License 来使用正版的MyEclipse,但是购买前可以免费试用30 天。安装集成版的MyEclipse 6.5(最新版本为2015),安装文件MyEclipse_6.5.0 GA_E3.3.2_Installer_A.exe约440MB(安装过程略)。
4.在MyEclipse中配置Tomcat
安装完成后,在MyEclipse中配置Tomcat,在MyEclipse菜单中选择“Preferences”菜单命令打开Preferences对话框,在对话框左侧树型目录中依次选择“MyEclipse Enterprise Workbench”“Servers”“Tomcat”“Tomcat 6.x”,然后在对话框右侧面板中选中“Enable”,如图3-10所示。

图像说明文字

单击Tomcat home directory右侧的Browse按钮,打开对话框选择Tomcat的安装目录,选择结果如图3-11所示(假如Tomcat安装在“C:\Tomcat 6.0”下)。

图像说明文字

5.在MyEclipse中启动Tomcat服务
在MyEclipse工作窗口下端的快速视图区选中Servers视图,选中Tomcat 6.x,并单击视图中“Run Server”工具按钮来启动Tomcat服务,如图3-12所示。

图像说明文字

【案例总结】
(1)JDK的安装关键是对环境变量的配置,关键点是选择JDK安装的主机路径,根据路径来进行环境变量的配置。
(2)MyEclipse安装和配置中的关键点是JSP网页发布的方法和Tomcat服务器的配置和启动。
说明:配置环境变量目的有3个:第一,让操作系统自动查找编译器、解释器所在的路径;第二,设置程序编译和执行时需要的类路径;第三,Tomcat服务器安装时需要知道虚拟机所在的路径。

3.1.2 案例2 创建第一个JSP程序

【设计要求】
不使用MyEclipse集成开发环境,直接Tomcat服务器环境下,使用记事本编程完成第一个JSP程序的创建及运行。
【学习目标】
通过手动方式创建和运行第一个JSP应用程序,了解JSP应用程序的基本构成,理解JSP应用程序的执行过程。
【知识准备】
1.启动Tomcat服务
(1)Tomcat 6.0安装之后,一般不用进行特别的配置,便可以启动运行。在操作系统的程序菜单中启动“Monitor Tomcat”程序,任务栏中将出现Tomcat服务管理图标 ,图标中心为红色圆点表示服务是停止状态,在此图标上右击,在弹出的快捷菜单中选择“Start Service”可以启动Tomcat服务,启动成功图标中心会变成绿色三角 。
(2)测试Tomcat服务器,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面说明安装成功了。
2.JSP的执行过程
一个JSP页面可以有多个客户端多次访问,下面是第一个客户端首次访问JSP页面时,JSP页面的执行过程。
(1)客户端通过浏览器向服务器端发送JSP页面请求;
(2)服务器端的JSP容器(如Tomcat)将JSP文件转换成servlet源代码文件(即Java源文件);
(3)JSP容器将Java源代码编译为相应的字节码文件(即class字节码文件);
(4)JSP容器加载字节码文件到内存并运行,运行结果以HTML代码形式返回给客户端浏览器。
如果服务器端的JSP页面再次被任意客户端请求,则JSP容器会首先检查JSP页面是否修改,若未修改,则直接转向第4步,否则重复第2步至第4步执行。JSP页面的执行流程如图3-13所示。

图像说明文字


说明:
在不修改JSP页面的情况下,除了第一个客户访问JSP页面需要经过以上几个步骤外,以后访问该JSP页面的客户请求,直接被发送给JSP对应的字节码程序处理,并将处理结果返回给客户。在这种情况下,JSP页面既不需转译也不需编译,因此JSP页面执行效率非常高。


【实施过程】
(1)在Tomcat 6.0安装目录的webapps文件夹下新建一个目录,命名为chap03。
(2)在chap03目录下新建一个文件夹WEB-INF,注意,目录名称是区分大小写的。
(3)WEB-INF下新建一个文件web.xml,内容如下:

图像说明文字

(4)在chap03下新建一个JSP页面,文件名为index.jsp,文件内容如下:

图像说明文字

(5)启动Tomcat服务。
(6)打开浏览器,在地址栏中输入http://localhost:8080/chap03/index.jsp,结果如图3-14所示。

图像说明文字

【案例总结】
(1)创建和运行JSP程序的要点有3个:首先,一个Web应用程序应该放在一个独立的文件夹中(如chap03);第二,Web应用程序必须放在Tomcat的应用程序目录(即webapps)中;第三,必须启动Tomcat服务,才能在浏览器中请求JSP应用程序。
(2)所有文件名、文件夹名都是大小写敏感的,浏览器地址栏中输入的地址也要求大小写敏感。

3.1.3 案例3 在MyEclipse下开发JSP程序

【设计要求】
在MyEclipse开发环境下开发JSP程序。
【学习目标】
掌握通过MyEclipse集成开发环境,快速创建、调试和运行JSP程序的方法 。 【知识准备】
JSP开发工具平台有很多,但是企业中使用比较普遍的是MyEclipse集成开发工具平台,作为Eclipse用于Java Web应用开发的第三方插件,MyEclipse版本更新速度很快,截止本书发稿前,已有MyEclipse 2015版本发布。最新的版本固然提供了更加丰富的功能,但同时存在稳定性、使用普遍性、硬件环境要求相对较高等问题。本书以工具够用、性能稳定为原则,选择MyEclipse 6.5平台作为案例开发与调试的开发平台版本。
首次启动MyEclipse时需要设置工作空间,即选择合适的目录保存项目,如图3-15所示。

图像说明文字

【实施过程】
(1)创建Web Project项目
通过菜单命令创建Web Project项目,如图3-16所示。

图像说明文字

也可以使用工具栏按钮创建:单击右侧的箭头,选择Web Project,打开“New Web Project”对话框,项目名称输入myfirst,单击“finish”完成项目创建,如图3-17所示。

图像说明文字

(2)打开并修改自动生成的index.jsp文件
打开项目中的WebRoot文件夹下的index.jsp,按以下代码内容进行修改并保存:

图像说明文字

(3)将项目部署到Tomcat服务器中 单击箭头打开如图3-18所示,“Manage Deployment”对话框,选择myfirst项目,单击“Add”按钮。

图像说明文字

这时会出现如图3-19所示“New Deployment”对话框,选择“Tomcat 6.x”服务器后确定,项目即成功发布到服务器上。

图像说明文字

(4)测试运行
打开浏览器,在地址栏中输入http://localhost:8080/myfirst/index.jsp,运行结果如图3-20所示。

图像说明文字

【案例总结】
(1)通过MyEclipse集成开发工具平台,可以很方便地运行项目的创建、编辑、调试,基本流程包括:项目的创建、程序的编辑修改,项目的部署、程序的测试运行。
(2)index.jsp程序在执行时,首先被支持JSP的容器(如Tomcat或Resin)进行预编译,生成一个标准的Java程序index_jsp.Java,这个Java程序在Tomcat的“work\Catalina\localhost\myfirst\org\apache\jsp”目录下,分析该Java程序的源码可以看出,该类中有一个方法_jspService(),在该方法的方法体中我们可以看到index.jsp文件内容的影子。这个方法就是JSP容器首先要执行的方法,程序执行的结果以HTML的格式返回给浏览器进行显示。

3.2 JSP注释与脚本元素

在前面已经学习了JSP开发环境的搭建以及简单JSP网页文件的创建方法,JSP网页还包含很多其他的元素,如注释、脚本元素的添加等,本节将以案例的形式来说明这些元素的使用方法以及这些元素的功能。

本节要点

  • JSP页面的执行过程。
  • JSP页面的各种构成元素。
  • 3种脚本元素的语法。
  • 3种脚本元素的作用。

    3.2.1 案例4 JSP网页内容结构的认识

    【设计要求】
    通过简单的JSP网页文件的开发,了解JSP网页文件的基本内容结构。
    【学习目标】
    (1)掌握JSP网页文件基本结构。
    (2)掌握JSP声明、JSP脚本片段和JSP表达式3种元素的使用方法。
    【知识准备】
    1.JSP页面的基本结构
    在传统的HTML页面文件中加入Java程序片段和JSP标签就构成了一个JSP页面文件。一个JSP页面可由6种元素组合而成,如图3-21所示。

图像说明文字

当服务器上的一个JSP页面被第一次请求执行时,服务器上的JSP引擎首先将JSP页面翻译成一个Java文件,再将这个Java文件编译成字节码文件,然后通过执行字节码文件响应客户的请求。这个字节码文件的任务如下。
(1)把JSP页面中普通的HTML标记符号交给客户的浏览器执行显示。
(2)JSP标签、数据和方法声明、Java程序片由服务器执行,将需要显示的结果发送给客户的浏览器。
(3)Java表达式由服务器负责计算,并将结果转化为字符串,然后交给客户的浏览器显示。
2.JSP的注释
注释可以增强JSP文件的可读性,并易于进行JSP文件的维护。JSP中的注释可分为以下两种。
(1)HTML注释:在标记符号“<!- -”和“- ->”之间加入要注释的内容。JSP引擎把HTML注释交给客户,因此客户通过浏览器查看JSP的源文件时可以看到HTML注释。
(2)JSP注释:在标记符号“<%- -”和“- -%>”之间加入要注释的内容。JSP引擎会忽略JSP注释,即在编译JSP页面时忽略JSP注释。客户通过浏览器查看JSP的源文件时看不到JSP注释。


说明:
① 无论HTML注释还是JSP注释都不会在页面中显示;
② HTML注释中嵌入的动态代码也会被执行。


【实施过程】
(1)在案例1中搭建的开发平台上新建一个工程,命名为chap03。
(2)在chap03工程下创建JSP文件Notes.jsp,代码如下:

图像说明文字

其中,第6行是以标题2的形式显示一句话;第7~9行是一段JavaScript脚本;第10~12行是Java脚本片段。
(3)测试运行,打开浏览器,在地址栏输入http://localhost: 8080/chap03/Notes.jsp,效果如图3-22所示。

图像说明文字

【案例总结】
(1)JSP页面出现乱码的解决方法。
在页头加上:<%@ page contentType=″text/ html; charset=UTF-8″%>。
(2)本案例中属于静态内容的代码如下:

图像说明文字

(3)本案例中属于动态内容的代码如下:

图像说明文字

(4)所有的JSP脚本程序都必须用“<%”和“%>”括起来,可以用out对象的printIn方法输出信息,输出语句可以用双引号括起来。
【拓展提高】
在应用程序文件夹下,创建test1.jsp文件,把下面的代码复制到JSP文件中。

图像说明文字

运行,多次刷新页面,查看当浏览器访问该JSP网页时的输出结果是什么。

3.2.2 案例5 JSP脚本元素的使用

【设计要求】
创建一个简单的JSP文件,在其中实现JSP脚本元素中声明、脚本片段、表达式的运用。
【学习目标】
(1)了解JSP脚本元素的特点。
(2)掌握JSP脚本元素的使用技巧。
【知识准备】
1.JSP声明
(1)JSP声明的格式:<%! 变量声明或方法声明 %>。
(2)声明变量或方法的使用:声明的变量或方法可以在“JSP脚本片段”或“JSP表达式”中使用。可以声明用于在其他脚本元素中使用的变量和方法,JSP容器会将其转换为Servlet类的成员变量和成员方法。
2.JSP脚本片段:<% Java脚本片段 %>
脚本片段是一段在客户端发送请求时先被服务器执行的Java代码,将被转换为 JSPService()方法中的相应代码, JSPService()方法由JSP容器自动调用,例如:

图像说明文字

它可以产生输出,并把输出发送到客户的输出流,同时也可以是一段流程控制语句。
3.JSP输出表达式:<%= 表达式 %>
将表达式的值输出到客户端,将被转换为_JSPService()方法中的输出语句。


说明:
要使修改后的JSP页面有效,必须重新启动服务器,以便重新加载修改后的JSP页面。


【实施过程】
(1)打开案例4中创建的项目chap03。
(2)在项目chap03的WebRoot文件夹下创建JSP文件declaration.jsp,其核心代码如下:

图像说明文字

第8~10行是数据声明。第14~16行是Java程序段。第18行是表达式。
(3)测试运行,打开浏览器,在地址栏输入http://localhost:8080/chap03/declaration.jsp,运行后效果如图3-23所示。

图像说明文字

【案例总结】
(1)在JSP文件中声明方法或变量时,请注意以下的一些规则。
① 声明必须以“;”结尾(Scriptlet有同样的规则,但是表达式不同)。
② 一个声明仅在一个页面中有效。如果你想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用<%@ include %>指令或元素将其包含进来。
(2)脚本片段在使用时应注意以下几个问题。
① 一个逻辑结构完整的Java程序段可以分为若干个<% %>脚本片段,脚本片段之间可以插入静态元素,但脚本片段中不能再插入脚本片段。
② <% %>内只能是合法的Java代码,而HTML标签、文本等不能直接放在其中。如下表达式就是错误的:

图像说明文字

③ 脚本片段与表达式语法格式的区别,其中脚本片段中的语句必须以分号“;”结尾,如<% out.println(”成功是优点的发挥”); %>,JSP表达式则不能以分号结尾,如<%=str %>。
(3)在JSP中使用表达式时请记住以下两点。
① 不能直接使用分号(“;”)来作为表达式的结束符;
② 表达式也能作为其他JSP元素的属性值,表达式可以很复杂,由一个或多个表达式组成,但这些表达式的顺序是从左到右。

3.2.3 案例6 JSP网页文字颜色的改变

【设计要求】
实现JSP网页中文字颜色的改变。
【学习目标】
掌握运用声明改变网页文字颜色的方法。
【知识准备】
(1)在一个JSP页面中可以有多个脚本片断,每个脚本片断代码嵌套在各自独立的一对<% 和 %>之间,在两个或多个脚本片断之间可以嵌入文本、HTML标记和其他JSP元素。如下例:

图像说明文字

(2)单个脚本片断中的Java语句可以是不完整的,但是,多个脚本片断组合后的结果必须是完整的Java语句,例如,涉及条件和循环处理时,多个脚本片断及其他元素组合的结果必须能形成完整的条件和循环控制语句。
(3)在HTML中设置文本颜色的方法如下。

图像说明文字

(4)声明一个方法,随机返回红、绿、蓝、黑4种颜色值。

图像说明文字

(5)将文本颜色设置为动态代码,如下:

图像说明文字

其中,第6行代码包含了JSP表达式,在这里的作用是调用getColor()方法获取随机颜色。
【实施过程】
通过JSP声明的方式来改变JSP网页文字颜色,下面介绍该方法的详细步骤。
(1)打开案例4中创建的项目chap03。
(2)在项目chap03的webRoot文件夹下创建JSP文件changeColor.jsp,代码如下:

图像说明文字

(3)测试运行,打开浏览器,在地址栏输入http://localhost:8080/chap03/changColor.jsp,运行效果如图3-24所示。

图像说明文字

【案例总结】
(1)_JSPService()方法中,脚本片段之外的任何文本、HTML标记以及其他JSP元素也都会被转换成相应的Java程序代码插入其中,且脚本片段和其他JSP元素的插入位置与它们在JSP页面中的原始位置相对应。
(2)在脚本片段中可以使用条件、循环、选择等流程控制语句来创建其周围的其他元素的执行逻辑,因此,在编写JSP页面时,应考虑各个元素之间的先后顺序和相互关系,特别是要考虑到将循环、条件判断等语句分布在若干个脚本片段中编写时对其邻近的其他JSP元素产生的影响。

目录

同系列书

人邮微信
本地服务
教师服务
教师服务
读者服务
读者服务
返回顶部
返回顶部