自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

構(gòu)建JSP Servlet管理系統(tǒng)研討

開發(fā) 后端
本文介紹構(gòu)建JSP Servlet管理系統(tǒng),包括介紹系統(tǒng)的三層體系結(jié)構(gòu)、系統(tǒng)的設(shè)計(jì)模式、數(shù)據(jù)存取技術(shù)、數(shù)據(jù)庫設(shè)計(jì) 、中間層設(shè)計(jì)和客戶端設(shè)計(jì)。
1、 引言

管理信息系統(tǒng)(MIS)是一個由人、計(jì)算機(jī)等組成的能進(jìn)行信息的收集、傳遞、存儲、加工和使用的系統(tǒng)。隨著科技的發(fā)展,信息的膨脹,企業(yè)信息化成了企業(yè)在競爭中處于不敗地位的有效手段之一。而MIS不僅能夠及時(shí)全面地提供信息和數(shù)據(jù),簡化統(tǒng)計(jì)工作,對不同的管理層次提出不同的報(bào)告之外,還能根據(jù)過去的數(shù)據(jù)預(yù)測未來的情況。因此,采用何種方法開發(fā)出一種兼顧開發(fā)效率和運(yùn)行效率,同時(shí)滿足分布式事件處理功能的管理信息系統(tǒng)就顯得尤為重要。本文闡述了一種構(gòu)建JSP Servlet管理系統(tǒng)的方法。

2、 系統(tǒng)的三層體系結(jié)構(gòu)

系統(tǒng)的三層體系結(jié)構(gòu)如圖1所示。

基于Java技術(shù)的Web應(yīng)用體系結(jié)構(gòu)
圖1、基于Java技術(shù)的Web應(yīng)用體系結(jié)構(gòu)

整個管理信息系統(tǒng)采用Browser/Web/Database的三層體系結(jié)構(gòu)。Web服務(wù)器接受請求,通過應(yīng)用程序服務(wù)器執(zhí)行一個Java服務(wù)器端小程序Servlet并返回其輸出,從而實(shí)現(xiàn)與客戶機(jī)進(jìn)行信息資源的交互。數(shù)據(jù)庫服務(wù)器用來存儲管理信息系統(tǒng)中所用到的各種數(shù)據(jù),數(shù)據(jù)由數(shù)據(jù)庫管理程序直接錄入。系統(tǒng)的客戶端只需要一個瀏覽器即可。相關(guān)人員通過瀏覽器來查詢、增加、修改、刪除數(shù)據(jù),對信息進(jìn)行管理。

3、 系統(tǒng)的設(shè)計(jì)模式

設(shè)計(jì)模式是面向?qū)ο蟮某绦蛟O(shè)計(jì)人員用來解決編程問題的一種形式化表示。目前,在大多數(shù)Browser/Server結(jié)構(gòu)的Web應(yīng)用中,瀏覽器直接通過HTML或者JSP的形式與用戶交互,響應(yīng)用戶的請求。雖然很直觀,但是大多數(shù)管理信息系統(tǒng)操作的數(shù)據(jù)量都是驚人的,隨著代碼的增多會使JSP頁面臃腫不堪,Web服務(wù)器的負(fù)荷過重。因此,在中間層上采用基于模型視圖控制器(MVC,Model-View-Controller)的設(shè)計(jì)模式。Model層用來實(shí)現(xiàn)業(yè)務(wù)邏輯,View層用來顯示用戶界面,Controller層主要負(fù)責(zé)View層和Model層之間的控制關(guān)系。具體實(shí)現(xiàn)時(shí),把Servlet用作應(yīng)用程序的控制器,把JSP文檔作為視圖,JavaBeans被用來表示模型。所有的請求都被發(fā)送給作為控制器的Servlet,它接受請求,并根據(jù)請求信息將它們分發(fā)給適當(dāng)?shù)腏SP來響應(yīng)。同時(shí),Servlet還根據(jù)JSP的需求生成JavaBeans的實(shí)例并輸出給JSP環(huán)境。JSP可以通過直接調(diào)用方法或使用Use Bean的自定義標(biāo)簽得到Java Beans中的數(shù)據(jù)。這種設(shè)計(jì)模式很好地實(shí)現(xiàn)了數(shù)據(jù)層與表示層的分離,使開發(fā)工作更加容易和迅速。在這種設(shè)計(jì)模式下,各層次之間的數(shù)據(jù)傳遞如圖2所示。

MVC設(shè)計(jì)模式的數(shù)據(jù)傳遞圖
圖2 MVC設(shè)計(jì)模式的數(shù)據(jù)傳遞圖


4、 數(shù)據(jù)存取技術(shù)

數(shù)據(jù)庫是管理信息系統(tǒng)的核心內(nèi)容。目前,Web與數(shù)據(jù)庫接口技術(shù)有很多,其中JDBC是Java程序連接和存取數(shù)據(jù)庫的應(yīng)用程序接口,由一組用Java語言編寫的類與接口組成,是執(zhí)行SQL語句的Java API。本文介紹的管理信息系統(tǒng)中,在數(shù)據(jù)的存取方面,采用了JSP Servlet+JDBC的技術(shù),即客戶端不產(chǎn)生數(shù)據(jù)庫查詢命令,客戶端上的瀏覽器通過URL和中間層的Web服務(wù)器建立連接。Web服務(wù)器主要負(fù)責(zé)接收本地或遠(yuǎn)程瀏覽器的HTTP數(shù)據(jù)請求,然后中間層的Servlet收到請求后,通過執(zhí)行程序中的SQL語句,利用JDBC提供的標(biāo)準(zhǔn)API對數(shù)據(jù)庫進(jìn)行訪問和相應(yīng)的操作處理。Servlet再將查詢的數(shù)據(jù)傳給JSP,***生成標(biāo)準(zhǔn)的JSP頁面將結(jié)果返回給提出請求的瀏覽器。這樣,不僅將客戶端與數(shù)據(jù)庫服務(wù)器端分開,同時(shí)提高了數(shù)據(jù)庫的訪問效率。

5、 實(shí)例

為了更好地說明構(gòu)建JSP Servlet管理系統(tǒng)的方法,作者將舉例分析設(shè)計(jì)一個商品郵購管理信息系統(tǒng)。這個商品郵購管理信息系統(tǒng)利用Java語言進(jìn)行服務(wù)器端應(yīng)用程序的開發(fā),使用IBM公司的Webshpere作為應(yīng)用服務(wù)器,數(shù)據(jù)庫管理系統(tǒng)選用SQL Server7.0,數(shù)據(jù)庫接口程序使用JDBC2接口。整個系統(tǒng)使用基于Web的方式來實(shí)現(xiàn)郵購業(yè)務(wù)的客戶管理、職員管理、訂單管理、商品管理、出庫管理、入庫管理等業(yè)務(wù)處理、流程控制、權(quán)限控制、查詢統(tǒng)計(jì)以及打印等功能。其中詳細(xì)分析訂單管理部分的查詢功能。

5.1數(shù)據(jù)庫設(shè)計(jì)
對于訂單部分,需要定義訂單信息表Db_order,表中的字段有訂單編號(ddbh),客戶編號(khbh),商品編號(spbh),商品單價(jià)(spdj),定購數(shù)量(dgsl),合計(jì)總價(jià)(hjzj),收到金額(sdje),收到日期(sdrq)。為了能夠在應(yīng)用中使用Db_order表,必須建立數(shù)據(jù)庫連接。這個功能由sql_data.java來實(shí)現(xiàn)。其部分代碼如下。

  1. Public class sql_data {String url = "jdbc:odbc:PostOrder";   
  2. // use your hostname and port number here   
  3. String login = "sa"; // use your login here  
  4. String password ="zh12345"; // use your password here  
  5. Public Connection connection = null;  
  6. Public Statement st = null;  
  7. Public Result Set rs = null;  
  8. Try  
  9. {Class.forName ("com.microsoft.jdbc.sqlserver.SqlServerDriver");  
  10. Conn =DriverManager.getConnection (url, user, password);  
  11. } Catch (Exception e)  
  12. {  
  13. E.printStackTrace ();  
  14. }  
  15. }  

5.2中間層設(shè)計(jì)
在商品郵購管理信息系統(tǒng)的開發(fā)過程中,基于MVC設(shè)計(jì)模式的思想,結(jié)合系統(tǒng)的實(shí)際情況,我們將Model層按照分工進(jìn)行了進(jìn)一步劃分。Model層一般來說由許多JavaBeans組成,根據(jù)這些Beans在系統(tǒng)中起的不同的作用,將它們分為Command Beans、Data Beans、View Beans三種類型。其中Command Beans用來實(shí)現(xiàn)業(yè)務(wù)邏輯即對對象實(shí)例的處理;Data Beans是用來描述和定義從現(xiàn)實(shí)世界中抽象出來的對象模型;而 View Beans則是用來將處理完的對象實(shí)例進(jìn)一步封裝并返回到客戶端。

首先,Command Beans獲得Servlet傳遞過來的信息,并將這些業(yè)務(wù)信息封裝在Data Beans定義的對象實(shí)例中,根據(jù)業(yè)務(wù)邏輯對信息進(jìn)行處理。當(dāng)需要進(jìn)行調(diào)用數(shù)據(jù)庫的存取操作時(shí),Command Beans將對象實(shí)例以及相應(yīng)的控制信息通過數(shù)據(jù)庫接口方法完成對數(shù)據(jù)庫的操作。數(shù)據(jù)庫操作完成后,再將返回的記錄集封裝成Data Beans的對象實(shí)例,進(jìn)行一定的處理后,將這些需要返回到界面的信息再封裝到事先定義的View Beans中去,通過View Beans將信息返回到界面上。

以下是對訂單進(jìn)行查詢處理的OrderGl.java的部分代碼。

  1. Public class OrderGl {  
  2. ……  
  3. //定義如下的方法完成對訂單的查詢操作  
  4. Public final String currentMultiQuery (  
  5. Javax.servlet.http.HttpServletRequest request,  
  6. Javax.servlet.http.HttpServletResponse response)  
  7. Throws com.goods.exception.GoodsException  
  8. {  
  9. //從JSP頁面獲得相應(yīng)查詢信息  
  10. Com.goods.view.OrderView view = get View (request, response);  
  11. String ddbh = view.getDdbh(); //訂單編號  
  12. //生成SQL語句  
  13. String sqlQuery = 
    "select ddbh, khbh, spbh, spdj, dgsl, hjzj, sdje, sdrq from db_order ";  
  14. //執(zhí)行查詢操作  
  15. Java.util.Vector vector = new java.util.Vector ();  
  16. Com.goods.sjk.sql_data per = new com.goods.sjk.sql_data ();  
  17. Try {  
  18. Java.sql.ResultSet rs = per.executeQuery (sqlQuery);  
  19. While (rs.next ())  
  20. {  
  21. Com.goods.dx.Db_order temp = new com.goods.dx.Db_order ();  
  22. Temp.setDdbh (rs.getString ("ddbh"));  
  23. Temp.setKhbh (rs.getString ("khbh"));  
  24. Temp.setSpbh (rs.getString ("spbh"));  
  25. Temp.setSpdj (rs.getString ("spdj"));  
  26. Temp.setDgsl (rs.getString ("dgsl"));  
  27. Temp.setHjzj (rs.getString ("hjzj"));  
  28. Temp.setSdje (rs.getString ("sdje"));  
  29. Temp.setSdrq (rs.getString ("sdrq"));  
  30. Vector.addElement (temp);  
  31. }  
  32. Rs.close ();  
  33. Per. Close ();  
  34. } Catch (Throw able e)  
  35. {  
  36. E.printStackTrace ();   
  37. Per. Close ();  
  38. Cxyw.printErrorToWeb (request, response, e.toString ());  
  39. Return e.toString ();  
  40. }  
  41. //將相關(guān)信息回顯給界面  
  42. View.setVct (vector);  
  43. Request.setAttribute ("view", view);  
  44. Return "1";  
  45. }  

5.3客戶端設(shè)計(jì)
視圖是向用戶顯示信息的應(yīng)用程序的一部分,也就是用戶發(fā)出請求之后返回給用戶的Web頁面。當(dāng)單擊"查詢"按鈕時(shí),將顯示根據(jù)訂單編號得到的訂單信息結(jié)果頁面ordercx.jsp。這是用JSP頁面中如下語法完成的:

  1. <jsp:useBean id="view" class="com.goods.view.OrderView" scope="request" />  
  2. <jsp:useBean id="temp" class="com.goods.dx.Db_order" scope="page" />  
  3. < jsp:useBean >動作用id和scope發(fā)現(xiàn)存在的各個對象,再通過<%=view.GetDdbh ()  
  4. 和<%=temp.getDdbh()%>來獲取相關(guān)數(shù)據(jù)。 


6、 小結(jié)

本文提出了一個開發(fā)基于Web構(gòu)建JSP Servlet管理系統(tǒng)的解決方案。該方案實(shí)現(xiàn)了表示層和邏輯層的分離,使得系統(tǒng)具有很好的擴(kuò)展性,同時(shí),給管理信息系統(tǒng)的開發(fā)提供了一個完整的思路和方法。

【編輯推薦】

  1. JSP開發(fā)技術(shù)應(yīng)用詳解
  2. 詳解JSP開發(fā)環(huán)境的配置
  3. JScript、Java、JavaScript和JSP總結(jié)
  4. 詳解JSP開發(fā)環(huán)境的配置
  5. 詳解ASP和JSP比較
責(zé)任編輯:佚名 來源: 51CTO
相關(guān)推薦

2009-07-07 17:51:50

Java Servle

2009-08-10 09:19:28

Servlet JSP

2009-07-06 15:34:56

JSP和Servlet

2009-07-07 14:04:55

JSP入門

2009-07-06 15:03:53

JSP向Servlet

2009-07-09 10:49:56

Servlet和JSP

2009-07-06 10:02:22

JSP Servlet

2009-07-02 15:42:46

JSP系統(tǒng)開發(fā)

2009-07-03 11:21:43

Servlet和JSPJSP路徑

2009-07-08 09:22:03

Servlet和JSP

2009-07-03 10:46:48

JSP ServletJavaBean

2009-08-20 17:35:47

Servlet和JSP

2009-07-06 09:49:26

Servlet JSP

2009-07-07 13:42:57

Servlet JSP

2009-06-25 14:26:07

JSPJavaBeanServlet

2010-12-10 14:24:02

JSPServlet

2009-07-03 14:16:30

JSP Servlet

2009-07-07 11:18:59

JSP Servlet

2009-07-06 17:11:38

Servlet文件上傳

2009-07-07 13:29:33

Servlet和JSP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號