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

 更新时间:2019年12月12日 14:22:51   作者:浅滩浅  
这篇文章主要介绍了Servlet返回的数据js解析2种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了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帮你解决

方式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方式进行进行解析会更好一点。

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

相关文章

  • JS基于对象的链表实现与使用方法示例

    JS基于对象的链表实现与使用方法示例

    这篇文章主要介绍了JS基于对象的链表实现与使用方法,结合实例形式分析了链表的原理及javascript定义与使用链表的相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • JavaScript Distilled 基础知识与函数

    JavaScript Distilled 基础知识与函数

    JavaScript是一种动态的,弱类型的,基于原型的,面向对象的解释型语言。函数是JavaScript中的头等公民。
    2010-04-04
  • Js 去掉字符串中的空格(实现代码)

    Js 去掉字符串中的空格(实现代码)

    这篇文章主要介绍了在Js中去掉字符串中空格的实现方法。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • JavaScript函数中的防抖与节流原生实现及第三方库的使用

    JavaScript函数中的防抖与节流原生实现及第三方库的使用

    当你频繁的触发用户界面时,会不停的触发事件处理函数,可能导致界面卡顿,浏览器奔溃,页面空白等情况,而解决这一问题的,正是函数节流与函数防抖,所以本文将给大家介绍一下JavaScript函数中的防抖与节流原生实现及第三方库的使用,需要的朋友可以参考下
    2023-10-10
  • Bootstrap Table使用整理(一)

    Bootstrap Table使用整理(一)

    基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选、多选、排序、分页,以及编辑、导出、过滤(扩展)等等的功能
    2017-06-06
  • js中DOM事件绑定分析

    js中DOM事件绑定分析

    在这篇文章中小编给大家整理了关于JS中DOM事件绑定的相关知识点,有兴趣的朋友赶快学习参考下。
    2018-03-03
  • uniapp实现可滑动选项卡

    uniapp实现可滑动选项卡

    这篇文章主要为大家详细介绍了uniapp实现可滑动选项卡,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • 带你搞懂js的深拷贝

    带你搞懂js的深拷贝

    这篇文章主要为大家介绍了js的深拷贝,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • js中toString()和String()区别详解

    js中toString()和String()区别详解

    本文主要介绍了js中toSring()和Sring()的区别。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 一个简单的Node.js异步操作管理器分享

    一个简单的Node.js异步操作管理器分享

    这篇文章主要介绍了一个简单的Node.js异步操作管理器分享,需要的朋友可以参考下
    2014-04-04

最新评论