当前位置: 首页 > news >正文

网站公司怎么做推广苏州seo网站系统

网站公司怎么做推广,苏州seo网站系统,网站降权查下,家庭做网站1. servlet为何不能获取PUT和DELETE请求的参数 Servlet的规范是POST的数据需要转给request.getParameter*()方法,没有规定PUT和DELETE请求也这么做 The Servlet spec requires form data to be available for HTTP POST but not for HTTP PUT or PATCH requests. T…

1. servlet为何不能获取PUT和DELETE请求的参数

Servlet的规范是POST的数据需要转给request.getParameter*()方法,没有规定PUT和DELETE请求也这么做

The Servlet spec requires form data to be available for HTTP POST but not for HTTP PUT or PATCH requests. This filter intercepts HTTP PUT and PATCH requests where content type is 'application/x-www-form-urlencoded', reads form encoded content from the body of the request, and wraps the ServletRequest in order to make the form data available as request parameters just like it is for HTTP POST requests.

2. 解决方案

        2-1  前端使用ajax请求时,发送json类型的参数

        2-2  后端使用字符流读取前端传递的参数

3. 具体的实现

        3-1 前端部分

$(function () {// 1. 请求参数let params = {id: 51,phone: '17911113333',userCode: 'barrss',userName: 'barrss',address: '不详',userRole: 1,gender: 1,birthday: '1998-10-12',}// 2. 使用jQuery的$.ajax()发送put类型请求进行用户修改$.ajax({url: 'http://localhost/day81/updateUser',// 请求类型是puttype: 'put',dataType: 'json',// 通过请求头告诉服务端,发送的数据是json类型contentType: 'application/json',// 前端必须传递json字符串,否则后端无法解析data: JSON.stringify(params),headers: { token: '***.***zAyMjYwfQ.***' },success(res) {console.log(res)},error(e) {console.log(e)},})
})

        3-2 后端MyUtil工具类中定义方法 getJSONParams

/***  获得前端发送的json类型参数** @param req 封装客户端请求信息的对象* @return 包含请求参数的Map集合*/public static Map<String, String> getJSONParams(HttpServletRequest req) throws ServletException, IOException {// 1. 打开输入流读取客户端写入的json字符串InputStream in = req.getInputStream();// 2. 使用BufferedReader包装流,指定字符串BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8));String str = null;StringBuilder builder = new StringBuilder();// 3. 读取客户端传递的json字符串参数,拼接到StringBuilder中while ((str = reader.readLine()) != null) {builder.append(str);}String params = builder.toString();// 4. 去除json字符串中的{}params = params.substring(1, params.length() - 1);// 5. 去除json字符串中的 "params = params.replace("\"", "");Map<String, String> map = new HashMap<>();// 6. 拆分字符串,把key=value键值对, 存放到map中String[] arr = params.split(",");for (String item : arr) {String[] code = item.split(":");map.put(code[0], code[1]);}return map;}

      3-3 servlet中的doPut方法中使用getJSONParams即可

  @Overrideprotected void doPut(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {Map<String, String> map = MyUtil.getJSONParams(req);req.setAttribute("params", map);doPost(req, res);}

4. 总结

        使用此种方法获取客户端的put和delete请求方法,要规定客户端必须传递json字符串,后端需要自己开发方法来进行获取,使用起来并不方便,也不灵活。可以考虑使用POST代替PUT或DELETE请求,方便获取参数,不仅安全,而且高效!不妥之处还请指正。

http://www.hkea.cn/news/761842/

相关文章:

  • 建设厅八大员兴安盟新百度县seo快速排名
  • 南京网站建设索q.479185700小说排行榜百度
  • 幼儿做爰网站seo工程师是什么职业
  • 申请空间 建立网站吗西安百度推广运营
  • 做花馍网站百度联盟
  • 沈阳建设企业网站google浏览器官网
  • 毕业论文 网站开发营销qq下载
  • 建网站要多长时间外贸网站优化
  • 苹果网站做的好的点电脑培训网上免费课程
  • 做网站开源互联网优化是什么意思
  • 模仿做网站b站上海热点新闻
  • phpcmsv9网站地图地推的60种方法
  • 湖南手机版建站系统哪个好百度网盘app怎么打开链接
  • asp网站开发的实训报告电商营销推广有哪些?
  • 交互设计流程外贸网站优化公司
  • 网络营销网站策划个人网站seo入门
  • 云南省网站备案要求全渠道营销的概念
  • 装修网站合作平台有哪些torrentkitty磁力猫
  • 大理网站开发长春seo结算
  • 西双版纳疫情最新情况seo营销的概念
  • 网站推广seo蜘蛛屯优化排名模板建网站价格
  • 怎样建设公司网站小程序b2b网站大全免费
  • 百度抓取不到网站百度识图搜索图片来源
  • 企业网站栏目规划的重要性网络营销的概述
  • 公司网站建设找谁做免费发布推广信息网站
  • 虚拟币网站开发seo百度关键字优化
  • 网站建设都 包括哪些淄博网站制作
  • 自己做装修网站南宁百度推广seo
  • 品牌建设浅谈seo网络营销外包
  • 昆山网站建设兼职千锋教育的官网