doGet 和 doPost 1
get 只有一个流,参数附加在 url 后,地址行显示要传送的信息,大小个数有严格限制且只
能是字符串。
post 的参数是通过另外的流传递的, 不通过 url,所以可以很大,也可以传递二进制数据,
如文件的上传。
1、安全
GET 调用在 URL 里显示正传送给 SERVLET 的数据,这在系统的安全方面可能带来问题,
例如用户名和密码等
POST 就可以在一定程度上解决此类问题
2、服务器接收方式
服务器随机接受 GET 方法的数据,一旦断电等原因,服务器也不知道信息是否发送完毕
而 POST 方法,服务器先接受数据信息的长度,然后再接受数据
3、form 运行方式
当 form 框里面的 method 为 get 时,执行 doGet 方法
当 form 框里面的 method 为 post 时,执行 doPost 方法
4、容量限制
GET 方法后面的信息量字节大小不要超过 1.3K,而 Post 则没有限制
###########最后说明的是:
你可以用 service()来实现,它包含了 doget 和 dopost ;service 方法是接口中的方法,servlet 容
器把所有请求发送到该方法,该方法默认行为是转发 http 请求到 doXXX 方法中,如果你重载了
该方法,默认操作被覆盖,不再进行转发操作!
service()是在 javax.servlet.Servlet 接口中定义的, 在 javax.servlet.GenericServlet
中 实 现 了 这 个 接 口 , 而 doGet/doPost 则 是 在 javax.servlet.http.HttpServlet 中 实 现 的 ,
javax.servlet.http.HttpServlet 是 javax.servlet.GenericServlet 的子类.
所 有 可 以 这 样 理 解 , 其 实 所 有 的 请 求 均 首 先 由 service() 进 行 处 理 , 而 在
javax.servlet.http.HttpServlet 的 service() 方法中, 主要做的事情就是判断请求类型是 Get 还是
Post, 然后调用对应的 doGet/doPost 执行.