background image

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”??