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 俩种提交表单的方式 的相关文章

  • HeadFirst 设计模式学习笔记14——MVC分析

    随笔 346 文章 0 评论 14 本文已搬家至 HeadFirst 设计模式学习笔记 13 MVC分析
  • @Transactional注解失效场景之——同类中方法调用,事务失效

    文章目录 一 亲身案例 二 改进方式 三 原理分析 该篇博客为总结自己曾写下的Bug 一 亲身案例 当时的场景为 在controller层获取一笔交易单的信息 前台传给controller层为Map类型的键值对 然后controller层直
  • 为什么MVC不是设计模式?

    为什么MVC不是设计模式 mvc不是设计模式 而是设计模式的组合 更像是架构 mvc更像是观察者模式 策略模式 组合模式的组合 model表示应用的数据模型 view处理屏幕上展现给用户的内容 当一个model变化时 与它对应的模块发出通知
  • 自定义MVC框架原理

    目录 一 什么是MVC 1 模型 Model 2 视图 View 3 控制器 Controller 二 自定义mvc核心思想 三 自定义MVC的核心原则 四 三层架构和MVC的区别 1 结构层次不同 2 重点关注不同 3 强调的功能不同 4
  • dao层代码

    dao层 数据接口层 方法层 介于业务逻辑层和数据库之间 进行数据的访问和操作 在实际业务处理过程中 往往需要进行多次数据库的访问 这些访问性质往往是相同的 采用Dao层可以将对数据库访问进行封装 避免经行重复性数据库访问开发操作 同时降低
  • SpringMvc进阶

    SpringMvc进阶 SpringMVC引言 一 常用注解 二 参数传递 三 返回值 SpringMVC引言 在Web应用程序开发中 Spring MVC是一种常用的框架 它基于MVC Model View Controller 模式 提
  • 【设计模式】MVC 模式

    MVC 模式代表 Model View Controller 模型 视图 控制器 模式 这种模式用于应用程序的分层开发 Model 模型 模型代表一个存取数据的对象或 JAVA POJO 它也可以带有逻辑 在数据变化时更新控制器 View
  • MVC,MVP和MVVM架构解析

    文章目录 关于架构 框架和设计模式三者的说明 一 MVC 1 概念 2 结构 3 模式 4 优缺点 5 适用场景 二 MVP 1 概念 2 结构 3 与MVC对比 4 优缺点 5 适用场景 三 MVVM 1 结构 2 解析 3 MVVM架构
  • MVC知识整理

    MVC基础知识整理 ASP NETMVC框架 这里以MVC5为例 涉及到知识有 Model View Controller的使用 Area和Global的理解 路由配置 数据传递的方式 AOP思想的体现 4大过滤器 各种Result Raz
  • MVC在Web系统中的模式与应用

    摘要 面向对象的设计模式是经验的总结 MVC思想是原先用于构建用户界面的 这篇文章主要论述了如何在新的Web应用领域中使用设计模式和MVC架构 文章首先介绍了设计模式的概念和特点 以及MVC架构的设计思想 并分析了MVC架构中包含的几种主要
  • 关于ASP.NET MVC与.NET CORE 的区别--小结

    简述关于ASP NET MVC与 NET CORE的区别 1 关于ASP NET 关于MVC 刚开始接触这个技术的时候我经常不理解他们的名字 我相信许多学ASP NET开发人员开始接触MVC应该也和我一样产生很多为什么 也会误认为认为MVC
  • Android面试题——javaMVC、AndroidMVC

    中的 模型 对象 是应用程序的主体部分 多有业务逻辑都应该放到该层 视图 对象 是应用程序中负责生成用户界面的部分 也是整个 架构中用户唯一可以看到的一层 接受用户的输入 显示处理结果 3 控制器 controller 对象 是根据用户的输
  • Bootstrap弹出模态框的运用

    作者 张铭标 撰写时间 2019年 6月3日 Bootstrap模态框主要分为三部分 modal header modal body modal footer 在使用之前需要引入一些插件 bootstrap bundle js jquery
  • 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 案例
  • ABP 框架官网学习资料

    ABP是 ASP NET Boilerplate Project ASP NET样板项目 的简称 新思想 新技术 新架构 更好更快的开发现代ASP NET应用程序 ASP NET Boilerplate是一个用最佳实践和流行技术开发现代WE
  • IDEA中Sprint MVC环境配置<mvc:default-servlet-handler/>报错

    问题描述 在配置applicationContext xml文件时 mvc default servlet handler 出现问题不能正常使用 提示未声明 但是mvc其他的都可以正常使用 比如 mvc annotation driven
  • MVVM框架极简总结

    MVVM是一个前端框架 由model view viewmodel组成 是MVC的升级版 变成了由viewmodel进行m和v之间的双向数据绑定 虽然代码量相较于MVC变得更多了一点 逻辑和视图分开来写 但是更利于代码解耦 也更方便测试来自
  • MVC三层架构

    1 什么是MVC Model View Controller 模型 视图 控制器 模型就是Java对应数据库的那些字段 实体类 视图 就是JSP页面 控制器 就是Servlet负责跳转页面 Controller作用 Controller其实
  • BugkuCTF-WEB题文件上传

    启动场景 发现是文件上传 只能上传图像 不能上传PHP文件 那应该是寻找漏洞上传PHP文件 PHP文件里写入一句话木马 使用burp抓包 不断尝试发现发现需要修改的地方有三个 一个是http head里的Content Type multi
  • Spring MVC开发流程

    1 Spring MVC环境基本配置 Maven工程依赖spring webmvc

随机推荐

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

    摘要 在未来几代器件中 去除光刻胶和残留物变得非常关键 在前端线后离子注入 源极 漏极 扩展 使用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