form表单中 method有两种提交方法,get和post分别对应HttpServlet中的doGet()和doPost()方法,这两种提交方式其实有很大的区别,现在总结如下:
1.form表单默认提交方式为get方式,get方式发送数据,此时的数据拼接在URL后面编码方式为ISO-8859-1,此时我在Servlet中获得表单中的数据会出现乱码,解决方法如下
String userName=request.getParameter("userName");2.get数据传输,他是把数据放在了http协议中的http_header中拼接在URL后面,因为URL的长度有限制,所以get方式传输数据大小收到了限制。Post方式的数据被放在了http协议的Http_body中,原则上大小没有限制。
String msg=new String(userName.getBytes("ISO-8859-1"),"utf-8")
3.get传递参数是通过URL来传递的,比如说
http://localhost:8080/demo?username=zhangsan&password=123
这样用户的信息被暴露在url中,信息不安全。
4.还有url刷新时get好像可以不用重复提交原来提交的数据,而post则会说内容已提交,想刷新请再提交.
一般情况下,我们都会在doGet中调用doPost,这样可以确保万无一失。form表单的数据提交,以及文件上传我们应该采用post方式。