表单中的method为get和post的解读
解读
form表单中的method方法,其值get/post,对应的http协议中的GET和POST传送方法。即指明的是http协议传送请求报文的方式。
区别:
1、请求方式的语义。
GET意指得到资源,是要从服务器上获取资源文件,我们在地址栏输入网址就是一种GET方式的http请求,服务器响应返回给客户端html、css、js、img...等资源。
而POST意指传输,是发送数据给服务器,由服务器获取到数据后,执行后续的业务操作(比如查询数据库...),POST不侧重返回资源给客户端。
2、请求的表现形式。
表单中使用GET方式时,参数都会被追加到action的路径后面,以明文显示,如ManagingKnowledge/main.jsp?fileName=test.md&fileType=.docx
。
而使用POST的方式,参数都被写在了请求报文的请求头部中,随着请求一起发送到服务器。
3、请求的安全性分析。
很明显,GET方式传输过程中,数据都在url中显示了,那么在传输的过程中就有可能被别人监听请求url或者截取http数据包,这样你的数据(用户名、密码)就被别人给窃取了,所以不安全。像代理服务器等都会把请求url记录到日志中,这样他人就能查看到了。
而POST方式提交的数据,如果别人监听你的请求url是得不到你的数据的,但如果截取了你的数据包,那么你的数据同样还是可以被别人窃取,因此,也是不安全的。
安全是相对性而言,GET的数据在地址栏就显示了,而POST的数据,其实在浏览器的NetWork中监听请求数据包,也可以查看到你的数据。
如果想安全传输数据的话,应该对数据先进行加密处理,然后发送出去。如用户的密码,用RSA加密后存储到数据库中,数据库不应该保存用户的明文密码。(一系列加密技术)或者是用SSL协议,加入secure layer层。
4、传输的数据量。
GET方式由于是地址追加方式,数据量受URL长度限制。
而POST方式可以传输大量数据,都是放在http报文中。
服务器端取出form的数据
表单中的input,排除掉style="display:none;"
或者disabled="disabled"
的input不能传输值到服务器,其余的input,只要设置了name,name其value属性的值都可以传输到服务器中被接收。
服务器接收
String input_value = request.getParament(String name);
就可以获取表单传来的值了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。