<form metion="post/get" enctype="application/x-www-form-urlencoded / multipart/form-data / text/plain">
<input type="text" name="content">
<input type="submit" name="submit">
</form>
一、metion
1.get方式,使用该方式提交的话,表单项都会保存到http header中,格式为 http://localhost:8080/hello.do?content=value. sever端可以通过request.getParameter可以取道值。
2.post方式(enctype为缺省的application/x/-www-form-urlencoded)
1> 表单数据都保存在HTTP的正文部分,用request.getParameter是可以渠道数据的 content=value
2>(enctype为multipar/gorm-data,多用于文件上传,对于指向传value的做法,显然使用application/json或者text/plain会好很多,可以把数据放到form的header或者body中,在后台使用相应的方法得到具体值)
二、enctype
1、application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。
2、multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。
multipart/form-data 是上传二进制数据
form里面的input的值以2进制的方式传过去,所以这里要明白,使用这种格式以后,后台request就获取不到数据了。
enctype属性是设置提交数据的格式,指定将数据回发到服务器时浏览器使用的编码类型。
3、 text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作.
enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。
form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,取表单值加入数据库时,用到下面的:
SmartUpload su = new SmartUpload();//新建一个SmartUpload对象
su.getRequest().getParameterValues();取数组值
su.getRequest().getParameter( );取单个参数单个值
网友评论