当前位置 : 主页 > 编程语言 > java >

后台request接收ajax传输的参数

来源:互联网 收集:自由互联 发布时间:2022-10-26
问题: 今天小明在生产中碰到了一个问题让他百思不得其解. 具体操作如下:小明照常在公司划水,结果一大领导说你功能有问题.轮播图后台配置的跳转链接点击跳转不了..然后小明心里就


  问题:

  今天小明在生产中碰到了一个问题让他百思不得其解.

  具体操作如下:小明照常在公司划水,结果一大领导说你功能有问题.轮播图后台配置的跳转链接点击跳转不了..然后小明心里就慌得一比,赶紧查找问题的根源所在.

  众所周知大家查找问题通常是从日志中查找,但是大领导催的急,于是乎 小明直接从数据库入手查看一下大领导配置的那条数据,一看吓了小明一跳,数据已经保存上了,但是有一个字段没有保存.这让小明不得其解.

  然后小明就对这种问题一通查找.

  

后台request接收ajax传输的参数_ajax

  最终确定问题所在是,保存的参数因为长度过长其中里面还有多种的不规范字符.再进行保存的时候被后台的数据校验过滤器给校验住

  然后这个字段的数据被当成了sql脚本注入信息处理了,是保存不上的.然后被啪啪的打脸.

  

后台request接收ajax传输的参数_java_02

  解决:

  问题终于找到了,那就加把劲来解决吧!!解决方案跟经理聊了下.最终经理坚定不让修改后台代码,让我在jsp中进行修改..定下方案后心中有一万头路过.

  

后台request接收ajax传输的参数_javascript_03

  最终还得找程序员的"百度爸爸"帮忙,于是乎网上个种少操作.

  这些少操作被小明还一一实现了,最终结果是全军覆没.

  例如:ajax中的传入参数全部修改为json进行传输,但是新的问题又来了,这个json也会被这filter校验住.

  还有什么讲ajax中提交添加fromdata什么的,也同样不好使..

  最终没办法了于是乎小明去看有关于ajax中类型的定义跟后台request接收方法的对应

  总结:request方法

  request中获取请求中的参数的方法,

  获取所有参数key

  request.getParameterNames(); get和post都可用

  获取参数value

  request.getParameter("test"); get和post都可用

  获取请求参数集合

  request.getParameterMap(); get和post都可用:

  上述的这几种方法都不适用ajax中 contentType为multipart/form-data

  这也就是小明所困扰的:明明在ajax中已经传递的参数,但是为什么后台接受不到的问题,是因为公司系统的规则:jsp中的数据都是文件形式和二进制流的方式进行传输到后台.所以ajax中contentypt属性必须设置为multipart/form-data.

  知道这个就好修改了..

  然后就是查询request的API找到了在ajax中contentype为multipart/form-data类型的请求包体都需要通过流的的方式进行读取

  获取文本流

  request.getInputStream() 适用于如:application/json,xml,multipart/form-data文本流或者大文件形式提交的请求

  于是乎小明就在后台写了一个最基础的读取流信息,然后将参数进行保存到后台,,

  然后运行测试一遍通过,,完美的跟大领导交差了..

  小明心里想又可以快乐的混日子了.....

  

后台request接收ajax传输的参数_ecmascript_04

网友评论