Servlet返回的数据js解析2种方法


Posted in Javascript onDecember 12, 2019

这篇文章主要介绍了Servlet返回的数据js解析2种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

方式1:Json

接收函数:ajax.responseText后面没括号

其实在之前所说的ajax中还遗留了一些问题就是,Servlet返回给js的数据是如何被js解析的呢?

之前只是发送了一句话,所以他就以html的格式进行解析就成功了,但是在实际中我们往往发送的数据是存在一个对象当中的又或者是一组对象当中的,我们应该如何发送呢?

json:js当中有一种有一种结构就是json,说白了就是键值对。

例如下面的:

{ "firstName":"John" , "lastName":"Doe" }

我们可以在Servlet将属性与值进行拼接,得到json格式的字符串,这样js中就能以这样的格式进行数据的解析了。

类似于下面这样:

resp.getWriter().write("{name:"+u.getHeroName()+ 
                ",lifenum:"+u.getLifeNum()+
                ",type:"+u.getType()+
                ",desc:"+u.getDesc()
        +"}")

但是对于懒癌来说这样的方式是极不友好的,所以就要说到强大的jar包了。

有一款名为gson的jar包可以帮你完成拼接的工作

对于使用就是你直接将对象丢进去就好,它会自动帮你转为json格式。

然后又有问题来了,json的数据给js有什么用,我们一般操纵的是对象呀!

别慌,eval帮你解决

Servlet返回的数据js解析2种方法

方式2:XML进行解析

接收函数:ajax.responseXML后面没括号

可以将用户数据以Xml进行发送然后js也以xml格式解析

用户数据的xml可以写在jsp中,然后js的跳转(open函数)就不用跳转到Servlet中而是jsp中找用户数据

用户数据jsp:

<%@ page language="java" contentType="text/xml; charset=utf-8"%>
<user>
  <name>李四</name>
  <pwd>123</pwd>
</user>

ajax接收数据jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
  function getXML(){
    //创建ajax引擎对象
      var ajax;
      if(window.XMLHttpRequest){//火狐
        ajax=new XMLHttpRequest();
      }else if(window.ActiveXObject){//ie
        ajax=new ActiveXObject("Msxml2.XMLHTTP");
      }
    //复写onreadystatechange
      ajax.onreadystatechange=function(){
        //判断Ajax状态吗
        if(ajax.readyState==4){
          //判断响应状态吗
          if(ajax.status==200){
            //获取响应内容
            var doc=ajax.responseXML;
            //处理响应内容
              //获取元素对象
              alert(doc.getElementsByTagName("name")[0].innerHTML);
          }
        }
      }
    //发送请求
      ajax.open("get","xml.jsp",true);
      ajax.send(null);
  }


</script>
</head>
<body>
  <h3>XML数据格式学习</h3>
  <hr>
  <input type="button" value="测试XML" onclick="getXML()" />
  
  
  
</body>
</html>

但是这种方式没有json好,所以推荐用json方式进行进行解析会更好一点。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
项目实践之javascript技巧
Dec 06 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 Javascript
Javascript面向对象设计一 工厂模式
Dec 20 Javascript
jQuery元素选择器用法实例
Dec 23 Javascript
jQuery中not()方法用法实例
Jan 06 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
May 02 Javascript
vue init失败简单解决方法(终极版)
Dec 22 Javascript
微信小程序实现全局搜索代码高亮的示例
Mar 30 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
Sep 14 Javascript
JS实现的自定义map方法示例
May 17 Javascript
Vue3.0 响应式系统源码逐行分析讲解
Oct 14 Javascript
JavaScript 判断数据类型的4种方法
Sep 11 Javascript
微信小程序实现横向滚动导航栏效果
Dec 12 #Javascript
微信小程序 scroll-view 实现锚点跳转功能
Dec 12 #Javascript
微信小程序scroll-view锚点链接滚动跳转功能
Dec 12 #Javascript
JavaScript实现文件下载并重命名代码实例
Dec 12 #Javascript
vue实现鼠标移过出现下拉二级菜单功能
Dec 12 #Javascript
微信小程序背景音乐开发详解
Dec 12 #Javascript
vue实现商城秒杀倒计时功能
Dec 12 #Javascript
You might like
在PHP中使用XML
2006/10/09 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
PHP flush 函数使用注意事项
2016/08/26 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
PHP实现的curl批量请求操作示例
2018/06/06 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
详解Angular操作cookies方法
2018/06/01 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Python查询IP地址归属完整代码
2017/06/21 Python
详解python eval函数的妙用
2017/11/16 Python
TensorFlow的权值更新方法
2018/06/14 Python
Flask框架web开发之零基础入门
2018/12/10 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
研修第一天随笔感言
2014/02/15 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
环保公益广告语
2014/03/13 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
公司放假通知范文
2015/04/14 职场文书
Python中的套接字编程是什么?
2021/06/21 Python