天天看点

使用 Servlet 读取表单数据

一、概述

    Servlet 有一个比较好的功能就是可以自动处理表单提交的数据。我们只需要调用HttpServletRequest#getParameter(String name),就可以获得指定参数的值(String),注意此方法是大小写敏感的。其返回值(String)与其对应的URL编码一致。当参数name存在可没有值的时候,会返回一个空串(“”),当参数name 不存在时,会返回 null。当某一个参数有多个值时,可以调用方法getParameterValues(String name),返回字符串数组。当指定参数不存在时,getParameterValues(String name)返回null;当指定参数只有一个值时,返回一个只有一个元素的数组(String)。

    接着谈一下的是,尽管大部分时候,servlet 都只需要获取指定参数的值。不过在调试时,获取整个参数列表也是一个不错的选择。调用方法 getParameterNames()可以获取表单参数名的枚举列表,每一条目都会强制转换为 String,可以用于getParameter(String name)和getParameterNames()。需要注意的是,所返回的枚举列表在任何情况下都不能保证各个元素的排列数序。

二、Demo

    Demo1,读取三个指定参数的值。如下,我们设计的一个简单的form,

<a href="http://peiquan.blog.51cto.com/attachment/201310/21/7518552_1382326087gJhs.png"></a>

    register.jsp代码如下:

    对应的,看一下Servlet ThreeParams.java 代码如下:

     其输出效果如图:

    以上Demo演示了,如何获取一个指定参数的值,不过都一个个来获取的。有时候我们也许需要一次性获取所有参数的值,那怎么做呢???

   Demo2:一次性获取所有参数。form 表单设计如下:

<a href="http://peiquan.blog.51cto.com/attachment/201310/21/7518552_1382326090rlAR.png"></a>

    info.jsp代码如下:

    现在来看一下Servlet ShowParemeter.java 的代码设计:

    其对应的输出如下:

<a href="http://peiquan.blog.51cto.com/attachment/201310/21/7518552_1382326092q0gf.png"></a>

    注意的是:getParameterNames()从不保证获取参数的顺序。

本文转自peiquan 51CTO博客,原文链接:http://blog.51cto.com/peiquan/1312545