doGet和doPost的区别

来源:互联网 发布:触屏软件 编辑:程序博客网 时间:2024/05/17 05:09

dopost()中处理的是form中的action

 

get和post这是http协议的两种方法,另外还有head,  delete等  
这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。  
在servlet开发中,以doGet()和doPost()分别处理get和post方法。  
另外还有一个doService(),  它是一个调度方法,当一个请求发生时,首先执行doService(),不管是get还是post。在HttpServlet这个基类中实现了一个角度,首先判断是请求时get还是post,如果是get就调用doGet(),  如果是post就调用doPost()。你也可以直接过载doService()方法,这样你可以不管是get还是post。都会执行这个方法。  
---------------------------------------------------------------  
 
1.通过表单提交到的servlet,看form的method是get还是post  
2.通过链接访问的servlet,doGet  
3.直接在ie地址栏中键入的servlet地址,doGet  
 
一般只要实现一个doGet,再另外一个doPost里面调用doGet(resq,resp),resq和resd是doPost的参数.  
---------------------------------------------------------------  
 
可以互相调用.  
doGet()  和doPost()方法,前者处理你表单提交来的method=get的请求,后者处理method=post  的请求  
--------------------------------------------------------------- 

老师说post安全点那以后get里面都写doPost(request,response)嵌套一下。平时也没事,但一次做程序时

form提交的action=“xxServlet?id=3”参数在post里怎么也接收不到才发现问题,把表单的method设为post(默认是get)解决。或是提交方式为

window.location.href="xxServlet?id=3";这种方式get里doPost()的话post里也能接收到,所以以前问题没暴露出来。看来以后每个表单都应该写method,get post那边也要按职责接收参数不要嵌套。

原创粉丝点击