网站建设资讯

NEWS

网站建设资讯

jquery的ajax请求servlet与响应-创新互联

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

寿光网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。创新互联建站2013年开创至今到现在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的请求了。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:jquery的ajax请求servlet与响应-创新互联
文章起源:http://cdweb.net/article/desjpd.html