您好,欢迎来到东饰资讯网。
搜索
您的当前位置:首页第一节 HTML表单提交数据和JSP获得数据

第一节 HTML表单提交数据和JSP获得数据

来源:东饰资讯网


第一节 HTML表单提交数据和JSP获得数据

为了学习掌握JSP动态网页的设计开发,我们先从大家比较熟悉的表单入手。以前在学习静态网页设计时,做好的表单无法提交数据,那是因为没有接收数据的程序。本节使用一组范例,由HTML的表单提交数据,并使用JSP动态网页获得数据,来说明他们之间的关系和工作原理。

一、 范例的演示和代码清单

演示的前提:

1. 配置好开发运行环境;

2. 将随书光盘中的范例ch2,复制到resin2.1.6\\doc文件夹内;

3. 启动JSP引擎;

演示步骤:

1. 启动IE,在地址栏键入http://127.0.0.1:8080/ch2/ch2-1.htm,如图2-1所示:

图 2-1

2. 在表单的姓名栏键入“张三”,年龄栏键入“21”,性别选择其中的一项,密码栏键入“123”,然后点击“提交”按钮。屏幕出现2-2所示界面:

图 2-2

注意:访问动态网页必须在启动JSP引擎后,在IE的地址栏键入IP地址和路径文件名,才能进行访问,不能使用直接双击打开的方式。

网页的页面上显示了所提交数据的全部内容。请注意,地址栏上的内容是:http://127.0.0.1:8080/ch2/ch2-1.jsp。这说明提交的数据已被ch2-1.jsp动态网页接收,并将其送到屏幕上进行显示。

当然,可以在表单中填写其他的内容,屏幕显示的内容会随之变化。但是如果在“年龄”项目中填写的不是数字,而是字母、汉字等不正确的内容,屏幕上也会将这些错误内容显示出来,甚至任何一项都不填写,直接点击“提交”按钮,动态网页仍能正常运行。这些问题,我们会在以后的章节中去一一解决。目前先要弄清HTML静态网页和JSP动态网页之间的关系。

两个网页的代码如下:

◇-◇-◇-◇-◇-◇-◇-◇-◇-◇ 表单 ◇-◇-◇-◇-◇-◇-◇-◇-◇-◇

范例ch2-1.htm

1)

2)

3)

4) 表单

5)

6)

7)

使用表单提交数据

8)

9)

 

10)

姓名:

11)

12)

13)

性别:

14)

15) 男

16)

17) 女

18)

年龄:

19)

20)

21)

密码:

22)

23)

24)

 

25)

26)

27)

30)

31)

32)

28)

29)

33)

 

34)

35)

36)

37)

◇-◇-◇-◇-◇-◇-◇-◇-◇-◇ 接收表单数据 ◇-◇-◇-◇-◇-◇-◇-◇-◇-◇

范例ch2-1.jsp

1) <%@page contentType=\"text/html; charset=gb2312\" language=\"java\" import=\"java.sql.*\" errorPage=\"\" %>

2)

3)

4)

5) 接收表单数据

6)

7)

8)

动态网页接收的数据

9)

10) <% ! //定义接收HTML数据的变量

11) String name;

12) String xingbie;

13) String nianling;

14) String password;

15) %>

16) <% //接收HTML数据

17) name=request.getParameter(\"xingming\");

18) xingbie=request.getParameter(\"xingbie\");

19) nianling=request.getParameter(\"nianling\");

20) password=request.getParameter(\"mima\");

21) //将数据送到屏幕上显示

22) out.print(“姓名:”+name);

23) out.print(“

性别:”+xingbie);

24) out.print(“

年龄:”+nianling);

25) out.print(“

密码:”+password);

26) %>

27)

28)

返回表单

29)

30)

二、HTML表单的构成分析

HTML的表单网页,给人最直观的印象就是页面上的各种表单项,比如文本框、密码框、单选按钮、复选项、下拉列表菜单、提交按钮等。实际上,和JSP动态网页发生联系,还有表单(域)的概念。

1. 表单项

要分析HTML表单中的元素及其作用,首先启动Dreamweaver,在图形设计界面即可看到图2-3所示界面:

图 2-3

图2-3中有七个表单项,分别是对应“姓名”的文本域,对应“性别”的两个单选按钮,对应“年龄”的文本域,对应“密码”的文本域,以及“提交”、“重写”两个按钮。此时可以把每个表单项看成一个用来存放用户提交数据的容器。每个表单项都有一系列的属性,这些属性起决定其外观及功能的作用。

图2-3中已选中“姓名”后面的文本框,在属性面板中“文本域”的表单项名称是“xingming”(姓名的汉语拼音),“类型”是“单行”,其他项目为空。其中“字符宽度”影响文本框的宽窄,“最多字符数”限定文本框能够输入的最多字符数。

如果再选中“性别”后面的第一个单选按钮,在属性面板中“单选按钮”的表单项名是“xingbie”,“选定值”为“男”,“初始状态”为“已勾选”。第二个单选按钮,在属性面板中“单选按钮”的表单项名是“xingbie”,“选定值”为“女”,“初始状态”为“未选中”。注意:自己编制含有“单选按钮”的表单项,一定要将其中的一个“初始状态”设为“已勾选”,否则JSP程序不能正常运行。对于有时需要所有“单选按钮” 必须设为“未选中”,解决的方法将在后面讲解。

“年龄”后面的文本框,在属性面板中“文本域”的表单项名是“nianling”,“类型”是“单行”,其他项目的值为空。

“密码”后面的文本框,在属性面板中“文本域”的表单项名是“mima”,“类型”是“密码”,其他项目的值为空。

以上各个表单项的属性值,在与动态网页发生联系时,都起着重要作用。为了更清楚的了解这些属性值,我们看一下ch2-1.htm文件的部分代码行,

11)

姓名:

12)

13)

14)

性别:

15)

16) 男

17)

18) 女

第12行中type=”text”的含义:这个表单项的类型是文本域(也称为文本框)。

name =”xingming”的含义:“文本域”的表单项名是“xingming”。

第15行中type=”radio”的含义:这个表单项的类型是单选按钮。

name=”xingbie”的含义:“单选按钮”的表单项名是“xingbie”。

Value=”男”的含义:这个单选按钮的值是“男”。

Checked的含义:这个单选按钮已勾选。

第17行中name=”xingbie”的含义:“单选按钮”的表单项名是“xingbie”。

Value=”女”的含义:这个单选按钮的值是“女”。

我们注意到15行和17行两个“单选按钮”的表单项名都是“xingbie”,这说明他们是属于同一组的单选按钮。在同一组的单选按钮中,只能有一个“值”被选中。

还有“提交”、“重写”两个按钮,他们有和动态网页更紧密的联系,我们在下面结合表单域做详细地说明。

2. 表单(域)

表单中的七个表单项,在同一个表单(域)中。在Dreamweaver的图形设计界面中,可以看到一个红色虚线框,该虚线框就是表单的领域范围。所以我们往往将一个表单又称作为一个表单域。和表单域相关的代码行如下:

9)

……

29)

31)

……

35)

第9行中

是表单域开始的标记。

name =”form1”的含义:把整个表单看成一个大容器,容器名是”form1”

method=”post”的含义:表单提交数据时,传递方式为整批发送。

action=”ch2-1.jsp”的含义:表单提交的数据,由ch2-1.jsp接收。

第29行中type=”submit”的含义:按钮的作用是将所在表单域内的数据送出去。

第31行中type=”reset”的含义:按钮的作用是将所在表单域内的数据清空。

第35行中的

是表单域结束的标记。

综上所述,一个规范完整的表单HTML文档,应该具备如下条件:

➢ 有表单的开始标记和结束标记,限定表单域的范围;

➢ 在表单开始标记的参数中,必须含有提交数据传送的方式和接收数据的程序(动态网页)文件名;

➢ 在表单域范围内,放置表单项,每个表单项要定义需要的属性;

➢ 在表单域范围内,要有“提交”按钮;

因此,在Dreamweaver的图形设计界面下,完成表单的制作后,必须进入文本方式的代码界面,将表单开始标记参数中的action=“”填入相应JSP文件名。

三、JSP动态网页构成分析

初次接触JSP动态网页,还需了解一下JSP网页的基本知识,尤其是与本范例有关的知识,然后学习其构成及如何获得HTML提交的数据。JSP动态网页所涉及到的其他一些概念和知识,将在后面的范例中进行介绍。现在需要了解的JSP网页基本知识如下:

1. JSP动态网页主要解决某些功能的实现,并了解程序代码及其主要成分;

2. JSP动态网页是在HTML超文本语言中镶嵌java代码构成的;

3. 嵌入的java代码,放在 <% %> 标记中,要符合java的语法;

4. JSP动态网页的文件扩展名是 .jsp;

5. 纯粹解决某些功能的JSP动态网页,可以不包括任何HTML代码。

我们看一下ch2-1.jsp动态网页的程序代码。

第1行:<%@page contentType=\"text/html; charset=gb2312\" language=\"java\" import=\"java.sql.*\" %> 是JSP动态网页的页命令,他对动态网页整体性能的控制起着重要作用,这些命令后面要专门讲解。现在只需知道,动态网页中不能缺少这一行。

第2行-第9行:是纯粹的HTML代码。学习过HTML超文本语言的一看就懂。

第10行-第15行:是放在 <% ! %> 标记中的java代码,定义了四个字符串型的变量。因为在HTML表单中有四个承载数据的表单项,定义这些变量是为下面接收获得数

据进行准备。

第16行-第21行:也是放在 <% %> 标记中的java代码,他的作用是获得HTML表单提交的数据。等号作用是赋值,等号左边是已经定义好的JSP变量,等号右边是从HTML表单获得的数据。request.getParameter( )是JSP默认对象中的一个方法,获得HTML表单提交的数据,必须使用这个方法。

17) name=request.getParameter(\"xingming\"); JSP变量name获得HTML表单中xingming表单项中的数据。

18) xingbie=request.getParameter(\"xingbie\"); JSP变量xingbie获得HTML表单中xingbie表单项中的数据。

19) nianling=request.getParameter(\"nianling\"); JSP变量nianling获得HTML表单中nianling表单项中的数据。

20) password=request.getParameter(\"mima\"); JSP变量password获得HTML表单中mima表单项中的数据。

在这里我们看到JSP动态网页和HTML静态网页发生的联系,这条语句等号左边必须是已经定义好的JSP变量,右边request.getParameter( )方法的括号( )中必须是HTML表单中的表单项名。

同时也会发现每个表单项名加上了(“ ”),语句的结尾使用了分号(;),这都是java语法所要求的。

特别注意:

a. JAVA语言对于字母的大、小写区分非常敏感,一点也不能错,否则就是错误语句。

b. 语句行中所有的符号 等号=、括号()、引号 “ ”、分号;都必须是半角英文的符号,如果使用了中文全角的符号,程序行就成为非法语句。

在今后的编程中,这些都是经常容易出错的地方。

第22—25行:是将获得的数据送到屏幕上显示,这是JSP最常用的输出语句。

22) out.print(“姓名:”+name);

23) out.print(“

性别:”+xingbie);

24) out.print(“

年龄:”+nianling);

25) out.print(“

密码:”+password);

第22行中out.print( ) 是JSP默认类的一个方法,()中是输出的内容;

“姓名:” 是输出的字符串;+ 是字符串和变量的连接符;

name 、xingbie、 nianling、 password都是JSP变量,已在17、18、19、20行获得HTML提交的数据。

第23行中的

,是在JSP输出语句中插入的HTML标记,其作用和在HTML文档中一样,即插入一个分段标记。

综上所述,该JSP文档基本由三部分组成,第一部分10-15行定义变量,为获得数据做准备;第二部分16-21行使用request.getParameter( )方法,获得HTML表单提交的数据;第三部分22-25行将获得的数据送到屏幕上显示。

JSP动态网页将获得的数据,送到屏幕显示,是最简单的数据处理。后面的范例中,我们将学习复杂的数据处理,比如数据的转换、算术运算、逻辑运算,以及如何使用分支语句、循环语句控制程序的流程等。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuoyibo.cn 版权所有 湘ICP备2023022426号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务