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 相关文章推荐
会自动逐行上升的文本框
Jun 30 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
Jan 15 Javascript
JS实现从表格中动态删除指定行的方法
Mar 31 Javascript
javascript实现带下拉子菜单的导航菜单效果
May 14 Javascript
自制微信公众号一键排版工具
Sep 22 Javascript
全面解析node 表单的图片上传
Nov 21 Javascript
JS表单数据验证的正则表达式(常用)
Feb 18 Javascript
基于AngularJS的拖拽文件上传的实例代码
Jul 15 Javascript
详解javascript appendChild()的完整功能
Aug 18 Javascript
javascript的惯性运动实现代码实例
Sep 07 Javascript
vue过滤器实现日期格式化的案例分析
Jul 02 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
Nov 07 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查看session内容的函数
2008/08/27 PHP
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
详解JavaScript中的函数、对象
2019/04/01 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
Python使用multiprocessing创建进程的方法
2015/06/04 Python
在Django中进行用户注册和邮箱验证的方法
2016/05/09 Python
python中异常报错处理方法汇总
2016/11/20 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
留学顾问岗位职责
2014/04/14 职场文书
自强之星事迹材料
2014/05/12 职场文书
2014年工程工作总结
2014/11/25 职场文书
2016新年致辞
2015/08/01 职场文书
同学会演讲稿
2019/04/02 职场文书
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫