form表单几种提交方式及后台获取总结

2017-04-07 / 12 阅读 / Java

<form>分get和post提交,其中enctype的不同又会影响后台接收的数据方式。在这里做一个总结。
后台获取参数无非两种方式:
1、request.getParameterMap()
2、request.getInputStream()
但是根据提交方式的不同,两种方式有时可行有时又会出现问题。

Post提交

用这种方法提交的表单,数据将以数据块的形式提交到服务器,表单数据不会出现在URL中,所以用这种方式提交的表单数据是安全的。如果表单数据中包含类似于密码等数据,建议使用post方法

 

后台获取参数post提交又分以下enctype几种情况

enctype值获取方式是否可以获取到
application/x-www-form-urlencodedgetParameterMap()
getInputStream()
multipart/form-datagetParameterMap()
getInputStream()
text/plaingetParameterMap()
getInputStream()

注意:post提交是以流的形式读取数据,所以当getParameterMap和getInputStream都可以读取时,它们是相斥的,因为流只能读一次。

Get提交

这是发送表单数据的默认方法,这种方法会以 “?name1=value1&name2=value2”的形式,将表单数据附加到URL的后面,提交到服务器处理,这种方法安全性当然不如post方法,因为表单数据会暴露在URL中,但是它的处理效率要比post方法高。如果表单中的数据没什么隐私数据,建议使用get方法,它的效率较高

enctype值获取方式是否可以获取到
application/x-www-form-urlencodedgetParameterMap()
getInputStream()
multipart/form-datagetParameterMap()
getInputStream()
text/plaingetParameterMap()
getInputStream()
相关推荐