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 Tab 导航插件 (23个)
Jun 11 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
May 08 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
Jun 05 Javascript
jquery 判断滚动条到达了底部和顶端的方法
Apr 02 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
Oct 20 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
解析javascript瀑布流原理实现图片滚动加载
Mar 10 Javascript
element vue Array数组和Map对象的添加与删除操作
Nov 14 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
Apr 17 Javascript
JavaScript随机数的组合问题案例分析
May 16 Javascript
JavaScript 实现下雪特效的示例代码
Sep 09 Javascript
react如何快速设置文件路径别名
Apr 28 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读取数据库信息的几种方法
2008/05/24 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
python模块之paramiko实例代码
2018/01/31 Python
深入理解Django的中间件middleware
2018/03/14 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
django允许外部访问的实例讲解
2018/05/14 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
起诉离婚协议书样本
2014/11/25 职场文书
异地恋情人节寄语
2015/02/28 职场文书
乔迁新居祝福语
2019/11/04 职场文书
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis