國內大多數 JSP-Servlet 專案仍停留在基礎階段:代碼重用率低、開發效率差、難以應對大型複雜需求。引入 事件驅動 機制並結合 MVC 架構,能從根本上解決這些痛點。
視圖與模型緊密關聯又相互獨立:同一邏輯模型(如「單選」抽象類 SingleSelection)可對應多種視圖表現(單選鈕、下拉選單、圖片點擊等);同一「提交」動作(Submition)可由按鈕、超連結、JavaScript 觸發。
Servlet 容器對每個客戶端請求均調用 service(HttpServletRequest, HttpServletResponse),再分派至 doGet 或 doPost。這正是天然的單一事件入口。開發者只需覆寫這兩個方法(或統一委派給自訂 act() 方法),即可實現集中式事件分派:
public class EventDrivenServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
act(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
act(req, resp);
}
private void act(HttpServletRequest req, HttpServletResponse resp) {
// 根據請求參數/路徑分派至對應業務處理器
// 調用 JavaBean、EJB、轉發至 JSP 等
}
}
採用事件驅動 MVC,是 JSP-Servlet 邁向企業級開發的關鍵一步,奠定後續引入 Struts、Spring MVC 等框架的架構基因。