Bootstrap

servlet中的dopost方法与doget方法

问题:为什么在servlet中的dopost方法中调用doget方法

最终我得到的最好的理解:仅仅考虑这是两个方法,都可以互相调用,在dopost中调用doget方法只是因为我们不知道浏览器发送的是什么请求,虽然协议不同,但实现的逻辑是相同的,所以可以直接调用。

下面进一步说明http中的get方法与post方法
doget:

一般来说我们是用不到doGet方法的,doGet方法提交表单的时候会在url后边显示提交的内容,所以不安全。而且doGet方法只能提交256个字符(1024字节),因为get方式数据的传输载体是URL(提交方式能form,也能任意的URL链接)

dopost:

doPost没有限制,POST是HTTP请求体中键值对(只能以form方式提交)。通常我们使用的都是doPost方法,你只要在servlet中让这两个方法互相调用就行了,例如在doGet方法中这样写
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doPost(request,response);
}
再把业务逻辑直接写在doPost方法中。servlet碰到doGet方法调用直接就会去调用doPost因为他们的参数都一样。而且doGet方法处理中文问题很困难,要写过滤器之类的。

get与post

get和post是http协议的两种方法,另外还有head, delete等
这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。
在servlet开发中,以doGet()和doPost()分别处理get和post方法。
首先判断请求时是get还是post,如果是get就调用doGet(), 如果是post就调用doPost()。

;