同时用post方式提交表单中的基础数据和文件数据时,基础数据接收不到问题

情景,使用postman模拟表单提交,将下面这几个数据传到服务器端,服务器端接收基础数据并保存文件到本地然后返回postman数据
这里写图片描述
服务器端没有取到基础数据(userNo和requestNo),服务器端使用

String userNo=request.getParameter("userNo");
String requestNo=request.getParameter("requestNo");

这种返回取到的是null;
解决方法
一、使用jar包解析数据

二、使用ajax异步传输基础数据或者异步传输文件
{异步就相当于ajax自己开了一个子线程}

ps异步笔记:
原文:js中同步异步的个人理解
这里写图片描述
事件委托:事件在外层元素中的捕获
“同步”——一下就让人想到“一起”这个词;“异步”呢,从字面来讲,好像是在不同的(异)的ways上do something,那首先想到的词可能是“一边…一边…”,比如‘小明一边吃雪糕一边写作业’,这完全没毛病,雪糕吃完了,作业也写完了,这就是异步?那就大错特错了!
这里写图片描述

ps:

问:
ajax异步时,触发ajax去修改数据库,如果频率过高修改数据时,会出现有些没有修改,但是同步以后就不会出现这种问题?
答:
因为第一笔数据还没ok,第二笔数据就来了
问:
tomcat不是多线程吗?一次请求创建一个线程
答:
在异步下,请求还没ok,就给返回结果了,是多线程,第一次把1修改成2,还没修改成功,第二次请求就来了,读到的还是1(脏读)
问:
数据库开着的,但是没有修改到,不是脏读
ps:脏读是修改成功了,但是读到的还是以前的数据
解决:
改为ajax同步
一般写数据用异步

ps:post提交的参数超过了10000个导致后面的数据获取不到问题
参数个数超过tomcat上限,导致获取失败问题解决:
这里写图片描述

ps:一个类似上面的问题却不同的情况
使用get方式提交表单数据,在url后面增加的key-value被遗失
url后面数据被丢失及表单如何发put和delete请求
这里写图片描述
这里写图片描述

ps:get与post方式笔记

  1. get方式:
    get方式提交的时候直接将表单的key-value值追加到url后面,但是有一个缺点:大多数浏览器对get请求中可包含的参数数做了限制
  2. post方式:
    在使用post命名时,不需要在url中添加任何参数,而是从URLConnection中获取输出流,并将key-value值对写入到流中
    这里写图片描述
    附原文链接java来post数据代码
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39885282/article/details/80199721
今日推荐