第5章〓表单开发 视频讲解 建议学时: 2 表单是用户和服务器之间进行信息交互的重要手段,有了表单,JSP程序才可以更加丰富多彩。本章将学习JSP编程中的表单开发,首先对表单的基本结构和基本属性进行学习,然后学习各种表单元素与服务器的交互,最后对隐藏表单的作用进行讲解。 5.1认 识 表 单 5.1.1表单的作用 在编写JSP表单之前首先了解一下表单的作用。 以百度为例,若在百度上输入一个关键词,例如“玫瑰花”,如图51所示。 图51百度搜索界面 单击“百度一下”按钮,百度能够将所有与“玫瑰花”有关的搜索结果展现出来,很明显,百度在服务器端进行了一个搜索工作。 图52系统登录界面 此处百度提供的输入界面就是一个表单。用户可以在表单上进行一些输入,在提交时可以根据用户的输入来执行相应的程序。 同样,在某系统中如果用户要进行登录,则必须输入账号和密码,如图52所示。 这也是一个表单。所以,表单是可以由用户输入并提交给服务器端的一个图形界面。 5.1.2定义表单 对于表单的定义,在网页制作过程中进行了详细的介绍,在这里仅仅根据JSP来介绍表单的基本定义方法。 表单有如下性质。 (1) 在表单中可以输入一些内容,这些输入功能由控件提供,叫作表单元素。 (2) 在表单中一般会有一个按钮负责提交。 (3) 单击提交按钮,表单元素中的内容会提交给服务器端。 (4) 表单元素放在
之间。 在MyEclipse中建立一个项目Prj05。建立一个页面,5.1.1节的登录表单可以由form.jsp实现,代码如下。 form.jsp <%@ page language="java" contentType="text/html; charset=gb2312"%> 欢迎登录本系统 运行,得到5.1.1节中的登录界面。 问答 问: 表单提交给服务器端,如何确定到底提交给哪一个页面? 答: 可以用 以上代码表示将表单中输入的内容提交给page.jsp去运行。 注意: 此处的action值支持相对路径。例如: ../page.jsp表示当前页面的上一级目录中的page.jsp。 jsps/page.jsp表示当前目录jsps目录中的page.jsp。 它也支持绝对路径,例如: /Prj05/page.jsp表示Prj05中的page.jsp。 问: page.jsp如何获取提交过来的值? 答: 方法是用request对象。例如: <% //获取表单中name=account的表单元素中输入的值,赋值给str String str=request.getParameter("account"); %> 如果表单中没有name=account的表单元素,str为null; 如果在表单元素account中没有输入任何内容就提交,str为""。 问: 表示提交按钮,可以用普通按钮吗? 答: 不可以,如果将该按钮改为“”,虽然显示效果一样,但是单击没有提交功能。当然,可以用JavaScript进行提交。 5.2单一表单元素数据的获取 单一表单元素是指表单元素的值送给服务器端时仅仅是一个变量,这种情况下的表单元素主要有文本框、密码框、多行文本框、单选按钮和下拉菜单等。 5.2.1获取文本框中的数据 例如,在学生管理系统中用户可以模糊查询学生信息,输入学生姓名的部分资料,就可以显示学生的信息,此时表单中可以包含一个文本框,实现代码如textForm.jsp所示。 textForm.jsp <%@ page language="java" contentType="text/html; charset=gb2312"%> 图53模糊查询界面 其运行效果如图53所示。 “ … 注意: 在默认情况下是get方式,get方式和post方式是提交请求的两种常见方式。 5.2.2获取密码框中的数据 在很多界面中都用到了密码。比如用户注册时需要输入自己的密码,然后提交,最后被系统添加到数据库中。下面的passwordForm.jsp实现这个功能,代码如下。 passwordForm.jsp <%@ page language="java" contentType="text/html; charset=gb2312"%> 请您输入自己的信息进行注册 其运行效果如图57所示。 图57注册界面 在实际项目中还应该输入一个确认密码,此处省略。 “ 其运行效果如图59所示。 图59包含个人信息的注册界面 其中,“I am a student.”是在运行完毕之后手工输入的。 “ 其运行效果如图511所示。 图511包含性别选择的注册界面 “ 其运行效果如图513所示。 图513包含家乡选择的注册界面 “ 其运行效果如图516所示。 图516包含爱好选择的注册界面 其中,“唱歌”“跳舞”和“打游戏”是在运行之后手工选择的。 “