servlet 解析表单数据

来源:互联网 发布:如何用记事本编写java 编辑:程序博客网 时间:2024/06/08 03:25

  servlet获取表单数据的方式有二种:getParameter(),getInputStream()具体采用哪一种方式获取数据,主要取决于表单数据的编码方式。

  通常表单的编码方式有两种:一种是application/x-www-form-urlencoded,这也是表单默认的编码方式;另一种是multipart/form-data,当需要将表单中的数据与文件一起进行传输时,需要将数据的编码设置成multipart/form-data,如,进行文件上传时。采用种编码方式先定义好一个不可能在数据中出现的字符串作为分界符,然后用它将各个数据段分开,而对于每个数据段都对应着 html 页面表单中的一个 input 区,包括一个 content-disposition 属性,说明了这个数据段的一些信息,如果这个数据段的内容是一个文件,还会有 content-type 属性,然后就是数据本身。

  当数据采用application/x-www-form-urlencoded编码时,servlet采用getParameter()获取前台传递的参数;

  当数据采用multipart/form-data时,servlet采用getInputStream();

注意:当已使用request.getParameter()获取数据后,再通过request.getInputStream()获取数据时,获取到的数据为空。因为在调用request.getParameter()时,系统可能对表单中提交的数据以流的形式读了一次,而在一次请求中,流只能被读一次。


原创粉丝点击