jquery的ajax请求servlet与响应
在公司的项目中用jquery很久,一直没错,今天突然自己想让jquery请求servlet,然后让servlet返回一个字符串,起初我怀疑不是json格式的数据,前端的js不接受不是json格式的数据,后来,自己拼了一个json格式的字符串,意想不到的事发生了,前端的js的jquery回调函数还是取不到数据,仔细研究一番,终于发现了问题的症结。
因为努力和真诚,有更多的客户和我们聚集在一起,为了共同目标,创新互联公司在工作上密切配合,从创业型企业到如今不断成长,要感谢客户对我们的高要求,让我们敢于面对挑战,才有今天的进步与发展。从网站到微信平台小程序开发,软件开发,成都app软件开发公司,10年企业网站建设服务经验,为企业提供网站设计,网站运营一条龙服务.为企业提供营销型网站建设,定制网站开发,原创设计,10年品质,值得您的信赖.
开始,我在项目的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的请求了。
分享文章:jquery的ajax请求servlet与响应
地址分享:http://ybzwz.com/article/jdejeg.html