get 只有一个流,参数附加在 url 后,地址行显示要传送的信息,大小个数有严格限制且只能是字符串。
post 的参数是通过另外的流传递的, 不通过 url ,所以可以很大,也可以传递二进制数据,如文件的上传
1. Get 显示传值, Post 隐式传值
2. 编码 doGet 默认 ISO-8859-1 doPost 界面的编码
3. 参数信息量长度 doGet 有限制, 1.3K ?, doPost 没有限制,但是容器规范会限制 doPost 的参数长度,超过就不认了
2. 服务器接收方式
服务器随机接受 GET 方法的数据,一旦断电等原因,服务器也不知道信息是否发送完毕.
而 POST 方法,服务器先接受数据信息的长度,然后再接受数据.
除了 form 表单的 method="post" 这种方式属于 post 方式提交 , 其它都是 get 方式提交 , 比方说什么超链接了 , 什么页面重定向了 , 这些方式访问 Servlet 都属于 get 方式提交
· forward 跳转是转发请求 , 不转发地址的 , 简单点说 ,forward 不但把请求的内容转发了 , 连同请求的方式也转发了 , 这样我们就明白了 ,Bp 通过 forward 来访问 Servlet 到底是 get 还是 post, 关键要看 Ap 是如何请求 Bp 的 , 因为 forward 把请求的方式也转发了 , 这就是为什么 Ap 的提交方式变了 ,Bp 访问 Servlet 的方式也变了的原因。