form表单两种提交方式的区别

form表单中 method有两种提交方法,get和post分别对应HttpServlet中的doGet()和doPost()方法,这两种提交方式其实有很大的区别,现在总结如下:

  1.form表单默认提交方式为get方式,get方式发送数据,此时的数据拼接在URL后面编码方式为ISO-8859-1,此时我在Servlet中获得表单中的数据会出现乱码,解决方法如下


           String userName=request.getParameter("userName");
	
	String msg=new String(userName.getBytes("ISO-8859-1"),"utf-8")
  2.get数据传输,他是把数据放在了http协议中的http_header中拼接在URL后面,因为URL的长度有限制,所以get方式传输数据大小收到了限制。Post方式的数据被放在了http协议的Http_body中,原则上大小没有限制。
 3.get传递参数是通过URL来传递的,比如说 

http://localhost:8080/demo?username=zhangsan&password=123

这样用户的信息被暴露在url中,信息不安全。

4.还有url刷新时get好像可以不用重复提交原来提交的数据,而post则会说内容已提交,想刷新请再提交.

一般情况下,我们都会在doGet中调用doPost,这样可以确保万无一失。form表单的数据提交,以及文件上传我们应该采用post方式。

你可能感兴趣的:(form表单两种提交方式的区别)