资源描述
,JSP,程序设计,感谢收看,JSP,程序设计,新世纪应用型高等教育,计算机类课程规划教材,新世纪应用型高等教育教材编审委员会,组编,主编 张文胜,感谢收看,JSP,程序设计,新世纪应用型高等教育,计算机类课程规划教材,新世纪应用型高等教育教材编审委员会,组编,主编 张文胜,感谢收看,JSP,程序设计,新世纪应用型高等教育,计算机类课程规划教材,新世纪应用型高等教育教材编审委员会,组编,主编 张文胜,感谢收看,JSP,程序设计,新世纪应用型高等教育,计算机类课程规划教材,新世纪应用型高等教育教材编审委员会,组编,主编 张文胜,感谢收看,JSP,程序设计,新世纪应用型高等教育,计算机类课程规划教材,新世纪应用型高等教育教材编审委员会,组编,主编 张文胜,感谢收看,JSP,程序设计,新世纪应用型高等教育,计算机类课程规划教材,新世纪应用型高等教育教材编审委员会,组编,主编 张文胜,感谢收看,JSP,程序设计,新世纪应用型高等教育,计算机类课程规划教材,新世纪应用型高等教育教材编审委员会,组编,主编 张文胜,感谢收看,JSP,程序设计,新世纪应用型高等教育,计算机类课程规划教材,新世纪应用型高等教育教材编审委员会,组编,主编 张文胜,感谢收看,JSP,程序设计,新世纪应用型高等教育,计算机类课程规划教材,新世纪应用型高等教育教材编审委员会,组编,主编 张文胜,感谢收看,JSP,程序设计,新世纪应用型高等教育,计算机类课程规划教材,新世纪应用型高等教育教材编审委员会,组编,主编 张文胜,感谢收看,1.1,动态网页技术,第,1,章,JSP,概述,动态网页技术的原理是:将使用不同技术编写的动态页面保存在,Web,服务器中,当客户端用户向,Web,服务器发出访问动态页面的请求时,,Web,服务器将根据用户所访问页面的类型确定该页面所使用的网络编程技术,然后将该页面提交给相应的解释引擎,解释引擎执行位于页面的脚本代码以实现不同的功能,如访问数据库、发送电子邮件和执行算术或逻辑运算等,最后,Web,服务器把解释引擎的执行结果连同页面上的,HTML,内容以及各种客户端脚本一同传送到客户端。虽然客户端用户所接收到的页面与传统页面并没有任何区别,但实际上页面内容已经经过了服务器端处理。,1.2 JSP,简介,第,1,章,JSP,概述,1.2.1,什么是,JSP,JSP,是,Java Server Pages,的缩写,是由,Sun,公司倡导,与许多其他公司一起建立的一种应用范围广泛的动态网页技术标准,是,Java,语言编写的在服务器端运行的页面。,JSP,就是在,HTML,语言中嵌入,Java,脚本,可以被看做是一种脚本语言,然而作为一种脚本语言,在,JSP,中几乎可以使用全部的,Java,类。,JSP,技术的基础是,Servlet,,包含了,Java Servlet,的所有优点,并且当,JSP,与,JavaBeans,结合时,提供了一种使内容和显示逻辑分开的简单方式。许多大型,Web,应用程序的开发需要,Servlet,、,JavaBeans,与,JSP,配合才能完成。,1.2 JSP,简介,第,1,章,JSP,概述,1.2.2 JSP,的特点,(,1,)将内容的生成和显示分离,(,2,)使用可重用的组件,(,3,)采用标签简化页面开发,(,4,)具有,Java,技术的所有优点及完善的存储管理和安全性,(,5,)一次编写各处运行,1.2 JSP,简介,第,1,章,JSP,概述,1.2.3 JSP,的运行原理,(,1,)当用户访问一个,JSP,页面时,通过客户端浏览器向服务器发送请求,这些请求里面有很多信息,包括请求的文件和用户输入的内容,另外还有本地计算机的一些信息。,(,2,),JSP,文件被,JSP,引擎编译成,Java,的,class,文件,即,Servlet,。,(,3,)将产生的,Servlet,加载到内存执行。,(,4,),Servlet,的运行结果以,HTML(,或,XML),形,式通过,Web,服务器返回给客户端的浏览器。,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3.1 JSP,运行环境的组成,(1)Web,服务器,WebLogic,是,BEA,公司的产品,是目前应用最广泛的,Web,服务器,支持,J2EE,规范,并不断地完善以适应新的开发要求。,另一个常用的,Web,服务器是,IBM,公司的,WebSphere,,支持,J2EE,规范。,在小型的应用系统或者有特殊需要的系统中,,Tomcat,是一个不错的选择,该服务器支持全部,JSP,以及,Servlet,规范,是,Sun,公司官方推荐的,Servlet,和,JSP,容器,但是目前还不支持,EJB,。由于,Tomcat,很简单,常在系统开发和测试时使用。,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3.1 JSP,运行环境的组成,(2),数据库,目前基于,JSP,的,Web,项目的开发离不开数据库的支持。在,Java,相关的开发领域中,常用的是三种数据库是,Oracle,、,DB2,和,MySQL,。有时候也使用微软公司的,SQL Server,数据库。,Oracle,数据库是,Oracle,公司的产品,是一个真正面向,Internet,计算环境的数据库系统,可移植性好、使用方便、功能强大,适用于各类大型、中型和小型环境,是一种高效率、可靠性好和高吞吐量的数据库解决方案。,IBM,公司的,DB2,也是一种常用的数据库,和,IBM,的,WebSphere,配合构成完整的企业级解决方案。,还有一个常用的免费小型数据库,MySQL,,常与,PHP,结合使用。,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3.1 JSP,运行环境的组成,(3),开发工具,Web,服务器和数据库服务器构成了发布平台,需要选择合适的开发工具以提高编码的效率。目前有两种常用的企业级集成开发环境,即,JBuilder,和,WebSphereStudio,。,JBuilder,是,Borland,公司的产品,支持几乎全部的,J2EE,组件。,IBM,公司的,WebSphereStudio,是一套集成开发环境,同时集成,Web,服务器功能。,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3.2,安装,JDK,安装,JDK,是进行,JSP,开发的一个重要步骤,也是安装,JSP,引擎(如,Tomcat,、,JBoss,和,Weblogic,等)的前提。一般的,JSP,引擎是由,Java,语言编写的。,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,在,Windows,平台上安装,JDK,比较简便,步骤如下:,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3.3,安装,Tomcat,在众多的,Web,应用服务器中,,Apache,开源社区的,Tomcat,是最常用的,Web,服务器之一。,Tomcat,是,Apache,软件基金会,(Apache Software Foundation),的,Jakarta,项目中的一个核心项目,由,Apache,、,Sun,和其他一些公司及个人共同开发而成。由于有了,Sun,的参与和支持,最新的,Servlet,和,JSP,规范总是能在,Tomcat,中得到体现。,Tomcat,技术先进,性能稳定,而且免费,因而深受,Java,爱好者的喜爱,并得到了部分软件开发商的认可,成为目前比较流行的,Web,应用服务器。用户可以在“,tomcat.apache.org”,找到各个版本的,Tomcat,服务器。本书以,Tomcat 6.0.35,为例,支持最新的,Servlet 2.5,和,JSP 2.1,规范。,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,在,Windows,平台上安装,Tomcat,有两种方式,即安装版和解压版。首先要到“,tomcat.apache.org”,网站下载这两个版本。进入,Tomcat,主页面后,如图,1-12,所示,在页面左面的下载链接中选择要下载的,Tomcat,版本,此处选择“,Tomcat 6.0”,,单击进入,Tomcat 6.0,的下载页面,如图,1-13,所示。,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.Tomcat6.0,安装版的安装步骤,()运行安装文件“,apache-tomcat-6.0.35.exe,”,单击【Next】按钮,出现如图,1-14,所示界面。,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.Tomcat6.0,安装版的安装步骤,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.Tomcat6.0,安装版的安装步骤,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.Tomcat6.0,安装版的安装步骤,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.Tomcat6.0,安装版的安装步骤,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.Tomcat6.0,安装版的安装步骤,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.Tomcat6.0,安装版的安装步骤,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3.4 Tomcat 6,的目录结构,Tomcat 6,安装后的目录层次结构如图,1-23,所示:,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3.4 Tomcat 6,的目录结构,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3.5,建立第一个,JSP,应用,利用,搭建好了,Apache,的,Tomcat,可建立一个,JSP,应用。,Tomcat,是一个免费的,Web,服务器,能处理,HTML,、,JSP,和,Servlet,的请求。步骤如下:,(,)启动,Tomcat,服务器,安装,版的用户可以单击,windows,的“开始”菜单,选择【所有程序】【Apache Tomcat 6.0 Tomcat6】【Configure Tomcat】,弹出如图,1-24,所示对话框,单击【Start】按钮,启动,Tomcat,;或单击【Monitor Tomcat】,任务栏会出现服务器图标(红色)后,选中图标后右击,选择“,Start service,”,启动,Tomcat,,图标变为绿色。,解,压版的用户在,Tomcat,已解压的安装目录下的,bin,子目录中,运行处理文件“,startup.bat,”,启动,Tomcat,。,(,)在文本编辑器中编写,JSP,代码,保存时注意扩展名为“,.jsp,”,文件名为“,HelloJsp.jsp,”。,1.3 JSP,运行环境的构建,第,1,章,JSP,概述,1.3.5,建立第一个,JSP,应用,2.1 HTTP,协议,第,2,章,JSP,基础知识,2.1.1 HTTP,协议概述,HTTP,协议(,Hyper Text Transfer Protocol,)是超文本传输协议的缩写,是互联网上应用最为广泛的一种网络协议,所有的,WWW,(,World Wide Web,,万维网)文件都必须遵守这个标准。设计,HTTP,最初目的是为了提供一种发布和接收,HTML,页面的方法。,简单来说,,HTTP,协议就是一个基于应用层的通信规范。双方要进行通信,都要遵守一个规范,即,HTTP,协议。,Internet,的基本协议是,TCP/IP,协议,然而在,TCP/IP,模型,最上层的是应用层(,Application layer,),包含所有高层的协议。高层协议有文件传输协议,FTP,、电子邮件传输协议,SMTP,、域名系统服务,DNS,、网络新闻传输协议,NNTP,和,HTTP,协议等。,2.1 HTTP,协议,第,2,章,JSP,基础知识,2.1.2 HTTP,工作过程,HTTP,协议定义,Web,客户端如何从,Web,服务器请求,Web,页面,以及服务器如何把,Web,页面传送给客户端。,HTTP,协议采用了请求,/,响应模型。客户端向服务器发送一个请求报文,包含请求的方法、,URL,、协议版本、请求头部和请求数据。服务器以一个状,态行作为响应,响应的内容包括协议的版本、成功或者错误,代码、服务器信息、响应头部和响应数据。图,2-1,所示为这种,请求,/,响应模型。,2.1 HTTP,协议,第,2,章,JSP,基础知识,HTTP,请求,/,响应的步骤如下:,()客户端连接到,Web,服务器,()发送,HTTP,请求,()服务器接受请求并返回,HTTP,响应,()释放,TCP,连接,()客户端浏览器解析,HTML,内容,2.1 HTTP,协议,第,2,章,JSP,基础知识,2.1.3,利用,Telnet,观察,HTTP,协议的通讯过程,Telnet,是,Internet,远程登录服务的标准协议和主要方式,为用户提供了在本地计算机上登录远程主机工作的能力。利用,MS,的,Telnet,工具,通过手动输入,HTTP,请求信息,向服务器发出请求,服务器接收、解释和接受请求后会返回一个响应并在,Telnet,窗口上显示出来,从而从感性上加深对,HTTP,协议通讯过程的认识。步骤如下:,2.1 HTTP,协议,第,2,章,JSP,基础知识,2.1.3,利用,Telnet,观察,HTTP,协议的通讯过程,2.1 HTTP,协议,第,2,章,JSP,基础知识,2.1.3,利用,Telnet,观察,HTTP,协议的通讯过程,2.1 HTTP,协议,第,2,章,JSP,基础知识,2.1.3,利用,Telnet,观察,HTTP,协议的通讯过程,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,2.2.1,安装,Eclipse,Eclipse,是著名的跨平台的自由集成开发环境(,IDE,)。最初主要用来作为,Java,语言开发工具,但是目前亦有人通过插件使其作为其他计算机语言如,C+,和,Python,的开发工具。,Eclipse,最初是由,IBM,公司开发用于替代商业软件,Visual Age for Java,的下一代,IDE,开发环境,,2001,年,11,月贡献给开源社区,现在由非营利软件供应商联盟,Eclipse,基金会(,Eclipse Foundation,)管理。,2001,年,11,月,7,日,,Eclipse 1.0,发布。目前已知的,Eclipse,各版本代号如下:,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,2.2.2,使用,Eclipse,开发,Web,项目,Eclipse,开发,Web,项目的步骤如下:,()在,Eclipse,中整合,Tomcat 6,容器,在,Eclipse IDE,中,选择,Eclipse,菜单的【Windows】【Preferences】【Server】【Runtime Environment】命令,单击【Add】按钮添加应用程序服务器。如图,2-9,所示。,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,在下一步中,选择【Apache】,Apache Tomcat v6.0,选项,单击【Next】按钮,如图,2-10,所示。,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,设置,Tomcat,的安装路径,单击【Browse】按钮,选择,Tomcat,所在的位置,同时配置所要使用的,JRE,路径,单击【Finish】按钮完成配置,如图,2-11,所示。,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,(,2,)创建,Web,工程,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,(,2,)创建,Web,工程,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,(,2,)创建,Web,工程,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,(,2,)创建,Web,工程,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,(,3,)部署,Web,工程,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,2.2.3 Eclipse,的调试功能,在编写程序过程中,调试是一个非常重要的环节。有人这样说:“程序是调试出来的,而不是写出来的。”也有人说:“调试是一门艺术”。程序员常常遇到一个,bug,,调试了半天都没结果,于是只好请“高手”过来帮忙,迅速搞定之后不免会问,怎么调试得这么快?其实调试是需要技巧的,当然经验可以帮助程序员快速定位问题。下面以一个,Java,程序为例介绍,Eclipse,的调试步骤。在调试项目之前,要保证项目能够正常编译和运行。调试代码“,debugtest.java,”如下:,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,(,1,)设置断点,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,(,2,)运行已设置断点的程序,不过运行方式要改为启动调试状态方式。,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,(,3,)准备调试。,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,(,4,),Debug,视图显示在调试视图(,Debug Perspective,)的左上侧。,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,(,5,)单击快捷按钮或使用快捷键(主要使用,F6,和,F5,)即可进行调试工作。,2.2 Eclipse,工具的使用,第,2,章,JSP,基础知识,(,6,)调试完毕后,一定要使用,Terminate,(,F12,)关闭虚拟机。同时在,Breakpoints,视图选择“,Remove All Breakpoints,”,移除所有断点。,3.1 JSP,语法与对象,第,3,章,JSP,语法与对象,3.1.1,声明,3.1 JSP,语法与对象,第,3,章,JSP,语法与对象,3.1.2,表达式,【语法】,expression,【功能】表达式(,expression,)是指一个在脚本语言中定义的表达式在运行后被自动转化为字符串,然后插入到这个表达式在,JSP,文件中的位置上显示。,JSP,中的表达式可以被看做是一种简单的输出形式,表达式的值将直接输出到页面。需要注意的是表达式一定要是,Java,的合法表达式。,3.1 JSP,语法与对象,第,3,章,JSP,语法与对象,3.1.3 JSP,脚本(,Scriptlet,),【语法】,code fragment,【功能】所谓脚本代码,即,Scriptlet,,是,JSP,中的代码部分。脚本代码被插入到,JSP,所生成的目标,Servlet,的,Service,方法中,可包含多个,JSP,语句、变量和表达式。在该部分中可以使用几乎任何有效的程序片段,只要符合,Java,本身的标准语法即可。通常主要的程序也是写在脚本代码中。,Scriptlet,主要用于:,()声明将要用到的变量。,()显示表达式。,()使用内部对象或,jsp,:,useBean,声明过的对象编写,JSP,程序。,3.1 JSP,语法与对象,第,3,章,JSP,语法与对象,3.1.4,注释,为了便于程序的阅读,需要在编写代码时写注释。,JSP,中的注释可分为两种:一种是在客户端显示的注释,被称为,HTML,注释;另外一种就是客户端看不到,只给开发人员专用的注释,被称为隐藏注释。,1.HTML,注释,【语法】!,-,注释,-,【功能】发送到客户端的,HTML,文本中,可以通过查看源代码看到,并且所有嵌入其中的,JSP,脚本将被编译执行。,3.1 JSP,语法与对象,第,3,章,JSP,语法与对象,3.1.4,注释,2.,隐藏注释,【语法】,-,注释,-,【功能】隐藏注释为,JSP,的标准注释,写在,JSP,程序中,包含在其中的所有内容将被,JSP,编译器忽略,返回的,HTML,源代码中也看不到,隐藏注释主要供编程人员使用。,3.1 JSP,语法与对象,第,3,章,JSP,语法与对象,3.1.5 JSP,指令,JSP,指令是为,JSP,引擎设计的,不直接产生输出,主要用来提供与整个,JSP 网页相关的信息,并且用来设定JSP,网页的相关属性,page,指令,【语法】,page,属性列表,【功能】设定整个,JSP,页面的属性和相关功能。在一个,JSP,页面中,,page,指令可以出现多次,但是每一种属性却只能出现一次(,import,属性除外),重复的属性设置将覆盖先前的设置。在,page,指令中定义的属性适用于该,JSP,页面以及所有通过,include,指令或者,jsp,:,include,动作包含的静态文件,但是不能用于动态文件。,3.1 JSP,语法与对象,第,3,章,JSP,语法与对象,3.1.5 JSP,指令,include,指令,【语法】,include file,URL,【功能】,JSP,文件编译时将,URL,所指文件静态包含进来并且展开。这个包含的过程是静态的,而包含的文件可以是,JSP,网页、,HTML,网页、文本文件或一段,Java,程序,被包含文件与包含它的,JSP,文件一起参加编译。,3.1 JSP,语法与对象,第,3,章,JSP,语法与对象,3.1.6,动作指令,jsp,:,xxx,表示动作,可以用来控制,JSP,引擎的动作。,.,jsp,:,include,指令,【语法】,jsp,:,include,relativeURL,flush,true,【功能】请求时,将指定文件的内容插入到服务器的响应输出中。,jsp,:,include,元素允许包含动态和静态文件,产生的结果是不尽相同的。如果包含进来的是静态文件,则只是把静态文件的内容加到,JSP,页面中;如果包含进来的是动态文件,则这个被包含的文件也会被,JSP,容器编译执行。,jsp:include,能够同时处理动态和静态两种文件,因此使用时不需要判断此文件是动态还是静态的,从而方便了编程。,3.1 JSP,语法与对象,第,3,章,JSP,语法与对象,3.1.6,动作指令,jsp:forward,指令,【语法】,jsp:forward page,relativeURL,【功能】用于引导客户端的请求到另一个页面或另一个,Servlet,中去。,【举例】,3.1 JSP,语法与对象,第,3,章,JSP,语法与对象,3.1 JSP,语法与对象,第,3,章,JSP,语法与对象,3.2 JSP,内部对象,第,3,章,JSP,语法与对象,3.2.1 request,对象,【说明】request对象代表请求对象,包含所有客户端传送给服务器端的数据,如请求的来源、,Cookies,和与请求相关的参数值等,其作用域就是一次,request,请求。,【常用方法】request对象的常用方法如表,3-1,所示。,3.2 JSP,内部对象,第,3,章,JSP,语法与对象,3.2.2 response,对象,【说明】response对象封装了,JSP,的响应,主要功能是将服务器处理后的结果传回到客户端输出,由于,JSP,中有,out,对象可以方便地向客户端输出内容,,response,对象常用于与,Cookie,有关的操作及网,页的重定向。,【常用方法】,response,对象的常,用方法如表,3-2,所示。,3.2 JSP,内部对象,第,3,章,JSP,语法与对象,3.2.3 session,对象,【说明】session对象用来保存每个用户信息,以便追踪每个用户的状态。,session,对象和客户端的会话紧密联系在一起,由服务器自动创建。用此项机制可以识别每一个用户,然后针对每一个用户的要求,给予正确的响应。,session,对象的生命周期在客户端向该页面发出请求时建立,在,session,对象到期或者被终止时撤销。,【常用方法】session对象的常用方法如表,3-3,所示。,3.2 JSP,内部对象,第,3,章,JSP,语法与对象,3.2 JSP,内部对象,第,3,章,JSP,语法与对象,3.2.4 application,对象,【说明】,application,对象为多个应用程序保存信息,每个用户都使用同一个,application,对象。,application,对象拥有,application,的使用范围,即其生命周期是由服务器启动开始至服务器关闭为止。,【常用方法】application对象常用方法如表,3-4,所示。,3.2 JSP,内部对象,第,3,章,JSP,语法与对象,3.2.5 out,对象,【说明】out对象是,JSP,使用最频繁的对象,能把结果输出到网页上。最常使用的方法是,out.println(),和,out.println(),,两者最大的差别在于,println(),在输出的数据后面会自动加上换行符。但这个空行只是在输出的,html,代码的空行,在浏览器解析时这个空行将被忽略,要想在页面中实现换行,需要通过“,out.println(),(,br,)”来实现。,【常用方法】out对象的常用方法如表,3-5,所示。,3.2 JSP,内部对象,第,3,章,JSP,语法与对象,3.2.5 out,对象,3.2 JSP,内部对象,第,3,章,JSP,语法与对象,3.2.6 exception,对象,【说明】JSP文件执行过程中发生错误时会产生异常,,exception,对象可以对异常,进行处理。,exception,对象并不是在每一个,JSP,页中都能够使用。若要使用,exception,对象,必须在,page,指令中设定“,page isErrorPage,true,”才能使用,否则编译时会产生错误。,【常用方法】exception对象的常用方法如表,3-6,所示。,3.2 JSP,内部对象,第,3,章,JSP,语法与对象,3.2.7,其他内部对象,1.config,对象,【说明】,config,对象表示,Servlet,的配置,提供对初始化,JSP,的配置数据的访问。,【常用方法】,config,对象的常用方法如表,3-7,所示。,3.2 JSP,内部对象,第,3,章,JSP,语法与对象,3.2.7,其他内部对象,2.pageContext,对象,【功能】,pageContext,对象能够存取其他隐含对象。当隐含对象本身支持属性时,,pageContext,对象提供存取那些属性的方法。,【常用方法】,pageContext,对象的常用方法如表,3-8,所示。,3.2 JSP,内部对象,第,3,章,JSP,语法与对象,3.2.7,其他内部对象,3.page,对象,【说明】page对象是,JSP,文件产生的类对象,更准确地说代表,JSP,被编译后的,Servlet,。因此,,page,对象可以调用,Servlet,类所定义的方法。,3.3 Cookie,第,3,章,JSP,语法与对象,3.3.1 Cookie,Cookie,是在,HTTP,协议下,服务器维护客户端信息的一种方式。浏览器与,Web,服务器之间是使用,HTTP,协议进行通信的,当用户发出页面请求时,,Web,服务器只是简单地进行响应,然后就关闭这个连接,并不记录这次连接的状态。因此当一个页面请求发送到,Web,服务器时,无论该用户是否是第一次来访,服务器都会把它当做是第一次来对待,这种实现方法简单而有效,但在需要保存连接状态的情况下有着明显的缺陷,,Cookie,可以有效地解决这个问题。,Cookie,实际上是一段纯文本信息,由服务器随网页一起发送到浏览器端,并保存在浏览器端硬盘中的指定目录下。当用户访问某个,Web,服务器时,,Web,服务器将要求浏览器查找并返回先前发送给浏览器的,Cookie,信息来识别上次连接的状态。,Cookie,对象通常用来在浏览器端保存连接过程中的一些参数,如用户名和密码等。,3.3 Cookie,第,3,章,JSP,语法与对象,3.3.1 Cookie,使用,Cookie,时应注意以下问题:,()大多数浏览器允许用户禁止,Cookie,的使用,如果在程序中必须使用,Cookie,,一定要事先通知用户。,(),Cookie,对象在创建时需要指定名称和值。其中,名称不能包含逗号、分号和空,格,也不能以“”符号开头。,()当,Cookie,对象被保存在浏览器端时,可以指定,Cookie,的有效时间,当保存时间,超过有效时间时,,Cookie,对象会被浏览器删除。,()某些重要的信息不要使用,Cookie,来存储,因为,Cookie,在浏览器端是以不加密的,文件形式存放在硬盘上的。,3.3 Cookie,第,3,章,JSP,语法与对象,Cookie,对象常用方法,3.4 JSP,程序的调试,第,3,章,JSP,语法与对象,3.4.1,常见错误,常见错误有以下几种:,()运行环境相关错误,找不到服务器:,Tomcat,安装和启动问题等。,不能解析,JSP,代码:,JDK,环境变量路径设置问题。,不能执行,Servlet,代码:,servlet.jar,没有加到路径中。,文件修改后不起作用:静态包含的文件被修改等。,3.4 JSP,程序的调试,第,3,章,JSP,语法与对象,3.4.1,常见错误,()语法错误,关键字、类名和内置对象名写错(严格区分大小写)。,变量没有定义、重复定义、没有初始化和名字写错。,方法名字错误、参数错误和没有定义返回值。,类型不匹配,多数是因为没有进行类型转换。,需要的类没有导入,文件名和类名不一致。,结构性错误,如缺少“”、缺少“)”、缺少“”、缺少“;”、标签或指令错误以及异常没有处理等。,出现中文标点符号,字符串常量格式不对。,3.4 JSP,程序的调试,第,3,章,JSP,语法与对象,3.4.1,常见错误,()运行期间错误,请求的资源不可用,如资源(文件、数据库、驱动程序或包)本身不存在、没有导入需要的资源、书写不正确以及路径不正确等。,,对没有实例化的对象进行操作。,无法获取表单的值,如变量名字不正确、范围不正确等。,单击提交按钮不起作用。按钮是而不是或属性没有定义值等。,提交失败。属性值本身有问题。,3.4 JSP,程序的调试,第,3,章,JSP,语法与对象,3.4.2,调试方法,()设置,alert,弹出窗口判断代码运行到哪里停止了,或者观察某句代码是否执行。,(),JSP,中使用打印“,out.println,(,anyString,)”或者对,Java,语句设置断点观察执行情况。,()用,debug,单步执行来查找问题所在。,()查看后台的错误信息,查找一下,JSP,编译成的,Servlet,文件,根据错误信息里提示的错误所在行数找到,JSP,出错位置。,4.1,简易计算器,第,4,章,JSP,基本语法综合实例,4.1.1,简易计算器程序分析,进入,Calculator,目录,执行,index.jsp,显示简易计算器的主页,页面上有“登录”和“小计算器”两个链接,如果在没登录时单击计算器链接,则进入登录页面(,login.htm,)。,登录页面要求输入用户名和密码,输入后调用,login.jsp,进行处理。,login.jsp,判断用户名和密码,如果正确则调用,Calculator.jsp,,否则返回,login.jsp,。,Calculator.jsp,要求用户输入两个操作数,单击【加法】、【减法】、【乘法】和【除法】按钮,调用,action.jsp,进行计算。,显示结果。,4.1,简易计算器,第,4,章,JSP,基本语法综合实例,4.1.2,简易计算器的文件目录结构,简易计算器的文件目录结构如表,4-1,所示。,4.1,简易计算器,第,4,章,JSP,基本语法综合实例,4.1.3,简易计算器界面,1.,计算器主界面,4.1,简易计算器,第,4,章,JSP,基本语法综合实例,4.1.3,简易计算器界面,2.,登录界面,4.1,简易计算器,第,4,章,JSP,基本语法综合实例,4.1.3,简易计算器界面,3.,计算器界面,4.1,简易计算器,第,4,章,JSP,基本语法综合实例,4.1.3,简易计算器界面,4.,计算结果界面,4.2,猜数游戏,第,4,章,JSP,基本语法综合实例,4.2.1,猜数游戏程序分析,进入,guessNumber,目录,执行,index.jsp,显示猜数游戏的主页,系统随机生成一个,1,100,之间的数,要求在文本框中输入猜的数,调用处理页面(,process.jsp,)。,处理页面进行判断,如果猜的数等于生成的数,则调用,ok.jsp,;如果猜的数小于生成的数,则调用,smaller.jsp,;如果猜的数大于生成的数,则调用,larger.jsp,。,在,smaller.jsp,中,提示猜的数小于生成的数,并要求重新输入,将重新猜的数提交给处理页面(,process.jsp,)重新判断。,在,larger.jsp,中,提示猜的数大于生成的数,并要求重新输入,将重新猜的数提交给处理页面(,process.jsp,)重新判断。,在,ok.jsp,中提示已经猜中。,4.2,猜数游戏,第,4,章,JSP,基本语法综合实例,4.2.2,猜数游戏程序的目录结构,4.2,猜数游戏,第,4,章,JSP,基本语法综合实例,4.2.3,猜数游戏界面,猜数游戏的主页,4.2,猜数游戏,第,4,章,JSP,基本语法综合实例,4.2.3,猜数游戏界面,2,smaller.jsp,的界面,4.2,猜数游戏,第,4,章,JSP,基本语法综合实例,4.2.3,猜数游戏界面,3,larger.jsp,的界面,4.2,猜数游戏,第,4,章,JSP,基本语法综合实例,4.2.3,猜数游戏界面,4,ok.jsp,的界面,5.1 JavaBean,介绍,第,5,章,JSP,与,javaBean,什么是,JavaBean,?,JSP,和,JavaBean,结合使用是目前比较流行的,Web,开发技术。,JavaBean,是一个可以重复使用的、跨平台的组件。,我们可以把,JavaBean,想象为一个黑盒子,如电视,不必了解其内部的构造和运行原理,只需要利用面板上的按钮即可实现调台和调音量等功能,这体现了组件最主要的特征,即信息封装,外界不必了解其内部实现,只需通过接口对组件进行访问。电视的面板就相当于接口。,JavaBean,组件是,Java,类,这些类遵循一定的标准,通常封装成为具有特定功能或者处理某个业务的对象,这样在,JSP,页面内即可访问,JavaBean,以及其方法。,5.2,在,JSP,中使用,JavaBean,第,5,章,JSP,与,javaBean,关于如何在,JSP,中使用,JavaBean,,我们来看一个例子(例程,5-1,)。本例的源代码在本书配套光盘的“源代码,ch5-1,”目录下,读者只需把整个,ch5-1,目录拷贝到,Tomcat,的,Webapps,目录下即可发布这个应用了。,例程,5-1,是一个用户注册的例子,游客首先填写注册信息,然后提交,出现确认注册信息页面。由于尚未学习如何连接数据库,本例暂不将用户的注册信息存入数据库。,5.2.1,使用,JavaBean,的实例,5.2,在,JSP,中使用,JavaBean,第,5,章,JSP,与,javaBean,1.,创建应用程序目录,配置用程序,5.2,在,JSP,中使用,JavaBean,第,5,章,JSP,与,javaBean,1.,创建应用程序目录,配置用程序,
展开阅读全文