使用JSP处理HTML表单

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7.2.6 JSP处理与Form相关的常 用标签实例
• userInfo.html包含表单。
文本输入标签(Text) <input type="text" name="Name" size="15" maxlength="15"> 密码输入标签(Password) <input type="password" name="Password" size="15" maxlength="15"> 单选按钮输入标签(Radio) <input type="radio" name="Sex" value="Male" checked>男 <input type="radio" name="Sex" value="Female">女 复选框输入标签(Checkbox) <input type="checkbox" name="Habit" value="Read"> 看书 <input type="checkbox" name="Habit" value="Football"> 足球 <input type="checkbox" name="Habit" value="Travel"> 旅游 <input type="checkbox" name="Habit" value="Music"> 听音乐 <input type="checkbox" name="Habit" value="Tv"> 看电视

1、Get是用来从服务器上获得数据,而Post是用来向 服务器上传递数据。 2、Get将表单中数据的按照variable=value的形式,添 加到action所指向的URL后面,并且两者使用“?‖连接, 而各个变量之间使用“&‖连接;Post是将表单中的数 据放在form的数据体中,按照变量和值相对应的方式, 传递到action所指向URL。 3、Get是不安全的,因为在传输过程,数据被放在请 求的URL中,而如今现有的很多服务器、代理服务器 或者用户代理都会将请求URL记录到日志文件中,然 后放在某个地方,这样就可能会有一些隐私的信息被 第三方看到。另外,用户也可以在浏览器上直接看到 提交的数据,一些系统内部消息将会一同显示在用户 面前。Post的所有操作对用户来说都是不可见的。
• 表单有以下三个重要的属性 • action属性:属性定义了当表单被提交时数据被送往 何处,如果为空,就提交给当前页面。 • method属性:指定传输方式,GET或者POST • enctype属性:指定将数据回发到服务器时浏览器使 用的编码类型。默认情况,这个编码格式是 application/x-www-form-urlencoded,不能用于文件 上传;只有使用了multipart/form-data,才能完整的 传递文件数据在使用表单传送数据的时候,如果 form 加了enctype="multipart/form-data" 这个属性, 那么表单请求传到另一个jsp或servlet 里时是不能用 request.getParameter()来获取到各个表单元素的值的。 <form name="form1" action="test.jsp" method="po st" enctype="multipart/form-data"> 是上传二进制数据
7.1.3 使用GET/POST方法 传递参数
• 在B/S应用程序中,前台与后台的数据交互, 都是通过HTML中Form表单完成的。Form提供 了两种数据传输的方式——get和post。虽然它 们都是数据的提交方式,但是在实际传输时确 有很大的不同,并且可能会对数据产生严重的 影响。虽然为了方便的得到变量值,Web容器 已经屏蔽了二者的一些差异,但是了解二者的 差异在以后的编程也会很有帮助的。 Form中的get和post方法,在数据传输过程中 分别对应了HTTP协议中的GET和POST方法。 二者主要区别如下:
• 4、Get传输的数据量小,这主要是因为 受URL长度限制;而Post可以传输大量的 数据,所以在上传文件只能使用Post。 5、Get限制Form表单的数据集的值必须 为ASCII字符;而Post支持整个ISO10646 字符集。 6、Get是Form的默认方法。
• 第一种 GET • 它将表单内容附加URL之后,中间用问号连接,然后 传送至指定的程序做处理。 • http://specifiedURL?Name1=Value&Name2=Value2 • 在hello user 实例中,使用的是GET进行数据传送,表 单数据传给hellouser.jsp页面的方式如下: • http://hellouser.jsp?username=liuyongpo • 因为hellouser.jsp页面接收到数据后重定向到了 response.jsp页面,所以地址栏看不到上述信息。 • 第二种 POST,这个方法是将表单内容作为一个数据体 而不是URL的一部分传送给服务器的。所以URL中看 不到表单的内容。
7.1.2 创建HTML表单
• HTML表单的形式如下 • <form action=―url‖…> … </form> • 一个表单有三个基本组成部分。 • 表单标签:这里面包含了处理表单数据所用JSP程序的URL 以及数据提交到服务器的方法。 • 表单域:包含了文本框、密码框、隐藏域、多行文本框、 复选框、单选框、下拉选择框和文件上传框等。 • 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数 据传送到服务器上或者取消输入,还可以用表单按钮来控 制其他定义了处理脚本的处理工作。 • 一个JSP页面中可以有多个表单,但是不能嵌套。
JSP操纵HTML表单步骤
1、 写JSP原文件,创建一些HTML的表单并命名。 2、 在Java文件里写Bean,定义属性,GET或者SET 方法来配合已经被你指定好名字的表单。 3、 回到JSP原文件中,增加<jsp:useBean>标签来创 建一个或者调用一个现成的Bean。 4、 增加<jsp:setProperty>标签设置HTML表单中需要 SET方法的Bean的属性。 5、 增加<jsp:getProperty>标签设置HTML表单中需 要GET方法的Bean的属性。 6、 如果需要处理更多的用户数据,用request对象。
第7章 使用JSP处理HTML表单
• 7.1在JSP中创建与处理HTML表单 • 7.2 与Form相关的常用标签的处理方法 • 7.3 表单数据的类型转换
7.1在JSP中创建与处理HTML表单
• 首先,JSP引擎把存放在request对象中的数据 发到JSP页面指定的服务器端的组件 (JavaBeans组件, servlet,或者enterprise bean), 组件收到这些个数据以后,有可能再把这些数 据存到数据库或者其他的地方存放起来,同时, 返回一个response对象给JSP引擎。这时JSP引 擎和Web服务器再发送一个整理好的完整的 页 面给客户,也就是我们在浏览器上看到的结果。 客户和服务器间的通信协议可以用HTTP,当 然也可以用其他协议。
7.2.1 处理隐藏域标签
• 隐藏域标签语法如下: • <input type=―hidden‖ name=―…‖ value=―…‖>
Байду номын сангаас
7.2.2 处理TextArea
• 处理的标签语法如下: • <textArea name =―TextAreaName‖ col=―ColsNum‖ rows=―RowsNum‖></textarea> • 例sendTextArea.jsp用于输入数据文本 • TextArea.jsp用于处理和显示结果
• 用户将数据传到JavaBean,一旦想重新得到数 据,并在JSP页面中显示出来,就要将处理结 果返回给客户端。要实现这一步,则需要 <jsp:getProperty>标签: • <jsp:getProperty name=―mybean‖ property=―usename‖/> • 另外,还可以使用表达式直接调用Bean中的方 法获得属性值: • <%=mybean.getUsername()%>
• 另外 • 用get方法传递中文有问题,用post没有问题。 pageEncoding这个只对post起作用。get方法提 交时,大家可以从地址栏里看到提交的参数, 这是因为get方法传递是作为报文头提交的,而 pageEncoding对报文头是没有作用的,所以仍 然按照 iso8859-1编码,才出现了乱码问题。而 post提交的是form表单的内容,pageEncoding指 定了它的编码,所以他会按照指定编码传递。
• • • • • • • • •
4、单选框(Radio Button) 优点:这也是从考试时的单选题来的,比多选框好些,每组最多只 选择一个选项 ; 缺点:和多选框一样,如果选项过多,会占用大量的空间; 5、下拉列表(List/Menu) 如果说多选框与单选框是浪费空间的大户,下拉列表则恰巧与前两 者相反。它节省空间又可有数量庞大的下拉选项,真是小而强。 优点:在空间有限的情况下,使用此小而强的控件,可以展示更多 选项内容。比较常见的就是国家的下拉列表; 缺点:由于小而强过于节省空间,导致当下拉列表选项过多时。会 让选择的人找不到要选择的选项; 6、文本域(File Field) 上传文件之用,左边的那个灰色输入框有时候会让人很迷惑:先输 入文字再点浏览文件?
图7.1 数据流在服务器和客户之间的传递
response Client response JSP Container& Web Server JSP File response
request
Component
request
request
7.1.1 一个动态交互的hello user实例
• 下面是一个简单的动态交互的hello user实例, 该实例共包含3个文件。 • 一个JavaBean(NameHandler.java)用来传递数据。 • 两个JSP文件(hellouser.jsp和reponse.jsp) hellouser.jsp用来让客户通过HTML表单向JSP 引擎输入数据; reponse.jsp用来在浏览器上返回结果。
7.2 与Form相关的常用 标签的处理方法
• FORM中常用的标签主要有以下几种类型: • 文本框(Text)、隐藏域(Hidden)、密码框 (Password)、单选框(Radio)、复选框 (Checkbox)、下拉选择框(Select)、文件上传框 (File)和文本区(TextArea)。 • 其中文本框、隐藏域、密码框、单选按钮、单选下拉 选择框文本区使用request内置对象的getParameter方法 获取标签内的数据,如果指定的标签名存在,但没有 值, getParameter 返回空字符串;如果指定的标签名不 存在,返回null。 • 复选框和多选下拉选择框使用request内置对象的 getParameterValues方法获取包含选中选项的数组。
7.2.3 处理Radio标签
• Radio标签的语法格式如下: • <input type=―radio‖>
7.2.4 处理Checkbox标签
• Checkbox标签的语法如下: • <input type=―checkbox‖>
7.2.5 处理Select标签
• • • • Select标签的语法如下: <select name=―Name‖> <option value=―Value‖>选项</option > </select>
• 常用的web表单控件。总共有6类基本类 型(不包括隐藏域等在页面中无法看到的), 如下图所示:
• 每个表单控件也都有各自的优缺点: • 1、文本框(Textfield) 优点:对输入的内容几乎无任何限 制; • 缺点:由于文本框过度发达的自由无限制,导致它不能严格 限制用户输入内容的类型(如:字符型,数字型等),以及限制内 容的长短; • 2、命令按钮(Button) • 优点:受益于按钮设计视觉上凸出的感觉,不光如此许多有 凸出感的图片也会导致大量的用户点击(这是题外话了); • 缺点:受制于按钮区域的限制,不能做得太长,谁见放两三 行文字的按钮呢?因此,按钮内的文案需要简洁明了。 • 3、多选框(Checkbox) • 优点:类似于读书考试时候做的多选题,可选择多个选项。 还记得那个万恶的说明:选对一个给半分,选错一个不给分 ; • 缺点:如果多选框过多,占用大量的空间。在空间紧张的时 候要作合理的安排。
7.1.4 使用JavaBean处理 表单数据
• HTML表单的数据传到JavaBean里需要两 个工作: • 第一个工作用<jsp:useBean>标签创建或 者定位到JavaBean, • 第二个工作在JavaBean里面用 <jsp:setProperty>设置属性值。
7.1.5 将处理结果返回给客户端
相关文档
最新文档