get方式:
表单数据存放在URL地址后面。所有get方式提交时HTTP中没有消息体。
1、get请求实现方式:
1)直接在URL地址栏中输入URL
2)网页中的超链接
3)form中method为get
4)form中method为空时,默认是get提交
post方式:
表单数据存放在HTTP协议的消息体中以实体的方式传送到服务器。
传送的数据量
GET方式:数据量长度有限制,一般不超过2kb。因为是参数传递,且在地址栏中,故数据量有限制。
POST方式:适合大规模的数据传送。因为是以实体的方式传送的。
安全性
GET方式:安全性差。因为是直接将数据显示在地址栏中,浏览器有缓冲,可记录用户信息。所以安全性低。
POST方式:安全性高。因为post方式提交数据时是采用的HTTP post机制,是将表单中的字段与值放置在HTTP HEADER内一起传送到ACTION所指的URL中,用户是看不见的。
服务端如何获取:
request提供的方法:
String getParameter(String paramName)
paraName写错会返回null
表单不填会返回空字符串
String[] getParameterValues(String paramName)
当需要获取参数名相同的多个参数值时使用该方法,多用于获取提交的表单中复选框的值
参数名不存在时返回null
如何处理中文参数?
表单提交时,浏览器会对中文参数值进行编码。服务器端默认使用ISO-8859-1来解码。注:浏览器会使用表单所在页面打开时使用的字符集来编码
如果表单提交方式是get
在servers配置文件的<connector>标签内添加URIEncoding=“utf-8”
如果表单提交方式是post
request.setCharacterEncoding("utf-8"); 注:要加到所有的request.getParameter()前面
Servlet在浏览器输出中文
为什么会乱码?
out在输出时默认使用iso-8859-1编码
如何解决?
response.setContentType("text/html;charset=utf-8"); 此句必须写在PrintWriter对象声明之前,亲测。