田玉昆
(廣東培正學院數據科學與計算機學院,廣東 廣州 510830)
科技的進步推動了5G 的發展,人們的工作生活越來越離不開智能手機和互聯網,隨時隨地網購成為一種主流,同時傳統銷售模式的弊端逐漸顯露出來[1]。因此,本文主要是利用Java Web技術構建一個簡單的手機銷售網站,既能體現Web在各功能模塊開發中的應用,又能展示MVC的設計模式[2]及數據在MySQL數據庫中的存儲,體現了Java Web的優勢。
Java 是一種面向對象的編程語言,它保留了C++的優點,去除了C++較為復雜的多繼承、指針等概念。它具有可移植性強、安全性高、簡單易用等優點,可以用于編寫各種類型的程序,如嵌入式系統應用程序、分布式系統程序、Web應用程序、桌面應用程序等[3]。
JSP 技術指在傳統的HTML 網站中直接植入Java片段和JSP標志,從而形成的JSP文件。從JSP引擎中下載JSP文檔,并將它編輯成可運行的種類,隨后將原始申請上傳輸給Servlet,而Web服務器的組件也會自動調出Servlet 引擎,將Servlet 下載并運行。JSP 是一種Java Servlet,主要用于實現Java Web 應用程序的用戶界面部分。
MySQL Server 是目前的主流數據庫軟件,使用JDBC 驅動程序連接MySQL 數據庫[4]。MySQL Server是目前的主流數據庫軟件,它不僅支持眾多編程語言,而且作為開源軟件,服務器上傳速度快、易操作。
Tomcat是一個Servlet容器,也是一個免費開源的工具。其中,WAR 文件是Tomcat 中的應用程序。Tomcat 部署比較簡單,具有很強的靈活性,可以和其他軟件一起使用,成功實現功能的多樣化。
MVC(Model View Controller)是一種軟件設計模式,這種模式把交互軟件的組成分解為模型、視圖、控制器三個部件[5]。
1)模型(Model)——用于存儲數據的對象,封裝核心數據、邏輯和功能的計算關系。
2)視圖(View)——為用戶展示模型數據、邏輯關系、狀態信息。
3)控制器(Controller)——處理用戶與軟件的交互操作,負責具體的業務邏輯操作,接收用戶的輸入,將輸入反饋給模型,實現對模型的控制。
無論何時發生了何種數據變化,控制器會將變化通知給所有的視圖,以更新顯示。
1)技術可行性
技術可行性主要取決于能否實現系統所需的功能。本網站采用Java Web 技術、MyEclipse 軟件進行設計,使用開源、免費的MySQL 數據庫,完成數據的增、刪、改、查等功能,其布局美觀、操作簡單。總體上來說,當前技術足以支撐網站的開發與應用,技術上是可行的。
2)經濟可行性
經濟可行性主要是通過網站的成本、收益方面進行分析。本網站需求簡單易開發、易拓展。Java Web技術非常成熟且易于上手,MySQL體積小、速度快、免費、開源的,支持在Window 開發。總體成本低,不需要太大的開銷就能完成此網站的設計,因此在經濟因素方面具有較高的可行性。
3)操作可行性
手機銷售網站界面簡單易于操作。界面整潔、布局美觀利于網站的普及,它所執行的操作是可行的。
在電子商務的促動下,網絡商城帶給人們的便捷是有目共睹的。手機是商城中需求最大的一類電子產品,為了人們購物的方便,手機銷售網站也應運而生。因此,本文將會使用Java Web技術設計一個手機銷售網站。
本網站主要包括注冊/登錄、手機瀏覽、手機查詢、購物車、訂單管理及退出等功能,網站整體功能模塊結構如圖1所示。

圖1 網站整體功能結構圖
為了存儲數據信息,需要在數據庫中創建用戶信息表(user)、手機類別表(mobileClassify)、手機信息表(mobileForm)、購物車信息表(shoppingForm)、訂單信息表(orderForm)等數據表。
user 表主要用于存儲用戶的注冊信息,此表主要包含用戶名、密碼、電話、地址、真實姓名等字段,其中,用戶名是主鍵,不允許重復,屬性都是字符型,結構如表1所示。

表1 用戶信息表(user)
手機類別表(mobileClassify)主要用于存儲手機的類別,此表主要包含類別號、類別名等字段,其中類別號是主鍵,int 類型、自動編號,其他屬性都是字符型,結構如表2所示。

表2 手機類別表(mobileClassify)
手機信息表(mobileForm)主要用于存儲手機的基本信息,此表主要包含手機標識號、手機名、制造商、價格、介紹、圖片、類別號(外鍵)等字段,其中手機標識號是主鍵。
購物車信息表(shoppingForm)主要用于存儲購物車的商品信息,此表主要包含商品ID、用戶名、商品名稱、商品單格、商品數量等字段,其中商品ID是主鍵。
訂單信息表(orderForm)主要用于存儲訂單信息,此表主要包含訂單號、用戶名、訂單信息等字段,其中訂單號是主鍵。
1)主頁模塊
在瀏覽器中,首先進入主頁面,在此頁面中主要包括注冊、登錄、瀏覽手機、查詢手機、查看購物車、查看訂單、退出、返回主頁等菜單欄需要用戶注冊或登錄的提示信息,如圖2所示。

圖2 網站主頁
2)注冊模塊
沒有注冊與登錄,只能瀏覽手機信息,不能購買操作。在主頁中,單擊“注冊”菜單跳轉到注冊頁面供用戶注冊,如圖3所示。注冊時用戶必須輸入會員名、密碼,否則無法完成注冊。該模塊由一個JSP 視圖頁面(register.jsp)、一個Servlet 控制器與一個JavaBean模型組成。其中,用戶在此JSP頁面上輸入注冊信息,提交給Servlet 控制器,由Servlet 程序創建一個Java-Bean對象存儲用戶的注冊信息,再對用戶名進行查重判斷,如果是新用戶,就把JavaBean 對象寫入user 表中,并把注冊結果的信息在此JSP頁面中顯示出來。

圖3 用戶的注冊界面
3)登錄模塊
用注冊賬號與密碼進行登錄。系統會對用戶賬號和密碼進行驗證,如果用戶名或密碼錯誤,會提示“用戶名或密碼錯誤!”。若輸入的用戶名和密碼與注冊一致,則登錄成功。
在主頁中,單擊“登錄”菜單直接跳轉到登錄頁面供用戶進行登錄。該模塊由一個JSP視圖頁面(login.jsp)、一個Servlet 控制器與一個JavaBean 模型組成。其中,用戶在此JSP頁面上輸入用戶名與密碼,提交給Servlet 控制器,由Servlet 程序連接數據庫查詢user 表中是否存在此用戶名。如果存在,就創建一個Java-Bean對象存儲此用戶信息,并把登錄是否成功的信息轉發到此JSP 頁面中反饋。如果不存在,Servlet 會把登錄失敗的信息反饋到此JSP頁面中。
4)手機瀏覽模塊
用戶登錄成功后,可點擊“瀏覽手機”模塊查看手機。此模塊由3個JSP視圖頁面(lookMobile.jsp、page-Show.jsp 和mobileShow.jsp)、一個Servlet 控制器和一個JavaBean 模型組成。在lookMobile.jsp 頁面中選擇一個手機分類,提交給Servlet 控制器,由控制器查詢數據庫中的mobileForm表,并把查詢結果存放在Java-Bean 對象中,再轉發到pageShow.jsp 進行分頁顯示。在pageShow.jsp 頁面中如果想查看某個商品的細節,可選擇“手機詳情”超鏈接到showDetail.jsp 頁面中展示。
5)手機查詢模塊
登錄成功后,可以根據手機版本號、手機名稱或手機價格進行明確查詢,也能實現模糊查詢。本模塊主要是通過2 個JSP 頁面(searchMobile.jsp、pageShow.jsp)、一個servlet 控制器和一個JavaBean 模型實現。在手機查詢頁面searchMobile.jsp輸入查詢信息后,提交給Servlet 控制器,由控制器對數據庫中的mobile-Form 表進行查詢,并把查詢結果存到JavaBean 中,再轉發到分頁顯示頁面pageShow.jsp進行顯示。
6)購物車模塊
登錄的用戶在“手機瀏覽”與“手機查詢”模塊中看到手機的詳細信息后,可以把它放入購物車,在購物車里可以修改數量、或刪除該商品,還可以繼續購物或者清空購物車,如需下單,可點擊“生成訂單”便可以提交訂單,完成購買。本模塊主要是由1 個JSP頁面(lookShoppingCart.jsp)、三個servlet 控制器和一個JavaBean 模型實現。在JSP 頁面lookShoppingCart.jsp 中顯示購物車中的商品,即數據庫中購物車信息表(shoppingForm)中的數據,并提供修改購物車功能和生成的訂單的form表單,提交到對應的Servlet控制器。如果是修改購物車中商品的信息,則由一個Servlet控制器負責更新shoppingForm表中的數據;如果是生成訂單,由另一個Servlet控制器負責將此購物車中的商品信息轉存到數據庫的orderForm 表中,并同時刪除用戶購物車中的商品記錄。
7)訂單模塊
登錄的用戶把商品加入購物車,提交訂單后,在訂單查詢中,用戶輸入自己的會員ID,可以查看所有的訂單信息,包括未付款與已付款訂單。此模塊主要由一個JSP 頁面組成。在JSP 頁面中,通過獲取用戶輸入的訂單ID,在數據庫的訂單信息表(orderForm)中進行查詢相關記錄,如果有,就讀取相關信息并在JSP頁面中顯示此訂單詳細信息;如果沒有,就顯示無此訂單的信息。
8)退出登錄模塊
已登錄的用戶在完成商品的查詢、下單等操作后,可以在主菜單中單擊“退出”菜單退出登錄,并跳轉到首頁。該模塊是由一個Servlet 控制器負責銷毀用戶的session對象,使登錄失效,從而實現退出功能。
本文主要圍繞手機銷售網站的設計與實現進行展開,按照手機銷售網站的需求分析、網站的設計與網站的實現等流程進行闡述,在展示網站功能的同時,也充分體現了MVC 設計模式在此設計開發過程中的應用。