況嫦娥 李俊
摘要:本文探討了J2EE技術與MVC設計模式結構,并結合MVC設計模式,應用J2EE架構,講解了網上書店的開發。
關鍵詞:網上書店;MVC模式;J2EE架構
1基于J2EE的MVC設計模式
J2EE是一種利用Java平臺來簡化諸多與多級企業解決方案的開發、部署和管理相關復雜問題的體系結構。它提供了一個多層次的分布式應用模型和一系列開發技術規范。多層次分布式應用模型是指根據功能把應用邏輯分成多個層次,每個層次支持相應的服務器和組件,組件在分布式服務器的組件容器中運行(如Servlet組件在Servlet容器上運行,EJB組件在EJB容器上運行),容器間通過相關的協議進行通信,實現組件間的相互調用。遵從這個規范的開發者將得到行業的廣泛支持,使企業級應用的開發變得簡單、快速。
MVC(Model-View-Controller)是一種經典的軟件體系結構,它采用了“分治”的思想,將表示和數據分離開來,將系統分成三大類:即模型、視圖、控制器。其中模型用于存儲數據的對象,以JavaBean的形式存在;視圖是向控制器提交所需數據、顯示模型中的數據,一個模型可以對應一個或多個視圖;控制器是負責具體的業務邏輯操作,即控制器根據視圖提出的要求對數據做出處理,并將有關結果存儲到模型中,并負責讓模型的視圖進行必要的交互,當模型中的數據變化時,讓視圖更新顯示。
J2EE技術結合MVC設計模式在構建企業級WEB應用中,JSP對應視圖,應當盡量避免在JSP中使用大量的Java程序片來處理數據,否則不利于代碼的復用;Servlet對應于控制器;而JavaBean對應于模型,主要進行業務的處理?;贘2EE的MVC模式的Web應用如圖1所示:
2 網上書店系統的實現
網上書店系統的設計采用了前面介紹的基于J2EE的MVC設計模式,使用了JSP、Servlet、JavaBean、JDBC等技術。系統由前臺JSP頁面和后臺的JavaBean程序組成。JSP頁面用于顯示數據,JavaBean用于訪問數據庫和實現復雜的邏輯和算法。本系統通過DBCONN.java訪問數據庫,通過DFFCONL.java來實現網上書店的各種業務邏輯,如添加新書、查看用戶資料等。
(1)前臺頁面顯示
前臺頁面主要用于顯示數據,登錄頁面是一個靜態的頁面index.html,由網站菜單和登錄頁面組成。當用戶成功登錄后,進入系統的主頁main.jsp,根據不同的用戶權限,主頁中可實現的功能不同。而不同用戶權限的用戶登錄實現相同的功能,由同一個JSP頁面來實現,這樣即可以增強代碼的復用性,也提高了可維護性。如果是以管理員的權限登錄,可以實現以下功能:①添加/刪除圖書種類:由bookpro.jsp來實現;②添加新的圖書:newbook.jsp等;③查看用戶信息:serchuser.jsp;④修改圖書資料:updatebook.jsp。
(2) 數據訪問對象DBCONN.java
此JavaBean專門用于數據庫訪問,包括查詢、插入、修改、刪除。首先采用connect()與數據庫連接,然后調用相應的方法來實現相應的操作。connect方法代碼如下:
public boolean connect()
{boolean isConnect=false;
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs為你的數據庫的
String user="sa";
String password="";
Connection conn=DriverManager.getConnection(url,user,password); if(conn!=null)
isConnect=true;
}
catch(Exception e)
{
System.out.println(e);
}
return isConnect;
}
(3)業務對象模型DFFCONL.java
業務對象模型用于實現網上書店系統的各種業務邏輯,如新增圖書,查看用戶信息等。用戶執行每一個操作,即此JavaBean的一個方法,都要先對用戶權限進行驗證,其中查看用戶信息的代碼如下:
public boolean serchuser(HttpServletRequest request,HttpServletResponse response)
{ boolean isadmin=isAdmin(request,response);
if(!isadmin)
return isadmin;
DBCONN d=new DBCONN();
try{d.connect();
String sql="select * from member";//member為用戶表
Statement selstmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
Statement rs=selstmt.executeQuery(sql);
while(rs.next())
{
System.out.println(“用戶名:”+rs.getString(1)+”真實姓名:”+rs.getString(2)+”地址:”+ rs.getString(3));
}
}
catch(Exception e)
{System.out.print(e);}
finally
{ rs.close();
selstmt.close();
}
return isadmin;
}
(4)數據模式的選取
在網上書店系統設計中我們采用了集中式數據庫模式,選用了MicroSoft SQL Server2000數據庫,它能處理大量數據,同時保持數據庫的完整性并提供許多高級管理數據功能。它的靈活性、易用性和安全性給數據庫編程提供了大大的方便。
3 結 語
本文設計了一個基于J2EE的網上書店系統,使用了MVC結構,將數據、專業邏輯、表示邏輯、控制邏輯很好地分離開。提高了程序的可重用性、可維護性、可擴展性,優化了設計模式。
參考文獻
[1]孫衛琴,李洪成.Tomcat與Java Web開發技術詳解[M].北京:電子
工業出版社,2004.
[2]John Hunt,Chris Loftus.精通J2EE———Java企業級應用[M].周立斌,譯.北京:清華大學出版社,2004.
[3]Deepak Alur,John Crupi,Dan Malks.J2EE核心模式[M].2版.劉天北,熊節,譯.北京:機械工業出版社,2005.
[4]馮相中,王萍 基于J2EE平臺的MVC模式的辦公日志系統的實現[J]計算機應用 2005.12
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文