教学课件·JSP程序设计实用案例教程_第1页
教学课件·JSP程序设计实用案例教程_第2页
教学课件·JSP程序设计实用案例教程_第3页
教学课件·JSP程序设计实用案例教程_第4页
教学课件·JSP程序设计实用案例教程_第5页
已阅读5页,还剩293页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、开发体系与环境配置 本章目标:静态网页与动态网页的概念JSP与其他动态网页技术的区别JSP运行环境的安装配置JSP运行机制JSP开发工具静态网页与HTML 静态网页由单纯的超文本标记语言(HyperTextMarkupLanguage,HTML)进行编写,在存储时以HTML方式(文件扩展名为.htm/.html)存储。网络中浏览的静态网页都是一个个的HTML文件,这些网页中可以包含文字、图片、动画和声音,以及能够跳转到其他文件的超级链接。所有的这些东西都是以超文本标记语言方式进行编写。HTML文件通过所包含的特殊命令,来告诉用户的浏览器应该如何显示文本、图像以及网页的背景。这些命令加入到文本文

2、件中,被称为HTML标记。如果在浏览器显示网页时查看网页的文本,可以看见在尖括号中的HTML标记。2动态网页动态网页与静态网页从设计到实现都有所不同。动态网页是在HTML中使用特殊的程序编码来设计和完成。网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后Web发展的大趋势。编码可以使用编程语言,如C、Java、Visual Basic等,也可以使用专门的脚本(Script)语言,如VBScript、JavaScript、PHP等。 这样,在存储时也就需要使用不同的文件扩展名,如.asp、.jsp、.php等。因此在浏览时,除了需要有浏览器的支持外,还需要有支持相应的

3、系统环境(如ASP、JSP或PHP)对其中的编码进行编译、解释,在经编译、解释后才能在浏览器中显示出正确的内容。JSP 简介JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。JAVA平台相关的术语: (1)J2SE: Java 2 Standard Edition(JAVA 2标准版),适用于桌面系统的Java 2平台标准版, (2)J2EE:Java 2 E

4、nterprise Edition(JAVA 2企业版),是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。 (3)J2ME:Java 2 Micro Edition(JAVA2精简版,也称为袖珍版),Java 2平台中适用于小型设备和智能卡的版本。 (4)JSDK:Java Software Development Kit,和JDK以及J2SE等同。 (5)J2SDK:Java 2 SDK,即Java 2软件开发工具包,包括运行环境、编译工具及其它工具、源代码等,基本上和J2SE等同。 (6)JDK: JDK现在是指J2SDK(J2SE Developm

5、ent Kit),同时,J2RE也改称为JRE。 (7)JRE:Java Runtime Environment(Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。 (8)VM:Java虚拟机(Java Virtual Machine,JVM)是Java可移植性的关键。 JSP是J2EE体系的一种技术,主要用于开发WEB应用。 JSP的优势 程序可以跨台平执行。目前几乎所有平台上都可以见到一致的java servlet/jsp的Web Server/Application Serve系统。JSP可以让开发人员在任意环境做开发,在任意环境进行系统部署,

6、在任意环境扩展应用程序。多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具而且有许多可以免费得到,并且其中的许多已经可以顺利的运行于多种平台之下。强大的的可伸缩性。从只有一个小的jar文件就可以运行servlet/jsp到由多台服务器进行集群和负载均横,到多台Application进行事务处理、消息处理等。JSP的不足 跨平台的功能和极度的伸缩能力极大的增加了产品的复杂性。也就是说,它在扩展时需要分成多少块,那么java系统中就有多少种产品。所以用户要以看到jre、jdk、jsdk、jswdk等,实际上它们只要有效的搭配在一起,就可以产生强大的效能,密不可分,但这同时使应用

7、程序变得非常复杂。JSP程序调试困难。JSP页面首先被转化为一个.java文件(servlet),然后再被编译。这样,出错信息实际上指向的是经过转化的那个.java文件而不是jsp本身。J S P运行环境为了能够编写JSP程序,至少需要具备以下两个基本条件:在计算机上安装Java 2,并进行相关的环境变量的设置。在计算机上安装JSP引擎,比如J2EE服务器、Resin和Tomcat服务器等。安装J DK注意:CLASSPATH中的“.” 它表示当前目录,一定要输入,否则会出现错误。将C:j2sdk1.4.2添加到Path中,除非是在最后,否则必须在后面加上“;”号必须打开新的命令提示符窗口,新

8、环境变量设置才能生效。 变量名 变量值说明JAVA_HOMEC:j2sdk1.4.2JDK安装目录path% JAVA_HOME %binJAVA实用程序的位置CLASSPATH.;%JAVA_HOME%libdt.jar;%JAVA_HOME %libtools.jar类和包文件的搜索路径 安装和配置Tomcat服务器 注意:如果Tomcat不能正常启动,检查JDK环境变量的设置 第一个JSP程序1.first.jsp % for(int i=0;i第一个JSP程序 2建立应用目录注意:目录名是区分大小写的,WEB-INF不能写成web-inf。JSP是用JAVA写的,所以它是大小写敏感的,

9、用过其他编程语言的人最容易犯这个错误。在Tomcat中,整个应用一般在/webapps目录下在浏览器的地址栏中输入的访问JSP的地址也是区分大小写的.如http:/localhost:8080/demo/t.jsp与http:/localhost: 8080/Demo/t.jsp是不一样的浏览器在默认情况下会把浏览过的网页保存在缓冲区中,在调试时,一般不希望这样.把下面的脚本加入程序中,就可防止JSP或SERVLET中的输出被浏览器保存在缓冲区中 JSP运行机制 所有的JSP程序在首次载入时都被翻译成Servlet文件,然后再运行的,JSP引擎耀完成以下操作:判断与JSP文件对应的类的名字 如

10、果该类不存在或比.jsp文件的老 ,容器就会重新创建一个等价的Servlet类并编译它 如果Servlet类存在只是其实例并末运行,容器就载入该Servlet类并创建一个实例 容器启动一个线程在载入的实例中处理当前Http请求 服务器将运行结果以HTML形式作为响应返回给客户端浏览器。标记Servlet第一个请求产生应答以后的请求被转换为图1-19 JSP运行机制JSP开发工具-JCreatorJCreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能。JSP开发工具-Eclipse Eclipse是一个开放可扩展的集成开发环境(IDE),它不仅可以用于J

11、ava的开发,通过开发插件,还可以构建其他的开发工具。Eclipse是开放源代码的项目,并可以免费下载,它的官方网址是。JSP开发工具-Dreamweaver Dreamweaver是Macromedia公司开发的用于网站设计和网页制作的软件,它提供了强大的可视化布局工具、应用开发功能和代码编辑支持,使设计和开发人员能高效地设计、开发和维护基于标准的网站和应用程序。 HTML基础 HTML概述 一个HTML文档的基本结构如下: HTML文件开始 文件头开始 文件头内容 文件头结束 文件体开始 文件体内容 文件体结束 HTML文件结束程序代码 2-1.htm标题标记 HTML中的标题元素使用格式

12、: #代表1、2、3、4、5、6中一个。它支持ALIGN属性,用它可以指定排版格式,其属性值有:LEFT、RIGHT和CENTER。如果不给出ALIGN的属性值,缺省值为LEFT。程序代码 2-2.htm段落标记分段元素P用来定义文档中的一个段落,段落的缩进、第一个字前面的空格及其他特性通常由浏览器确定。是段落的结尾,单独一个会添加一个空行。程序代码 2-3.htm换行标记换行元素BR在HTML文档中增加一个换行,指示浏览器执行一个换行动作,与P元素不同,它只是换行,其他字符和段落格式不变。BR元素没有结束标记。程序代码 2-4.htm段落级标记如果希望文本以预定义的格式显示,可以使用PRE元

13、素。此元素用于定义文本的格式。文本在浏览器中显示时遵循在HTML源文档中定义的格式。 程序代码 2-5.htm字体标记 标记用来设置文档的字体,通过改变其属性可以对字体进行不同的设置。其常用的属性包括:SIZE、COLOR和FACE。其中SIZE用来指定字符的大小,COLOR用来指定字符的颜色,FACE用来指定一种字体名或一种字体列表。程序代码 2-6.htm图片标记IMG标记用于将图像插入到HTML文档中。可以将IMG标记放置在要显示图像的位置。语法为:其中SRC是属性,而值是指定图像文件位置的URL。IMG标记的ALIGN属性可以用于调整图像相对于周围文本的对齐方式。 程序代码 2-7.h

14、tm超级链接超链接主要通过锚点元素A来实现。A元素可以支持较多的属性,其中最重要的是HREF和NAME属性。1、HREF属性 如果A元素中包含HREF属性,则该元素的起始标记和结束标记之间的文本就变成了超文本(Hypertext)。在浏览器中,超文本通常会以不同颜色并带下划线的字符显示。格式为: 或 #identifier是NAME锚点。 2、NAME属性 如果A元素带有NAME属性,则意味着此锚点是链接的目标。NAME属性的值是锚点的标志。此标志可以是任意字符串,但在HTML文档内必须惟一,NAME属性所代表的锚点在浏览器中没有任何显示。程序代码 2-8.htm有序列表有序列表是指各列表项之

15、间是有顺序的,从1、2、3一直延伸下去。有序列表的基本格式为: 其中, 标签用来建立一个有序列表, 用来增加列表项。 开始标签和结尾标签都是必选的,即每个列表项的结束就是下一个列表项的开始,建好的整个列表项会与上下的文本之间有一个空行,列表项向右缩进并左对齐,各列表项之前都带有顺序号。 程序代码 2-9.htm无序列表无序列表是指各列表项间没有顺序关系,只是利用列表方法来呈现资料,在各条列前面均有一个项目符号。无序列表的基本格式为: 其中 标签用来建立一个无序列表, 用来增加列表项。无序列表通过或的type属性来定义左端的符号类型,该符号可以是disc(实心圆点)、square(方块)、自定义

16、图片等,默认为实心圆点。 程序代码 2-10.htm块级元素块级元素包括DIV和SPAN两种标记。DIV称为层标记,有时也称为块标记。利用DIV标记和CSS的定位技术可以做出相当出色的效果。可以定义跨段落的内容块;定义段落内的内容块程序代码 2-11.htm水平标尺水平标尺标记用于在页面上绘制一条水平线。可借助于下列属性控制水平线。它只有开始标记,没有结束标记,且不包含任何内容程序代码 2-12.htmMARQUEE标记 使用的基本语法是:xx,显示的效果是xx就会从屏幕一边跑到另外一边。 程序代码 2-13.htm1.基本表格表格是一种能够有效的描述信息的组织方式,由行、列和单元格组成。它可

17、以将文字和图片等那同按照行和列排列起来,可以很好地控制页面布局。 HTML中使用 标签创建表格,其基本格式为: 表标记 行标记 单元格标记 标题标记 列标记程序代码 2-14.htm合并单元格1. 在 或 标记中使用 COLSPAN 属性,可以设置单元格所跨的列数,例如COLSPAN=3表示跨3列。2. 在 或 标记中使用 ROWSPAN 属性,可以设置单元格所跨的行数,例如ROWSPAN=3表示跨3行。程序代码 2-15.htm单元间隔和单元填充CELLSPACING 属性定义单元格之间的间距(以像素为单位)。CELLPADDING 属性定义表的单元格边界与单元格内容之间的间距 (以像素为单

18、位)。程序代码 2-16.htm框架结构 框架将 Web 浏览器分成多个不同的区域,每个区域都可以显示独立、可滚动的页面。例如,可以在网页中使用三个框架,一个显示标题,一个用作导航菜单,一个显示数据。使用了框架结构的HTML文档基本格式为:标题部分 其中,标签用来定义一个框架容器 ,标签用来定义每一个框窗内的参数属性。当用户使用的浏览器版本太低不支持框架功能时,将看到一片空白。为了避免这种情况,可使用这个标签。 在框架页面中每个子窗口内对应一个FRAME语句,该语句中的SRC属性指明了链接的HTML,该文件将显示在FRAME对应的窗口中。如果该HTML文件含有超链接,当用户单击该链接时,链接的

19、网页在哪里显示呢?如果没有指定,则在原来的窗口中打开;如果要指定在哪个子窗口中打开,这时就需要使用TARGET属性来实现了。程序代码 2-17.htm top.htm bottom.htm表单 网页中具有可输入表项及项目选择等控制所组成的栏目称为表单, 表单的功能是收集用户信息实现系统与用户交互。比如注册页面就是一个十分典型的表单页面。表单信息的处理过程如下:当单击表单中的提交按钮时,表单中的信息就会上传到服务器中,然后由服务器端的应用程序(例如CGI,ASP,PHP,JSP等)进行处理,处理后将用户提交的信息存储在服务器端的数据库中,或者将有关信息返回到客户端浏览器上。表单语法表单语法如下:

20、表单内容其中:ACTION此属性指定处理提交的表单的脚本的位置。语法为:ACTION=URL,若是这个属性没有设定,网页本身会被当作action属性值 。MEDTHOD此属性指定向服务器发送数据的方法。如果值为GET,浏览器将创建一个请求,该请求包含页面URL、一个问号和表单的值。浏览器会将该查询返回给URL中指定的脚本,以进行处理。如果将值指定为POST,表单上的数据会作为一个数据块发送到脚本,而不使用任何请求字符串。name代表表单的名称,JSP利用这个名称,辨识网页中的特定表单区域。如表示表单中常用标记 表单中使用的主要元素包括以下3个。INPUT:输入字段。SELECT:定义可选择的若

21、干选项,为列表框。TEXTAREA:多行文本的输入字段。 (1)INPUT INPUT是一个单一的标记,没有结束标记。 语法格式: INPUT有6个属性:TYPE、NAME、SIZE、VALUE、MAXLENGTH和CHECKED。 TYPE属性指明输入的类型,也决定了INPUT标记的表现形式,其余的属性根据TYPE的类型不同,含义也不同。TEXT类型。 它是TYPE的默认类型。当TYPE取此类型时,INPUT其余属性的含义如下。 NAME:将输入值传给CGI程序时与输入值相对应的名称。 SIZE:输入窗口的长度,默认值为20,以字节为单位。 VALUE:设定预先在窗口显示的信息。MAXLEN

22、GTH:限制最多输入的字节数。PASSWORD类型与TEXT类型的使用相似,不同在于输入时不显示输入内容,而以“*回显。主要用在取得用户输入的密码,以避免密码被其它人看见。当TYPE取此类型时,INPUT其余属性的含义与TYPE取TEXT类型时其余属性的含义相同。RADIO类型 为用户提供单选按钮选择,即在多个选择中只能选择其中一项。由于选择惟一,因此NAME属性取相同的值,VALUE属性的值各不相同。当TYPE取此类型时,INPUT其余属性的含义如下。 NAME:将输入值传给CGI程序时与输入值相对应的名称。 VALUE:每个选项对应的值。CHECKED:预选项目。(缺省选项)CHECKBO

23、X类型 它为用户提供多选按钮进行选择,即在多个选择之间可以选择其中一项或多项。由于每个选项都可以被选择,NAME属性取不同的值,VALUE属性的值可以相同也可不相同。当TYPE取此类型时,INPUT其余属性的含义如下。 NAME:将输入值传给CGI程序时与输入值相对应的名称。 。 VALUE:每个选项对应的值。CHECKED:预选项目。SUBMIT类型 在浏览器窗口产生一个提交按钮。当用户用鼠标单击这个按钮后,则用户的输入信息即被传送到服务器。当TYPE取此类型时,INPUT其余属性的含义如下。 NAME:提交输入信息,传给CGI程序时与提交按钮相对应的名称。VALUE:显示在按钮上的文字。默

24、认为浏览器内部预定的值。RESET类型 让浏览器产生一个重置按钮。当用户单击这个按钮后,用户输入的信息都会被全部清除,以便用户重新输入。当TYPE取RESET类型时,INPTU的VALUE、NAME属性的值与INPUT取SUBMIT类型时的VALUE、NAME属性的值取法一样。HIDDEN类型将INPUT标记的区域隐藏起来,使之不出现在屏幕中。程序代码 2-18.htm (2)SELECT 在FORM中使用SELECT标记可以在浏览器窗口中显示一个下拉列表或带有滚动条的列表框,用户可以在列表中选择一个或多个选项。 SELECT有开始标记和结束标记,全部选项包含在SELECT的开始和结束标记中。

25、结构如下: 其中,表示选项,有几个这种标记就有几个选项。选项的具体内容是放在每个OPTION后的,如果OPTION中有SELECTED属性,表明该项已经预选。 SELECT带有NAME、SIZE、MULTIPLE三个属性。 NAME:作为输入信息的名称、列表的名字。 SIZE:该属性控制可以同时显示在列表中的选项条数,默认值为1。 MULTIPLE:该属性允许用户可以选择多个选项,否则只能选择一项。(3)TEXTAREA 当输入文本超过一行时,可以使用文本框。文本框由TEXTAREA元素定义,常用属性如下: NAME:规定文本框的名字。 ROWS:定义文本框的行数。 COLS:定义文本框的列数

26、。 语法格式: 对于文本框中较长的行,可以设置文本进行换行。文本换行由WRAP属性规定,WRAP=OFF,不换行;WRAP=SOFT,软换行(即显示时换行,但发送时实际不换行);WRAP=HARD,硬换行(即插入回车字符)。 jsp 语法与内置对象本章目标JSP页面的基本结构JSP指令JSP动作内置对象表单数据的读取JSP页面的基本结构JSP程序结构包括注释、声明、表达式和程序段。注释 注释是由程序员插入的、用于解释JSP源代码的句子或短语。注释不影响浏览器对页面的显示,但是可以有助于用户理解生成此页面的HTML和JSP源代码 ,注释有HTML 注释、隐藏注释、脚本注释三种类型。1HTML 注

27、释1、 HTML 注释类似于在 HTML 中使用的那些注释,格式为:可在其中包括动态内容,在浏览器的“查看源文件”可看到注释。2、 隐藏注释隐藏注释不发给客户端,只能通过查看原始 JSP 文件查看,格式为: 程序代码 3-1.jsp程序代码 3-2.jsp3脚本注释java脚本中的注释,与java程序中的注释相同。语法形式为:/ 单行注释/* 注释 */ 代码段JSP中的代码部分,是java程序的一段代码,几乎可以使用任何java语法,它可以使用jsp页面所定义的变量、方法、表达式或JavaBeans。脚本的语法格式为: 可以在“”之间插入Java程序片,一个JSP页面可以有许多程序片,这些代

28、码块将被JSP服务器按照顺序执行。程序代码 3-3.jsp声明 JSP中的声明可以用来定义变量,在声明元素中声明的变量和方法在JSP页面初始化时被初始化。 JSP声明的语法格式为:其中declaration为声明的变量、方法的名称和内容。例:一个简单的方法声明:在声明变量变量和方法时,需要注意以下几点:声明必须以;结尾。可以直接使用在中被包含进来的已经声明的变量和方法,不需要对它们重新进行声明。一个声明仅在一个页面中有效。程序代码 3-4.jsp程序代码 3-5.jsp表达式 表达式用于输出单个变量或某个计算的结果,可以将某个计算结果转换成一个字符串并且直接使用在输出网页上。表达式可以包含任何

29、JAVA语言表达式,只要表达式可以求值。表达式的语法格式为:程序代码 3-6.jspJSP指令几个典型的JSP指令有page指令、include指令、taglib指令等。 page 指令page指令用于定义JSP文件中的全局属性,这些属性影响整个JSP文件(整个编译后的类文件)。属性描述缺省值language定义要使用的脚本语言。如果在将来 JSP包容器支持多种语言时可使用它“Java”import定义以逗号分隔的类或包的列表,就像在通常的 Java代码中所使用的import语句那样缺省情况下忽略,但已经引入4个包buffer定义对客户的输出流的缓冲模型。如果值为“none”,则没有缓冲,而是

30、所有的输出都被PrintWriter直接写到ServletResponse中。如果定义了缓冲区的尺寸(如“24kb”),则将输出写到不小于该值的缓冲区中与实现有关;至少为 8KBautoFlush如果值为“true”,则当缓冲区满时,自动把输出缓冲输出给客户如果值为“false”,则当缓冲区满时,会有一个运行时异常“true”isThreadSafe如果值为“true”,则JSP引擎会同时向该页面发送多个客户请求。如果值为“false”,则JSP引擎会对发送给该页面的客户请求进行排队和处理,并且按照请求被收到的顺序,在某个时刻只处理一个请求(库操作)。“true”contentType定义JS

31、P的字符编码方式和JSP页面的应答的MIME类型。它的形式可以为MIMETYPE或“MIMETYPE; charset =CHARSET”。MIMETYPE的缺省值为text/html;CHARSET的缺省值为ISO-8859-1Info页面信息,通过页面的Servlet.getServletInfo()来获得页面可以被访问的内容的类型。无缺省extends转换成servlet时指定父类无缺省isErrorPage布尔值,为true,jsp容器会自动产生Exception对象。false由版本确定include指令include指令被用来插入文本或者JSP文件,能将一个文件的内容包括在另一个文

32、件中,语法为: 该指令的作用是在JSP页面中该指令出现的位置静态的插入一个文件。所谓静态插入,是指当前的JSP页面和被嵌入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新页面转换成Servlet。程序代码 3-7.jsp程序代码 nowtime.jsptaglib指令声明JSP文件使用了自定义的标签,同时引用标签库,也指定了它们的标签的前缀。语法格式如下: 属性说明如下:uri: 解释为统一资源标记符,根据标签的前缀对自定义的标签进行唯一的命名。URI可以是URL(Uniform Resource Locator)、URN(Uniform Resource Name)或一个路径(相对或

33、绝对)。 prefix: 在自定义标签之前的前缀,比如,在中的public,如果这里不写public,则标签moon的定义是非法的。程序代码 3-8.jspJSP动作 JSP动作向其他服务器对象传输控制权或执行操作,主要包括:、等forword动作标记该动作将当前页面的执行过程终止,忽略它的输出,并且把请求转向一个新的页面。语法为:jsp:forward page=relativeURL| /或者jsp:forward page=relativeURL| jsp:param name=parameterName value=paramterValue| /其中page 属性指定替代地址,可为静

34、态值,也可在请求时计算。程序代码 3-8.jsp程序代码 disp.htm注意标签以后的代码,将不能执行。使用jsp:forward 语句时,JSP页面必须使用缓冲机制,不能将buffer属性设为none。否则它将清空缓存里的内容,浏览器里将得不到任何输出。include动作标记可将外部的静态或者动态资源包括在当前页面的输出结果中,动作语法如下: jsp:include page=relativeURL| flush=true /或者jsp:include page=relativeURL| flush=true jsp:param name=parameterName value=param

35、terValue|/其属性含义如下:page属性:要插入当前页面的文档flush属性:是否刷新当前页面的缓冲器,flush默认为false,应该置为ture :指定附加的 request 参数程序代码 3-9.jspparam动作标记 标记用于将附加 request 参数发送至转发的页,可与 和 标记一起使用。语法形式为:其中:name 属性:指定参数的名称value 属性:指定参数的值 程序代码 3-10.jsp程序代码 forfoward.jspplugin动作标记动作为Web开发人员提供了一种在JSP文件中嵌入客户端运行的Java程序(如:Applet、JavaBean)的方法。该动作将

36、导致在客户端浏览器中运行一个指定的applet或者JavaBean,并且如果在必要的时候还需要下载一个Java插件用来产生客户端浏览器的特别标记object或者embed,当jsp页面把结果发送到浏览器时,标记被替换成或者。程序代码 3-11.jsp程序代码 showmsg.java内置对象为了便于Web应用程序的开发,在JSP页面中内置了一些默认的对象,这些对象不需要预先声明就可以在脚本代码和表达式中直接使用。这些内置对象也称为隐含对象。JSP提供了以下9种 预先定义的内置对象。隐含对象说明类 型request客户端的请求,如果客户的请求中有参数,则该对象就有一个参数列表。javax.ser

37、vlet.http.HttpServletRequestresponse处理服务器端对客户端的一些响应javax.servlet.http.HttpServletResponsepageContext提供了访问和放置页面中共享数据的方式javax.servlet.jsp.PageContextsession保存单个用户访问时的一些信息javax.servlet.http.HttpSessionapplication保存网站的一些全局变量javax.servlet.ServletContextout把信息回送到客户端的浏览器中javax.servlet.jsp.JspWriterconfig代码

38、段的配置对象javax.servlet.ServletConfigpageJSP页面本身java.lang.ObjectexceptionJSP页面运行时抛出的异常java.lang.ThrowableRequest对象 Request对象是实现 javax.servlet.HttpServletRequest 接口的类的一个实例,代表客户端的请求信息,主要用于接受客户端通过HTTP协议传送给服务器端的数据,比如:JSP文件目录、客户端的地址、以及服务器的端口等。 程序代码 3-12.jsp方法名语法功能getParmaeterString getParameter(String usemam

39、e1);String getParameter(String userkey1); 返回特定请求参数名的值,如果这个参数不存在则返回空值。请求参数是指随请求一起发送的特殊信息getAttributeObject getAttribute(String name)以对象的形式返回特定名称的属性值。这个方法允许Servlet引擎给出一个客户请求的特定信息。如果所给名称的属性不存在,则返回空值。getAttributeNamesEnumeration getAttributeNames()返回一个请求中有效属性名的枚举。如果请求中不包含有效属性则返回一个空的枚举对象。getContentLength

40、int getContentLength()以字节为单位,返回一个请求中所包含内容的长度,从请求对象的输入流中获得。getContentTypeString getContentType()返回一个请求中内容的MIME类型,如果类型未知,则为空值。getCharacterEncodingString getCharacterEncoding() 返回一个字符串,表示字符编码方式。当request没有使用编码方式时,字符串为空。getParameterNamesEnumeration getParameterNames()返回一个包含字符串对象的枚举,其中的字符串标示request对象中的参数名

41、。如果一个request对象中没有参数或输入流为空时,则返回一个空枚举对象。getParameterValuesString getParameterValues(String name)返回值:返回指定参数的所有值。name为字符串,表示被请求的参数名。返回针对一个请求参数的所有取值的字符串数组,若参数不存在,则返回空值。可利用此方法获得查询字符串或post方法发送的form数据中包括的值。若参数是单值的,数组长度为1getServerPortint getServerPort()返回接受此请求的端口号getServerNameString getServerName()返回接受此请求的服务

42、器主机名getRemoteAddrString getRemoteAddr()返回发送request的客户的IP地址getRemoteHostString getRemoteHost()用以返回发送请求的客户机的全名getRealPathString getRealPath(String path)用以获取实际路径setAttributesetAttribute(String str,Object obj)参数str,是一个标识属性名的字符串;obj,是一个包含请求上下文的对象。用以保存一个属性到请求上下文中,请求之中的属性被重置。getCookiesCookie getCookies()返回

43、浏览器伴随此次请求所发送的所有Cookie。如果浏览器未发送Cookie,则返回空值。 getQueryStringString getQueryString()返回一个字符串,表示请求URL后的查询字符串,若没有查询字符串,则返I空串。getRequestURlString getRequestURI()返回一个字符串,表示在HTTP请求中获得第一行请求URL中的从协议名到询字符串之间的部分。getSessionHttpSession getSession()获得当前关联到请求的HttpSession对象Response对象 Response对象实现HttpServletResponse接口

44、,可对客户的请求做出动态的响应,向客户端发送数据,如Cookie、HTTP文件头信息等,一般是HttpServlet.Response类或其子类的一个对象。程序代码 3-13.jsp程序代码 3-14.jsp方法用法addCookie(Cookie cookie)添加一个Cookie对象,用来保存客户端的用户信息,用request的getCookies()方法可以获得这个CookieaddHeader(String name,String value)添加HTTP文件头,该header将会传到客户端去,如果有同名的header存在,那么原来的header将会被覆盖掉。containsHeade

45、r(String name)判断指定名字的HTTP文件头是否存在,并返回布尔值sendError(int sc)向客户端发送错误信息,例如,505指示服务器内部错误;404指示网页找不到的错误。setHeader(String name,String value)设定指定名字的HTTP文件头的值,如果该值存在,那么它会被新的值覆盖setContenType(String type)响应设置内容类型头。sendRedirect(URL)可以将用户重定向到一个不同的页面(URL)Session对象 Session是一种服务器个别处理与记录用户端上网使用者信息的技术。当使用者与服务器联机时,服务器可

46、以给每一个上网的使用者一个Session并设定其中的内容,这些Session都是个别独立的,服务器端可以借此来辨别使用者信息进而提供个别的服务。session对象是java.servlet.http.HttpSession类的子类的对象,它表示当前的用户会话信息。在session中保存在对象在当前用户连接的所有页面中都是可以被访问到的。程序代码 3-15.jsp方法说明getAttribute(String name)获得指定名字的属性,如果该属性不存在,将会返回nullgetAttributeNames()返回Session对象中存储的每个属性对象,结果集是一个Enumeration类的实例

47、setAttribute(String name,java.lang.Object value)设定指定名字的属性值,并且把它存储在Session对象中isNew()判断目前Session是否为新的Session,若是则返回ture,否则返回falsegetId()返回Session对象在服务器端的编号。每生成一个Session对象,服务器都会给它一个编号,并且该编号不会重复,这样服务器才能根据编号来识别Session,并且正确的处理某一特定的Session及其提供的服务getCreationTime()返回Session对象被创建的时间,单位为毫秒getLastAccessedTime()返

48、回当前Session对象最后一次被操作的时间,时间的单位为毫秒getMaxInactiveInterval()获取Session对象的生存时间,时间的单位为秒setMaxInactiveInterval(int interval)设置Session的有效时间(也叫超时时间),时间的单位为秒removeAttribute(String name)删除指定的属性(包含属性名、属性值)。Application对象Application对象是 javax.servlet.ServletContext 类的一个实例,存储有关文档运行环境的信息。和Session对象相比,含义更加广泛,在使用Session

49、对象时,各个客户端共享一个Session对象,而使用Application对象时,在同一个服务器中的JSP文件共享一个Application对象。程序代码 3-16.jsp方法功能getAttribute(String name)返回由name指定名字的Application对象属性的值,这是个Object对象,如果没有,就返回null。getAttributeNames()返回所有Application对象的属性的名字,结果集是一个Enumeration(枚举)类的实例getInitParameter(String name)返回由name指定的名字的application对象的某个属性的初

50、始值,如果没有参数,就返回nullgetServerInfo()返回servlet编译器当前版本信息setAttribute(String name,Object object)将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个属性。exception对象与错误处理exception对象是 java.lang.Throwable 类的一个实例,Exception对象可以配合page指令一起使用,page指令中 errorPage和isErrorPage属性可以为页面提供错误处理机制。errorPage用来设定当JSP页面出现异常(Exception)时

51、,所要转向的页面。如果没有设定,则JSP容器会用默认的当前网页来显示出错信息。例如:“”isErrorPage用来设定当前的JSP页面是否作为传回错误页面的网页,默认值是“false”。如果设定为“true”,则JSP容器会在当前的页面中生成一个exception对象。Exception对象的主要方法为:getMessage():返回错误信息。printStackTrace():以标准错误的形式输出一个错误和错误的堆栈。toString():以字符串的形式返回一个对异常的描述。 程序代码 3-17.jsp其它内置对象page对象:page对象处理当前请求的JSP页的实现类的实例。page对象在

52、页的正文中可以被看作“this”的同义词。page对象的范围是page。 Out对象:out对象主要用来向客户端输出各种数据类型的内容。out对象的生命周期是当前页面。因此对于每一个JSP页面,都有一个out对象。Out对象的主要方法为out.print(类型)或out.println(类型)其它内置对象Config对象:是JSP页面通过JSP container进行初始化时被传递的对象。Config对象具有Web服务器所需的多种环境设定值,简单点说,Config对象就是提供对初始化JSP的配置数据的访问。方法功能getInitParameter()以字符串类型返回指定初始参数的内容,如果参数

53、不存在,则返回nullgetInitParameterNames()以Enumeration类型返回所有初始参数的名称,如果没有初始化参数,则返回nullgetServletContext()返回的Servlet是属于哪一个applicationgetServletName()以字符串类型返回Servlet的名称其它内置对象pageContext对象:提供了访问其他隐含对象的方法方 法说 明HttpSession getSession()返回当前页中的session对象ServletRequest getRequest()返回当前页的request对象ServletResponse getRe

54、sponse()返回当前页的response对象ServletConfig getServletConfig()返回当前页的config对象ServletContext getServletContext()返回当前页的application对象表单数据的读取 取得客户端表单数据主要利用request对象的方法。文本框数据的提交在HTML文件中,把文本框分为单行文本框、密码框和滚动文本框。说明:在文本域中输入的数据使用n作为换行符,而在HTML中n”并不能起到换行的作用。需要使用replaceAll(String source,String dest)方法将读取数据中的na”替换为“,从而解决

55、换行问题。程序代码 3-18.htm程序代码 3-18.jsp注意:汉字问题JSP页面中出现汉字问题的主要原因是:客户端和服务器用gb2312对汉字编码,而HTTP传输汉字用ISO8859_1编码 。1对读取表单数据的处理当利用request.getParameter得到Form种元素的时候,默认的情况字符编码为ISO-8859-1,这种编码不能正确的显示汉字。可以读取表单数据前用setCharacterEncoding()方法來设定request对象的编码格式简体中文的编码为GB2312 :另一种方法是读取表单数据后转换字符编码 :2保证JSP向客户端输出时采用中文编码方式,即首先在JSP源

56、代码中加入以下一行:下拉框数据的读取在下拉框option标记中,如果指定了value属性,在JSP页面中通过requestgetParameter0得到的就是value属性的值,否则,得到的就是和标记中的文字。 程序代码 3-19.jsp程序代码 3-19.htm复选框数据的读取复选框的作用是允许用户在备选选项中选择多个选项,复选框的一个典型应用是在考试时的多选题,可以选择其中的一个答案,两个答案或多个答案。程序代码 3-20.htm程序代码 3-20.jsp单选钮数据的提交在使用单选框时,同一组单选钮的“name属性一定要一样,否则就达不到单选的效果。 程序代码 3-21.htm程序代码 3

57、-21.jsp表单和J S P程序的结合在前面的例子中,表单和对表单响应的JSP程序,分别写在两个文件中,但有时需要把它们组合成一个jsp文件。【程序代码】3-22.jsp 的爱好为: 姓名: 爱好: 多form页面在一 HTML文件中,可以包含多个form,这时需要在每个form 中添加一个提交按钮。提交按钮只能将它所在form中的信息提交。在一个HTML文件中有多个form的情况下,可以通过if (request.getParameter(提交按钮名)!=null)来判断哪个表单被提交,并进行相应处理。程序代码 3-23.jsp程序代码 3-23.htmJDBC数据库编程本章目标JDBC概

58、述JDBC驱动程序安装ODBC使用JDBC访问数据库的步骤使用SQL语句对数据库进行操作专用JDBC驱动程序连接SQL Server数据库数据库的高级操作JDBC概述JDBC(Java DataBase Connectivity)是用于执行SQL语句的Java应用程序接口,由一组用Java语言编写的类与接口组成。JDBC是一种规范,它让各数据库厂商为Java程序员提供标准的数据库访问类和接口,这样就使得独立于DBMS的Java应用程序的开发工具和产品成为可能。将Java和JDBC结合起来将使程序员只须写一遍程序就可让它可向任何数据库发送SQL语句,可在任何平台上运行。也就是说,不必为同样的JS

59、P操作写一个程序访问Microsoft SQL Server,再写另一个程序访问Oracle。JDBC的主要类包有以下两java.sql包和javax.sql包。JDBC驱动程序目前,比较常见的JDBC驱动程序可分为以下4种类型:(1)JDBC-ODBC桥加ODBC驱动程序:JDBC-ODBC桥产品利用ODBC驱动程序提供JDBC访问。在服务器上必须可以安装ODBC驱动程序。 (2)本地API:这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。(3)JDBC网络纯Java驱动程序:这种驱动程序将JDBC转换为与DBM

60、S无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。(4)本地协议纯Java驱动程序:这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。使用JDBC访问数据库的步骤1建立数据源2 装载驱动程序 3 建立连接 4. 创建Statements对象, 发送SQL语句, 处理结果.5完成数据库操作后,依次调用各个对象的Colose()方法,关闭数据库连接,释放所占的资源。 程序代码 deleteCategory.jsp使用SQL语句对数据库进行操作查询操作查询操作可以使用Statement 对象executeQuery方法,其语法如下:public ResultSet

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论