本文实现的是 前端 ExtJS 通过 Ajax 提交 JSON 格式数据 → 后端 JSP 页面接收并解析 JSON 数据 → 处理业务逻辑后返回响应结果 的完整交互流程。ExtJS 的Ext.Ajax.request()与 jQuery 的$.ajax()原理一致,都是前端异步提交数据的核心方式,区别仅在于框架封装的语法不同,但提交 JSON 数据的本质相同:前端将 JSON 对象作为请求体提交,后端通过流的方式读取请求体中的 JSON 字符串,再解析为可操作的 JSON 对象。同时 JSP 作为 Java 服务端动态页面技术,本身具备解析 Java 代码的能力,是 JavaWeb 开发中接收前端异步请求、处理业务逻辑的常用载体。
JSON 数据接收解析的特定过程,必须导入指定的 Java 数据包,缺一不可,否则会直接出现JSONObject相关报错、无法解析 JSON 数据,甚至报类找不到异常;所有 jar 包需放入项目的WEB-INF/lib目录下:

必须的数据包:
1.commons-lang.jar
2.commons-beanutils.jar
3.commons-collections.jar
4.commons-logging.jar
5.ezmorph.jar6.json-lib-2.2.2-jdk15.jar
否则 JSONObject 报错,并且不能接收。
JSP(Java Server Pages) 是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似 ASP 技术,它是在传统的网页 HTML 文件 (.htm,.html) 中插入 Java 程序段 (Scriptlet) 和 JSP 标记 (tag),从而形成 JSP 文件 (*.jsp)。 用 JSP 开发的 Web 应用是跨平台的,既能在 Linux 下运行,也能在其他操作系统上运行。
JSP 技术使用 Java 编程语言编写类 XML 的 tags 和 scriptlets,来封装产生动态网页的处理逻辑。网页还能通过 tags 和 scriptlets 访问存在于服务端的资源的应用逻辑。JSP 将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于 Web 的应用程序的开发变得迅速和容易。 JSP (JavaServer Pages) 是一种动态页面技术,它的主要目的是将表示逻辑从 Servlet 中分离出来。 Web 服务器在遇到访问 JSP 网页的请求时,首先执行其中的程序段,然后将执行结果连同 JSP 文件中的 HTML 代码一起返回给客户端。插入的 Java 程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP 与 JavaServlet 一样,是在服务器端执行的,通常返回给客户端的就是一个 HTML 文本,因此客户端只要有浏览器就能浏览。 JSP 的 1.0 规范的最后版本是 1999 年 9 月推出的,12 月又推出了 1.1 规范。目前较新的是 JSP1.2 规范,JSP2.0 规范的征求意见稿也已出台。 JSP 页面由 HTML 代码和嵌入其中的 Java 代码所组成。服务器在页面被客户端请求以后对这些 Java 代码进行处理,然后将生成的 HTML 页面返回给客户端的浏览器。Java Servlet 是 JSP 的技术基础,而且大型的 Web 应用程序的开发需要 Java Servlet 和 JSP 配合才能完成。JSP 具备了 Java 技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 自 JSP 推出后,众多大公司都支持 JSP 技术的服务器,如 IBM、Oracle、Bea 公司等,所以 JSP 迅速成为商业应用的服务器端语言。 JSP 可用一种简单易懂的等式表示为:HTML+Java+JSP 标记 = JSP。
JSP 本质是Servlet 的封装,当客户端第一次访问 JSP 页面时,Web 服务器(如 Tomcat)会将 JSP 文件编译为 Java Servlet 的.java源文件,再编译为.class字节码文件,之后所有的请求都由该 Servlet 处理;这也是 JSP 能在服务端执行 Java 代码、操作请求和响应对象的核心原因,本文中解析 JSON 的 Java 代码,本质就是在 Servlet 中执行的服务端逻辑。
(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP.NET的局限性 JSP 的优势是显而易见的。(3)强大的可伸缩性。从只有一个小的 Jar 文件就可以运行 Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台 Application 进行事务处理,消息处理,一台服务器到无数台服务器,Java 显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与 ASP 很像,Java 已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。(5)支持服务器端组件。web 应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供 web 页面调用,以增强系统性能。JSP 可以使用成熟的 JAVA BEANS 组件来实现复杂商务功能。
JSP 在接收前端 JSON 数据的场景中,优势尤为明显:无需额外配置 Servlet 映射,直接在 JSP 页面编写 Java 代码即可完成请求解析、业务处理、响应返回,开发流程简洁,无需繁琐的配置文件,适合快速开发简单的异步请求接口。
(1) 与 ASP 一样,Java 的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。 (2) Java 的运行速度是用 class 常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是 “最低性能价格比” 了。从另一方面,它还需要硬盘空间来储存一系列的.java 文件和.class 文件,以及对应的版本文件。
在接收 JSON 数据的场景中,JSP 的劣势主要体现在:如果是复杂的业务逻辑(如多表数据库操作、复杂 JSON 解析),将所有 Java 代码写在 JSP 的<% %>脚本段中,会导致代码耦合度高、可读性差、不易维护;这种场景下更推荐使用「Servlet + Service + DAO」的分层架构处理请求,JSP 仅负责页面展示。
正在加载... ...