Java 开发:JSP-Servlet 开发中使用事件驱动技术
JSP-SERVLET 为 WEB 应用程序开发者提供了一个优秀的平台。但是,现在国内大多数的
基于 JSP-SERVLET 的开发都处在最基础的状态,代码重用率低,开发效率低,无法适应
大型、复杂的 WEB 开发要求。
首先,要实现事件驱动,必须在 JSP-SERVLET 开发中采用 MVC 技术。
M=Model(模型)
V=View(视图)
C=Control(控制)
视图(V)定义了用户界面。模型(M)定义了抽象类和逻辑。控制(C)则负责根据视图发生
的事件调用模型的逻辑完成业务处理。
一般
Model(模型)由普通的 java 类来实现。
View(视图)由 jsp 来实现。
Control(控制)由 servlet 来实现。
视图和模型是紧密关联,又相互独立的。
模型是视图的抽象,必须包含一定的逻辑来处理视图所表现的对象的事件。
同时对于相同的逻辑,视图可以以各种方式表现。
例如,在 web 开发中,
[1]
“
”
对于一个代表 单选 抽象的 SingleSelection 类,在用户的浏览器上可以显示为
Radio button, 也可以是单选下拉框,或者是其他任何的单选性质的控件。
[2]
“
”
对于一个代表 提交 抽象的 Submition 类,在用户的浏览器上可以显示为 Submit
button, 也可以是超链接、图片,甚至可以是可触发 JavaScript 的 submit()方法的任何控件。
事件驱动对于 MVC 技术是极其重要的,主要由 Control(控制)来实现。而 JSP-
SERVLET 的实现本身就非常适合于编写事件驱动的程序。
众所周知,javax.servlet.http.HttpServlet 类每次都调用
doPost(HttpServletRequest req, HttpServletResponse resp)
或者
doGet(HttpServletRequest req, HttpServletResponse resp)
方法来响应客户端的 submit 操作。
Servlet 响应的事件就是客户端浏览器的 submit 操作。客户端浏览器的 submit 事件触发
Servlet 的 特 定 事 件 处 理 方 法 , 但 是 入 口 只 有 一 个 : javax.servlet.http.HttpServlet 类 的
service(HttpServletRequest req, HttpServletResponse resp)方法。(具体到对于客户端的操作的
响 应 , 则 可 能 是 doPost(HttpServletRequest req, HttpServletResponse resp) 或 者 是
doGet(HttpServletRequest req, HttpServletResponse resp)方法。
所 以可 以重 写这 些方 法来 控制 Servlet 对 submit 事件 的响 应处 理, 调用 不同 的
JSP,JAVA BEAN,甚至于 EJB。
例 : EventDrivenServlet 继 承 javax.servlet.http.HttpServlet , 并 且 重 写
doPost(HttpServletRequest req, HttpServletResponse resp) 和 doGet(HttpServletRequest req,
HttpServletResponse resp)方法,令这 2 个方法都直接调用同一个方法,我们把这个方法命
“
名为 act”??