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语言的思想前提想学习js的朋友可以看看
Apr 01 Javascript
javascript中利用数组实现的循环队列代码
Jan 24 Javascript
javascript ie6兼容position:fixed实现思路
Apr 01 Javascript
jquery取消选择select下拉框示例代码
Feb 22 Javascript
jQuery循环动画与获取组件尺寸的方法
Feb 02 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
Oct 23 Javascript
FullCalendar日历插件应用之数据展现(一)
Dec 23 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
Dec 02 Javascript
BootStrap 动态表单效果
Jun 02 Javascript
基于Vue实现电商SKU组合算法问题
May 29 Javascript
ES6的异步终极解决方案分享
Jul 11 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
Nov 13 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生成txt文件标题及内容的方法
2014/01/16 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
brook javascript框架介绍
2011/10/10 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
angular中ui calendar的一些使用心得(推荐)
2017/11/03 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
2018/07/21 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
记一次python 内存泄漏问题及解决过程
2018/11/29 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
办公室文秘自我鉴定
2013/09/21 职场文书
出国留学介绍信
2014/01/13 职场文书
自荐信模板大全
2015/03/27 职场文书
庆七一活动简报
2015/07/20 职场文书
MySQL 分组查询的优化方法
2021/05/12 MySQL