get 和 post 俩种提交表单的方式

2023-11-05

get 和 post 俩种提交表单的方式

自动提交表单的数据

启用表单的自动提交方式时,
我们需要添加上这一句:

eg:action="/Main/GetData" method="post"  
action="/Main/GetData"(这是所对应的路径) method="post" 默认为method="get“(这是提交方式 post提交 或 get提交)。

禁用表单的自动提交方式 需要添加上:(俩者都可以,二选一)

  1. οnsubmit=“return false;”

  2. autocomplete=“off”

    eg:action="/Main/GetData" method="post"   οnsubmit="return false;" 
    或  action="/Main/GetData" method="post"    autocomplete="off"
    

form表单的属性 action 和 method

属性 属性值 描述
action URL 规定当提交表单时向何处发送表单的数据
method get / post 规定用于发送form-data的HTTP的方法

以下就是提交表单的方式:

<form action="/Form00/getData" method="post"></form>

URL都有哪些值呢?

URL可能的值
绝对的URL 指向其他网站的站点 (eg: src=“www.baidu.com”)
相对的URL 指向本站点内的文件 (eg:src="/Form/getData")

method 属性 有 get 和 post 这俩个值。

在W3Cchool 中 指出,使用get 提交时 参数是直接暴露在URL上的。

当 get 和 post 相比较时,get 是最简单也是最快的 ,而且get 在大部分的情况下都是可以使用的。

而我们使用post是有条件的。

虽然这样讲,但是get 请求数据就是没有post 请求数据安全。

当我们遇到以下的情况,要使用 post 请求:

  1. 当我们无法使用缓存文件时 (更新服务器上的文件或者数据库)
  2. 当我们向服务器发送大量的数据时 (post 提交, 是没有数据量限制的,而get提交是限制数据量的)
  3. 当我们发送包含未知字符的用户输入时,post 提交 往往 比get提交 更稳定更可靠更好

总的来说:选择post 方法来提交数据更好一点。

get 和 post 到底有什么区别呢?

以下向你们解答:

get 提交方法 post 提交方法
用来向服务器上获取数据 用来向服务器上传递修改数据(或者说传递更新的数据)
将表单里的数据添加到action所指向的URL后面,而且俩者之间是使用“ ? ” 来进行连接的,但是里面的各个变量之间使用“ & ”来进行连接 将表单里面的数据放在form的数据体(FormData)中,然后按照键值对的方式,将数据传递到所指定的action
相对来说,get是不安全的,因为当用户在传输数据的过程中,数据被放在请求的URL上,这样用户就会直接在浏览器上看到提交的数据,不隐蔽 而post的所有操作对于用户来说是不可见的,数据都在数据体(FormData)中
当get方法向URL中添加数据,URL的长度是有限制的(URL的最大长度是2048个字符(而一个字母(或中文)就代表一个字符)) post提交是无限制
get方法是form表单的默认提交方式
获取到数据之后,刷新时是不会有负面的影响的,因为只是获取到数据(没有对整一个页面产生影响) post数据将会被重新提交。可能会产生不良的影响(代码有瑕疵,或者数据路径没有连接上,是会导致有不同程度的报错) (浏览器应该告知用户数据将会被重新进行提交)
—— ——
数据类型的限制
get只允许 ASCII 字符 post 没有字符限制 (企业开发中,假如需求中要提交二进制数据(eg:图片),那么我们就需要使用post 方法来进行提交 )

get 提交 ——get只能通过两种方式接收数据-从控制器中 (第一种 和 第四种方法)

   //获取form表单
                let form = document.getElementById("frm");
               
               //get只能通过两种方式接收数据-从控制器中
                //1./Main/GetData   通过形参接收数据
                //form.action = "/Main/GetData";
                //4.EntityClass     实体类接收数据
                form.action = "/Main/getDataByEntityClass";
                form.method = "get";
                //submit()  提交方法
                form.submit();

post 提交——post可以通过四种方式接收数据-从控制器中

        //获取form表单
                 let form = document.getElementById("frm");
              
                //post可以通过四种方式接收数据-从控制器中
                //1./Main/GetData 通过形参接收数据
                //form.action = "/Main/GetData";
                
               //2."/Main/getDataByFormCollection" 通过FormCollection来接收数据
                //form.action = "/Main/getDataByFormCollection";
                
                //3.通过 Request.Form["name的属性值"]获取表单数据
                //form.action = "/Main/getDataByRequest";
                
                //4.EntityClass实体类接收数据
                form.action = "/Main/getDataByEntityClass";
                
                form.method = "post";
                //submit()  提交方法
                form.submit();

​ 总结:

​ 1. get 请求数据 虽然在大部分的情况下可以使用,但是 个人建议 使用 post 来请求数据。

​ 2. post 方法不但安全,而且post 是按照键值对的方式来传递数据的, post 提交数据无限制的,没有字符限制

​ 还可以 提交二进制数据(图片)。post 不但可以获取数据,还可以修改(更新)数据。

​ 3. 在企业开发中,一般使用post 方法来提交表单数据,以便更好的进行数据的 增删查改 操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

get 和 post 俩种提交表单的方式 的相关文章

  • 7天学完Spring:AOP实战,SpringMVC统一处理

    目录 前言 一丶用户登录权限效验 lt 1 gt 最初用户登录验证 lt 2 gt Spring AOP 用户统一登录验证的问题 lt 3 gt 拦截器 拦截功能演示 lt 4 gt 拦截器原理 lt 5 gt 统一访问前缀添加 二丶统一异
  • xxl-job(2.4.1)使用spring-mvc替换netty的功能

    xxl job 2 4 1 使用spring mvc替换netty的功能 1 xxl job core引入spring mvc的依赖
  • 为什么MVC不是设计模式?

    为什么MVC不是设计模式 mvc不是设计模式 而是设计模式的组合 更像是架构 mvc更像是观察者模式 策略模式 组合模式的组合 model表示应用的数据模型 view处理屏幕上展现给用户的内容 当一个model变化时 与它对应的模块发出通知
  • 面试官:谈谈过滤器和拦截器的区别?

    一 拦截器和过滤器的区别 1 拦截器 Interceptor 只对action请求起作用 即对外访问路径 而过滤器 Filter 则可以对几乎所有的请求都能起作用 包括css js等资源文件 2 拦截器 Interceptor 是在Serv
  • 如何在 CentOS/RHEL 7 上安装 Laravel 8

    Laravel是一个开源 PHP 框架 旨在更快地使用 PHP 开发 MVC Web 应用程序 本文将帮助您在 CentOS RHEL 7 系统上安装 Laravel 8 PHP 框架 第 1 步 设置 Yum 存储库 首先 您需要在系统中
  • 如何实现自定义MVC框架(最终版本)

    目录 一 将MVC框架源码导成jar包 1 1优化的思路 1 2具体步骤 二 创建需要的工具包 分析思路 具体的代码 三 总结 前言 我们通过框架的形式实现一个具有增删改查的网页 一 将MVC框架源码导成jar包 1 1优化的思路 相比我们
  • MVC知识整理

    MVC基础知识整理 ASP NETMVC框架 这里以MVC5为例 涉及到知识有 Model View Controller的使用 Area和Global的理解 路由配置 数据传递的方式 AOP思想的体现 4大过滤器 各种Result Raz
  • 40 个 常用的 SpringBoot 注解,你知道几个?

    一 Spring Web MVC 与 Spring Bean 注解 Spring Web MVC 注解 RequestMapping RequestMapping注解的主要用途是将Web请求与请求处理类中的方法进行映射 Spring MVC
  • SpringMVC 框架详解

    目录 1 什么是 Spring MVC 1 1 什么是MVC 1 2 MVC 和 Spring MVC 的关系 2 第一个SpringMVC程序 2 1 RequestMapping 注解 2 2 ResponseBody 注解 2 3 g
  • 三层架构、MVC、前后分离的一些知识

    三层架构 MVC 前后分离的一些知识 三层架构模型 MVC模式 三层架构与 MVC 架构区别 前后端分离开发时的变化 一个前后端分离项目的分层 前端 MVVM 后端 Service层 Model层 Mapper映射 BLL业务逻辑层 DAL
  • JSP&EL表达式&MVC&三层结构综合案例

    文章目录 JSP 1 JSP 概述 2 JSP 快速入门 2 1 搭建环境 2 2 导入 JSP 依赖 2 3 创建 jsp 页面 2 4 编写代码 2 5 测试 3 JSP 原理 4 JSP 脚本 4 1 JSP 脚本分类 4 2 案例
  • Servlet与Jsp之间有哪些数据传输的方式?

    前言 根据MVC架构大家都很清楚 servlet充当咱们mvc中的c 也就是controller 而jsp则是咱们的view 所以呀 根据它们各自的职责划分 servlet相当于是一个指挥官 将页面数据交给业务逻辑层去处理 处理后的数据也就
  • SSM框架---springMVC

    目录 一 概述 分层思想 二 工作原理 1 导入jar包 2 创建启动类 三 处理请求参数 3 1 get方式 3 2 post方式 3 3 restful方式 推荐 四 处理get 请求的参数 五 处理post请求的参数 六 处理rest
  • 狂神说SpringMVC 最全学习笔记

    SpringMVC 1 回顾MVC 1 1 什么是MVC MVC是模型 Model 视图 Views 控制器 Controller 得缩写 是一种软件设计规范 是将业务逻辑 数据 显示分离得方法组织代码 MVC主要作用是降低了视图与业务逻辑
  • 简述关于ASP.NET MVC与.NET CORE 的区别

    简述关于ASP NET MVC与 NET CORE的区别 1 关于ASP NET 关于MVC 刚开始接触这个技术的时候我经常不理解他们的名字 我相信许多学ASP NET开发人员开始接触MVC应该也和我一样产生很多为什么 也会误认为认为MVC
  • 利用MVC做一个 常见的管理系统

    登陆的部分 gt 数据库 gt 表 admin id name pass regtime 表与类的映射关系 基于面向对象 转换成对象的操作 gt 登陆页面
  • angular中的全局方法和指令介绍1

    复习并总结Angular开发流程 0 下载angular 暴力angular 找到js拖拽过来 npm下载 1 引入 2 在要控制的标签上写上ng app 3 写controller 告诉angular哪部分dom结构有哪个controll
  • 基于SpringBoot的图书管理系统

    基于SpringBoot的图书管理系统 里面整合了比较全的内容 可以说是麻雀虽小五脏俱全 如果看懂了所有的内容可以说是已经非常精通SpringBoot了 一 引言 由于近期看了SpringBoot 一站式开发特别方便 情不自禁用Spring
  • 基本的Java的MVC入门案例

    概念 MVC Model View Controller 模型 视图 控制器 他是一种专门设计web程序的模式 高内聚 低耦合 高内聚 专人干专事 低耦合 让类与类之间的关系不能太紧密 模型 Model 是应用程序中与处理应用程序数据逻辑的
  • 【SpringBoot】Java MVC 集成 Swagger 生成 API 文档

    使用Swagger你只需要按照它的规范去定义接口及接口相关的信息 就可以做到生成接口文档 以及在线接口调试页面 官网 https swagger io Knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案

随机推荐

  • 蚀刻后残留物和光刻胶去除技术

    摘要 在未来几代器件中 去除光刻胶和残留物变得非常关键 在前端线后离子注入 源极 漏极 扩展 使用PR来阻断部分电路导致PR基本上硬化并且难以去除 在后端线 BEOL 蚀刻中 除低k材料的情况下去除抗蚀剂和残留物的选择性非常具有挑战性 介绍
  • uniapp select 多选选择器封装

    前言 作者想实现的功能类似一个uniapp选择器 但是可以选择多个值 同时又可以单选和全选 在uniapp 的UI框架去找 发现没有类似的 最后在uniapp 的插件市场找到了这个multiple select 里面的功能比较全实现了单选全
  • MySQL 多表连接查询

    交叉连接 特点 又称 笛卡尔乘积 将多张表中的数据行一 一对应连接在一起 结果集的数据行数相当于多张表数据行数 相乘 后的结果 语法格式 select 字段列表 from 表1 表2 表3 where 连接条件1 and 连接条件2 注释
  • Windows7下安装Caffe(GPU):试了很久的失败版本(可参考)

    这是个失败的版本 既然记录下来了 就保留下来 总体来说没错 只是可能CUDA版本不合适 可以参考下 一 安装CUDA 1 下载 https developer nvidia com cuda downloads 2 正常安装 出现这个问题
  • Ant Design学习1——概述

    2021SC SDUSC 介绍 Ant Design of React antd 是基于 Ant Design 设计体系的 React UI 组件库 主要用于研发企业级中后台产品 官方简介 蚂蚁集团的企业级产品是一个庞大且复杂的系统 数量多
  • MyEclipse提示过期,MyEclipse Subscription Expired激活方案

    一 错误描述 紧接上文 虽然解决了MyEclipse提示过期问题 但是你会发现出现一行红色提示如下 1 错误日志 Product activation must be completed within 5 days 2 错误说明 产品激活必
  • Windows多显示器编程--VC

    一 Windows中接入多个显示器时 可设置为复制和扩展屏 1 设置为复制屏幕时 多个显示器的分辨率是一样的 位置为0 分辨率值 2 设置为扩展屏幕时 显示器之间的关系比较复杂些 首先Windows系统会识别一个主显示器 这个可以在屏幕分辨
  • 问题总结!常用插件Pytest的测试用例的一些问题

    目录 前言 失败重跑 Pytest rerunfailures 用例执行顺序 Pytest ordering 重复执行 Pytest repeat 多重断言 Pytest assume 前言 Pytest是Python中的一个流行的测试框架
  • Linux经典书籍推荐

    Linux经典书籍推荐 入门篇 LINUX权威指南 书不错 写的很全面也比较广 涉及的不深 做为入门书籍不错 可以比较全面的了解linux 另外比较热门的也可以看看 鸟哥的私房菜 等书 偏管理类的书 如果想做server方向的可以找来看看
  • 如何使用 WSL 在 Windows 上安装 Linux-官方流程

    前提条件 安装 WSL 命令 更改默认安装的 Linux 发行版 设置 Linux 用户信息 设置和最佳实践 检查你正在运行的 WSL 版本 从 WSL 1 升级到 WSL 2 使用 WSL 运行多个 Linux 发行版的方法 想体验最新的
  • 刷脸支付服务商推广进程已逐渐深入

    2019年是刷脸支付的商用元年 刷脸支付推广进程已逐渐深入 移动支付领域巨头间的竞争越发激烈 在支付宝与微信支付之后 银联也正式加入 近日 中国银联旗下云闪付APP正式推出刷脸支付服务 目前已经在宁波 长沙 杭州 嘉兴 合肥 广州 武汉七个
  • docker容器里设置中文时区

    本文讨论docker容器里中文时区的问题 总所周知docker hub上的镜像默认都是英文时区的 在国人使用过程当中需要将时区设置成中文 我原来光配置 etc localtime了date显示的时间也对 但是tomcat日志里输出的时间还是
  • git 基本使用

    git和svn的区别 svn的特点是集中式 工程文件全部放在中央服务器的一个唯一库上 管理员对开发者的权限有掌控 每个人都只能拉取和开发属于自己的模块 且提交按照文件进行存储 有网络要求 git的特点是分布式 每个开发者都能把全部工程文件拉
  • 学习STM32(一)之芯片类型,内核架构的关系

    原文 https blog csdn net qlexcel article details 79299970 ARM内核和架构都是什么意思 它们到底是什么关系 1 ARM内核 从ARM7 ARM9到Cortex A7 A8 A9 A12
  • [开发

    Ngrok是一个开源的 跨平台的 用于将本地服务器 如Web服务器 映射到公共Internet上的工具 它允许你在没有公共IP地址或域名的情况下 将你本地开发环境暴露给其他人 方便测试 演示和与他人共享工作进展 官网地址 官方文档 官方下载
  • IDEA插件的在线离线安装

    插件的使用 插件的设置 在 IntelliJ IDEA 的安装讲解中我们其实已经知道 IntelliJ IDEA 本身很多功能也都是通过插件的方式来实现的 只是 IntelliJ IDEA 本身就是它自己的插件平台最大的开发者而已 开发了很
  • 关闭、开启 hype-v

    情景 在使用docker之后 需要使用虚拟机 直接开启虚拟机会报错 VMware Workstation 不支持在此主机上使用虚拟化性能计数器 有关更多详细信息 请参阅 VMware 知识库文章 81623 模块 VPMC 启动失败 未能启
  • JS 使用DES加密解密

    1 安装插件 npm install crypto js 2 使用 import CryptoJS from crypto js const key abcdefg const keyHex CryptoJS enc Utf8 parse
  • shardingsphere的sharding jdbc报类型转换异常问题

    shardingsphere的sharding jdbc报类型转换异常问题 根据官网的解释 在4 1 1的版本中是不支持数据库的原生native sql的 所有的sql都会被转换校验一次之后才会进入mybatis进行解析 如果你的sql中使
  • get 和 post 俩种提交表单的方式

    get 和 post 俩种提交表单的方式 自动提交表单的数据 启用表单的自动提交方式时 我们需要添加上这一句 eg action Main GetData method post action Main GetData 这是所对应的路径 m