1、第2章 表单数据处理 能利用HTML标记进行网页内容的格式控制,能把表单提交的数据接收并处理 掌握常用的HTML标记及基本的CSS样式用法;熟悉JSP脚本的表示;掌握out、request内置对象的用法。在一个需要注册的网站中,必须定义一个表单,并在表单中输入个人的相关信息后提交给服务器,由服务器把接收的数据进行处理后再把结果发送给用户。我们把整个从输入到服务器接收到数据并处理处理看作一个任务。任务一 设计输入个人信息的表单 我们已经明确个人的信息包括:姓名、性别、籍贯、年龄、爱好、备注信息。输入的界面一般通过下图所示的图形界面进行数据输入。输入表单 /标题定义 /表单定义 姓名:性别:男 女
2、 籍贯:济南 烟台 青岛 爱好:音乐 体育 美术 备注:相关知识 1.常用的HTML标记(1)HTML基本用法 HTML是一切网页实现的基础,在网络中浏览的网页都是一个个的HTML文件。这些网页中可以包含有文字、图片、动画和声音,还可以从当前文件跳转到另一个文件,与网络世界中各地主机上的文件相连接,故被称为超文本文件。HTML语言使用描述性的标记符(称为标记)来指明文档的不同内容。标记是区分文本各个组成部分的分界符,用来把HTML文档划分成不同的逻辑部分(或结构),如段落、标题和表格等。标签描述了文档的结构,它向浏览器提供该文档的格式化信息,以传送文档的外观特征。表 常用的HTML语言标记 H
3、TML标记含 义声明这个文件是一个HTML文件,在文件的开头为开始标记,在文件的结尾为结束标记声明网页文件头,紧跟在HTML开始标记之后声明网页的标题,在HAED的开始和结束标记之间声明文件主体,包括所有的文本、图片及文档中其他标记声明文字颜色插入一个空行说明其包含的部分是个超级链接,等号后面是链接内容的URL插入一个图片文件,等号后面是图片文件的URL插入一个水平分隔线(2)正文标记 正文标记的格式如下:正文标记中包含文档的内容。常用属性 BACKGROUND:用法为BACKGROUND=文档背景图像的URL地址。BGCOLOR:用法为 BGCOLOR=文档的背景颜色。TEXT:用法为TEX
4、T=文档中文本的颜色。LINK:用法为LINK=文档中链接的颜色。VLINK:用法为VLINK=文档中已被访问过的链接的颜色。ALINK:用法为ALINK=文档中正被选中的链接的颜色。分段与换行标记 分段标记 段落是文档的基本信息单位。利用分段标记,可以忽略文档中原有的回车和换行定义一个新段落,换行并插入一个空行。分段标记的格式如下:单独使用标记时会空一行,使后续内容隔一行显示。同时使用和,则将段落包围起来,表示一个分段的块。常用属性如下:ALIGN=段落的水平对齐方式 其值有:Left(左对齐,是默认值)、center(居中)、right(右对齐)、justify(两端对齐)。换行标记 换行
5、标记的格式如下:换行标记强行中断当前行,使后续内容在下一行显示。字体字型标记 字体标记 字体标记的格式如下:字体标记FONT用来设置文本的字符格式,主要包括字体、字号和颜色等。常用属性如下:FACE=“字体名表”SIZE=“字号值”COLOR=“颜色值”字型标记 字型标记的格式如下:粗体 斜体 大字体 小字体 固定宽度字体(6)列表标记 有序列表标记 有序列表是在各列表项前面显示数字或字母的缩排列表,可以使用有序列表标记OL和列表项记LI来创建。有序列表标记的格式如下:列表项1 列表项2 列表项n 2.表格标记 (1)标记的属性 在浏览器显示表格时,表格的整体外观是由标记的属性决定的。标记的主
6、要属性如表。属性名称属性值功 能BORDERsize设置表格边框大小WIDTHsize设置表格宽度HEIGHTsize设置表格高度CELLSPACINGsize设置单元格间距CELLPADDINGsize设置单元格的填充距BACKGROUDURL设置表格的背景图像BGCOLORcolor设置表格的背景颜色(2)标记的属性属性名称属性值功 能ALIGNleft.right.center设置行对齐方式VALIGNtop.middle.bottom.baseline设置行中单元格的垂直对齐方式BGCOLORcolor设置单元格的背景颜色BORDERCOLORcolor设置单元格的边框颜色 标记的属性
7、 为了能定制表格的单元格,标记的一些属性可以完成表格中单元格的定制作用。属性名称属性值功 能ROWSPANnum设置单元格所占的行数COLSPANnum设置单元格所占的列数表单标记 表单标记格式为。中包含很多控件来实现整个表单的交互功能,另外还有很多属性来协助完成交互功能。属性名称属性值功 能ACTIONURL设置处理表单的程序METHODpost.get设置发送表单的HTTP方法ENCTYPEcontentType设置发送表单的内容属性TARGETframetarget设置显示表单内容的窗口ONSUBMITscript设置被发送的事件 文本框文本框 文本框是用来取得用户在网页所输入的姓名、地
8、址之类等相关数据内容。文本框的一般语法格式是:密码框密码框 密码输入主要用在取得用户输入的密码,且会出现密码符号代替用户所输入的数据以避免密码被其它人看见。密码框的一般语法格式是:复选框复选框 当一个题目中可以选择多个答案时,就使用复选框。复选框的一般语法格式:单选按钮单选按钮 当一个题目中的答案只能多选一时,就使用单选按钮。单选按钮的一般语法格式:列表框列表框 下拉式列表和滚动式列表框通过和标记来定义。基本格式为:选项1 选项2 .选项n (6)文本区 该组件在表单中指定一个能输入多行文本的文本区。其语法格式是:(7)提交按钮 当用户按下该按钮时,表单所包含的数据被提交到服务器。下面是提交控
9、件的语法:(8)重置按钮 当用户需要重新填写表单中的数据时,按下此控件就清除表单中各项数据。下面是重置按钮的语法:框架 所谓框架就是将网页分成几个框窗,同时取得多个URL,每个框窗显示一定的内容。使用了框架结构的HTML文档基本格式为:标题部分 框架集标记 框架集标记格式为:框架集包括如何组织各个框架的信息,可以通过FRMAESET标记来定义。框架标记 框架标记格式为:使用FRAME标记可以设置框架的属性,包括框架的名称、框架是否可以滚动以及在框架中显示什么文件等。CSS样式 CSS是“Cascading Style Sheet”的缩写,可以译为“层叠样式表”或“级联样式单”。它用来进行网页风
10、格设计的,它简化并扩展了HTML中各种标记,使得各个标记的属性更具有一般性和通用性,大大的提高了HTML开发的效率。(1)CSS的插入形式 CSS(Cascading Style Sheet)中,“Cascading”是“层叠”的意思,也就是说在同一个Web文档中可以有多个样式表存在,这些样式表根据所在的位置,拥有不同的优先级,优先级越高,就会被最后在显示时采用。从样式表插入的形式来看可以分为三种:内联式样式表、嵌入式样式表、外部样式表。内联式样式表 它利用现有的HTML标记把特殊的样式加入到那些由标记控制的信息中。例如:例如:嵌入式样式表 它和Javascript一样可以嵌入到HTML文件的
11、头部中去(和标记之间),使用和容器装载。嵌入式样式表定义的格式如下:选择符 规则表 P font-family:宋体;color:green;background-color:yellow;font-size:9pt;H1,H2 font-family:隶书,宋体;color:#ff8800 .heti font-family:黑体;color:#000000;#id1 color:blue;外部样式表 是一种保存在外部的样式表文件,外部文件以.CSS为扩展名。注意CSS样式文件不包含标记,因标记是HTML标记,而不是CSS样式。例如,定义样式表的内容放在Style1.css文件中。P fon
12、t-family:宋体;color:green;background-color:yellow;font-size:12pt;H1,H2 font-family:隶书,宋体;color:#FF8800.heti font-family:黑体;font-size:20pt;color:#000000;#id1 color:blue;(2)类选择符和CLASS属性 利用类选择符和标记的CLASS属性可以使相同的标记使用不同的样式。也可以不同的标记使用同样的样式。因为只要使标记的CLASS属性的值为样式表中定义的类选择符即可。类选择符在样式表中定义具有样式值的类,有两种定义格式:标记名.类名规则1;
13、规则2;类名规则l;规则2;(3)ID选择符和ID属性 ID选择符用于定义一个元素的独有的样式,它与类选择符的区别在于ID选择符在一个HTML文件中只能引用一次(有的浏览器可多次),而类选择符可以多次引用。ID选择符的定义的格式为:#ID名规则1;规则2;(4)伪类 伪类是特殊的类,能自动地被支持CSS的浏览器所识别。伪类可区别标记的不同状态。伪类不用HTML的CLASS属性来指定。伪类定义格式为:选择符:伪类属性:值 伪类的一个最常见的应用是指定超链接()以不同的方式显示链接(links)、已访问链接(visited links)和可激活链接(active links)。任务二 获取个人信息
14、表单数据并显示程序实现表单信息的获取%request.setCharacterEncoding(gb2312);String xm=request.getParameter(xm);if(xm=null)xm=;String xb=request.getParameter(xb);if(xb=null)xb=;String jg=request.getParameter(jg);if(jg=null)jg=;String ah=request.getParameterValues(ah);String bz=request.getParameter(bz);if(bz=null)bz=;out
15、.println(姓名:+xm+);out.println(性别:+xb+);out.println(爱好:);String s=;if(ah=null)for(int i=0;iah.length;i+)s=s+ahi+/;out.println(s+);out.println(备注:+bz);%相关知识 JSP脚本元素 JSP页面中常使用脚本元素来操作Java对象或执行计算功能。脚本元素主要有:声明元素、脚本小程序元素、表达式元素。(2)JSP声明元素 声明元素的基本语法格式 在标记内定义类成员变量、成员方法和内部类等,其作用为整个JSP页面。用声明元素声明类成员变量 例如:用声明元素声明
16、成员方法 例如:%!/定义adder()方法计算1+2+.+n int adder(int n)int sum=0;for(int i=1;i(3)脚本小程序 脚本小程序就是一段Java代码。在JSP页面中声明脚本小程序的基本语法格式为:Tomcat把标记内的Java代码段放在Servlet实现类 _jspService()方法的try内,所以在内定义的变量属于局部变量,并且作用范围仅限于try内。如果有多个标记,则按出现的先后顺序转译到try内。(3)表达式元素 表达式元素的基本功能是运行一条Java表达式,如果表达式有计算结果,则把结果显示在表达式位置上。表达式元素的基本语法格式如下:2.
17、out内置对象 Out对象主要用来向客户端输出各种数据类型的内容,并且管理应用服务器上的输出缓冲区,其基类是JspWriter。Out对象的主要方法为:out.print(数据)或out.println(数据):将数据输出到文档中。out.newLine():输出一个换行符号。out.clearBuffer():清除缓冲区里的数据,并且把数据写到客户端去。out.clear():清除缓冲区里的数据,但不把数据写到客户端去。out.flush():输出缓冲区里的数据。out.flush()方法也会清除缓冲区中的数据,但是此方法会先将之前缓冲区中的数据输出至客户端,然后再清除缓冲区中的数据。out
18、.close():关闭输出流,从而可以强制终止当前页面的剩余部分向浏览器输出。3.Request内置对象 Request内置对象代表了客户端的请求信息,主要用于接受客户端通过HTTP协议传送给服务器端的数据。在客户端的请求中如果有参数,则该对象就有一个参数列表。它通常是HttpServletRequest的子类,其作用域就是一次Request请求。Request对象包括很多方法,主要有:getAttribute(String name):返回name指定的属性值,若不存在指定的属性,就返回null。getAttributeNames():返回request对象所有属性的名字,结果集是一个Enu
19、meration(枚举)类的实例。getHeaderNames():返回所有request header的名字,结果集是一个Enumeration(枚举)类的实例。getHeaders(String name):返回指定名字的request header的所有值,结果集是一个Enumeration(枚举)类的实例。getMethod():返回客户端向服务器端传送数据的方法,一般方法有GET、POST、PUT等类型。getParameter(String name):以字符串的形式返回客户端传来的某一个请求参数的值,该参数名由name指定。当传递给此方法的参数名没有实际参数与之对应时,返回nul
20、l。getparameterNames():返回客户端传送给服务器端的所有的参数名,结果集是一个Enumeration(枚举)类的实例。当传递给此方法的参数名没有实际参数与之对应时,返回null。getParameterValues(String name):以字符串数组的形式返回指定参数所有值。getRequestURI():获得发出请求字符串的客户端地址。getServletPath():获得客户端所请求的脚本文件的文件路径。setAttribute(String name,Java.lang.Object o):设定名字为name的request参数值,该值由Object类型的o指定。g
21、etServerName():获得服务器的名字,如果没有设定服务器名,则返回服务器IP地址。setCharacterEncoding(String name):定义返回客房信息的编码标准。如果已经用response.setContentType()定义了字符集,则调用此方法将重新设置字符集。setAttribute(String name,Object obj):把一个属性对象以指定的名字写入request作用范围中。getCookies():返回保存到客户端的cookie对象,返回值是一个cookie数组。如无cookie返回,则返回null。动手练习 练习目的:练习目的:1.熟悉HTML标记的用法。2.掌握在HTML中嵌入JSP脚本的用法。3.掌握out、request内置对象的用法。练习内容:练习内容:1.设计如图所示 形式的表单。2.设计如图所示形式的表单。3.分别编写JSP程序,把第1题所示形式的表单提交数据、右图所示形式的表单提交数据在网页中显示出来。