get只有一个流,参数附加在url后,地址行显示要传送的信息,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。
1、安全GET调用在URL里显示正传送给SERVLET的数据,这在系统的安全方面可能带来问题,例如用户名和密码等POST就可以在一定程度上解决此类问题
2、服务器接收方式服务器随机接受GET方法的数据,一旦断电等原因,服务器也不知道信息是否发送完毕而POST方法,服务器先接受数据信息的长度,然后再接受数据
3、form运行方式当form框里面的method为get时,执行doGet方法当form框里面的method为post时,执行doPost方法
<form method="post" action="Login" name="loginForm" id="loginForm" onsubmit="return OnSubmit();">
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执行.
原文:http://www.cnblogs.com/SSatyr/p/3613278.html