doGet和doPost
小白今天开始尝试着用Servlet,创建后有两个方法,小白很疑惑。他们都是干什么的,有什么区别???
doGet和doPost其实就是用来接收前端传过来的数据,本质上都是请求方法。因为servlet的请求类型有get和post两种类型。get调用,一般用于获取服务器信息,并将其作为响应返回给客户端。即当经由web浏览器、HTML、JSP直接访问servlet的url时,调用;post用于把客户端数据传送到服务器端,但也有不好的地方。
当服务器创建servlet对象后,servlet对象调用init方法初始化自己。以后每当服务器接收到一个servlet请求时,都会调用产生一个新线程,在这个新线程中,servlet对象调用service对象对HTTP请求类型进行检查,判断出请求类型是get还是post,在service方法中,根据请求类型对应的调用doGet、doPost方法。
Get和Post的区别:
一:get请求,页面传输的信息会以键值对的形式,显示在地址栏中的url后面达到传送目的的。
post请求,是根据http请求的附件 传送的。在地址栏没有明文显示。
二:get请求对提交的数据有大小的限制,通常在1024字节左右。不用来提交大数据。
post请求对提交的数据大小没有限制。
一般servlet都是默认用get方式接受前端数据,因为get请求类型可以很方便的控制链接的目标地址。
当然这两种方法有着本质上的不同:
get只有一个流,参数附加在url后,大小个数有严格的限制 且 只能是字符串。
post是通过另外的流传递,不通过url,所以没有大小的限制,可以传递二进制数据,如:文件上传。
一般,程序员们都是采用:把方法写在doGet里面,然后在doPost里面调用doGet.个人感觉doGet方法弊病很多,只是方便在开发的时候在浏览器上测试。