首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Struts:基於 Servlet 與 JSP 的開源 MVC 框架實現

     編輯:Java 程式設計入門

善用這套 Servlet 與 JSP 框架,掌控大型網站的複雜變化

作者:Malcolm Davis|顧問|2001 年 2 月

本文介紹 Struts——一個運用 Servlet 與 JavaServer Pages (JSP) 技術實現 Model-View-Controller (MVC) 設計模式的開源框架。Struts 能協助開發者控制 Web 專案中的變更,提升開發專業度。即使您未來不直接使用 Struts,理解其核心思想也能為後續的 Servlet 與 JSP 開發帶來啟發。

簡介

雖然任何人都能在網路上發布 HTML 頁面,但業餘作品與專業開發的網站有本質差異。網頁設計師需掌握色彩、用戶體驗、生產流程、版面佈局、瀏覽器相容性、圖像製作與 JavaScript 等技能。打造優質網站工程浩大,多數 Java 開發者更擅長設計優雅的物件介面,而非使用者介面。JavaServer Pages (JSP) 技術為網頁設計師與 Java 開發者提供了連結紐帶。

若您開發過大型 Web 應用,定能深刻體會「變化」的含義。「模型-視圖-控制器」(MVC) 正是為應對變化而生的設計模式,它降低了業務邏輯介面與資料介面之間的耦合度。Struts 採用 Servlet 2.2 與 JSP 1.1 標籤(屬 J2EE 規範)實現 MVC。即使您從未用 Struts 建構系統,了解其運作原理也能將其中精華應用於未來的 Servlet 與 JSP 專案中。

本文將從一個典型 JSP 檔案切入,探討其優缺點;隨後深入剖析 Struts 如何管控專案變更並提升專業度;最後以實際重構該 JSP 為例,示範如何兼顧網頁設計師需求與應對變化。

一個 JSP 檔案本質上就是一個 Java Servlet

JavaServer Page (JSP) 檔案只是檢視 Servlet 的另一種形式。JSP 的概念讓我們能將 Java Servlet 視為一個 HTML 網頁,消除 Java 代碼中常見的繁瑣 print() 語句。JSP 檔案會先被預處理為 .java 檔案,再編譯為 .class 檔案。若使用 Tomcat,可在 work 目錄查看預處理後的 .java 檔案;其他容器儲存位置視容器而定。圖 1 說明了從 JSP 到 Servlet 的轉換流程。

圖 1. 從 JSP 檔案到 Servlet 的流程

(這與 Microsoft 的 Active Server Page (ASP) 截然不同:ASP 編譯至記憶體,而非獨立檔案。)

簡單的獨立 JSP 檔案

在小型 JSP 應用中,常見資料、業務邏輯與使用者介面混雜在單一代碼模組中,甚至包含控制應用流程的邏輯。清單 1 與圖 2 展示一個讓用戶加入郵件列表的簡單 JSP 檔案。

清單 1. join.jsp — 簡單的請求與響應 JSP 檔案

<%@ page language="java" %> <%@ page import="business.util.Validation" %> <%@ page import="business.db.MailingList" %> <% String error = ""; String email = request.getParameter("email"); // 是否有電子郵件地址 if( email!=null ) { // 驗證輸入... if( business.util.Validation.isValidEmail(email) ) { // 存儲輸入... try { business.db.MailingList.AddEmail(email); } catch (Exception e) { error = "Error adding email address to system. " + e; } if( error.length()==0 ) { %> // 重定向到歡迎頁... <jsp:forward page="welcome.html"/> <% } } else { // 設置錯誤消息並重新顯示網頁 error = email + " is not a valid email address, please try again."; } } else { email = ""; } %> <html> <head> <title>Join Mailing List</title> </head> <body> <font color=red><%=error%></font><br> <h3>Enter your email to join the group</h3> <form action="join.jsp" name="joinForm"> <input name="email" id="email" value=<%=email%>></input> <input type=submit value="submit"> </form> </body> </html>

圖 2. 在簡單的請求與響應中,JSP 檔案設定資料、控制流向下一頁並生成 HTML

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved