zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    关于程序与语言
    最新笔记请查看
    MySQL 性能优化
    k8s flannel无法跨主机ping通pod的解决方案
    k8s 使用kubeadm部署k8s集群初体验
    MySQL 锁和可重复读的隔离级别结合起来的一个示例(来自MySQL45讲第8章)
    MySQL 可重复读 vs 读提交
    Jenkins配置Linux节点,通过ssh方式在Linux节点自动拉取github代码并执行
    AppScan 使用
    Linux 动态链接库和静态库示例
  • 原文地址:https://www.cnblogs.com/danielJinyu/p/11364723.html
Copyright © 2011-2022 走看看