Http的请求方式详细介绍Get和Post

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对象声明之前,亲测。


作者:danielJinyu

本文版权归作者和博客园共有,欢迎转载,但未经作者同意请保留此段声明,请在文章页面明显位置给出原文连接
Github:https://github.com/DanielJinyu

原文地址:https://www.cnblogs.com/danielJinyu/p/11364723.html