ITPub博客

首页 > 应用开发 > Java > jquery的ajax请求servlet与响应

jquery的ajax请求servlet与响应

Java 作者:清风艾艾 时间:2017-11-29 09:08:03 0 删除 编辑

     在公司的项目中用jquery很久,一直没错,今天突然自己想让jquery请求servlet,然后让servlet返回一个字符串,起初我怀疑不是json格式的数据,前端的js不接受不是json格式的数据,后来,自己拼了一个json格式的字符串,意想不到的事发生了,前端的js的jquery回调函数还是取不到数据,仔细研究一番,终于发现了问题的症结。

      开始,我在项目的servlet直接out.print("test"); 结果前端的js没有反应,我想可能是out.print()里边的数据不是json格式的,接下来自己拼了个json格式的数据,就是下边这个:"[{'age':'40','name':'张翠山','sex':'男'}," +  "{'age':'109','name':'张三丰','sex':'男'}]"; 我觉得这个应该是json格式的数据了吧,但是,让我十分纳闷的是前端的js的回调函数还是没有反应。

      接下来,我找了将数据格式化为json格式的工具及其相关的jar包,数据json格式化所需的jar包如下:

                  commons-beanutils-1.8.3.jar

                  commons-collections-3.2.1.jar

                  commons-lang-2.5.jar

                  commons-logging-1.1.1.jar

                  ezmorph-1.0.6.jar

                  json-lib-2.3-jdk15.jar

       以上jar包是将数据json格式化的必须的,缺一不可,否则运行时,程序报classnotfound exception,之后我将上边json里边的两条数据封装成对象,然后放到一个泛型list列表里边,用下边的语句将List数据json化:test=JSONArray.fromObject(slist).toString(); 然后让程序运行,这回前端的JS回调有了剧烈反应,终于有反应了,但是程序给的json串让我难以理解:  [{"age":"40","name":"张翠山","sex":"男"},{"age":"109","name":"张三丰","sex":"男"}],难道" ' "这个符号前端的Js不认识吗?经过反复尝试,我可以下结论,果然,jquery请求servlet,servlet响应的数据可以是json或xml,但是json我肯定的是必须是:[{"age":"40","name":"张翠山","sex":"男"},{"age":"109","name":"张三丰","sex":"男"}]这种样式的。

      难道为了用jquery发起ajax请求,还得必须引用那么多jar包吗?我看了一下2M多,不小。

      其实,不必引入数据json专门格式化的,我们可以自己拼json格式的数据,但是程序又不识别“ ' ”,怎么办?有办法,用转义符"\",这回转义符号起到了决定性作用,拼好的数据如下:"[{\"age\":\"40\",\"name\":\"张翠山\",\"sex\":\"男\"}," +  "{\"age\":\"109\",\"name\":\"张三丰\",\"sex\":\"男\"}]"; 虽然数据丑了点,但是不用引入那么多jar包就可以数据格式化为json格式的了。

     再回到自己的那个问题,那就可以将test字符串一个数据拼成json格式的再out.print(),就可以完成jquery的ajax的请求了。

原文出处:http://blog.51cto.com/3596022/1283226


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29357786/viewspace-2147904/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
个人喜欢IT行业,目前从事数据库工作,包括Oracle、mysql、mongodb、sqlserver等数据库的维护,喜欢专研开发技术,尤其对java程序的开发感兴趣。工作经历上,在中国联通系统集成公司、中公网医疗信息技术有限公司做过数据库技术支持;目前在海量数据,负责华东区oracle、mysql、mongodb的维护工作。

注册时间:2015-01-30

  • 博文量
    170
  • 访问量
    187289