• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 利用開源框架Struts+Hibernate實(shí)現(xiàn)Web應(yīng)用程序

        時(shí)間:2024-10-18 12:09:45 網(wǎng)絡(luò)工程畢業(yè)論文 我要投稿
        • 相關(guān)推薦

        利用開源框架Struts+Hibernate實(shí)現(xiàn)Web應(yīng)用程序

          摘 要:本文主要介紹了利用目前的開源框架來(lái)開發(fā)一MVC結(jié)構(gòu)Web程序的主要過(guò)程,對(duì)作為Struts與Hibernate核心的配置文件作了簡(jiǎn)單介紹,最后提出了在開發(fā)類似項(xiàng)目時(shí)可能會(huì)遇到的一些問(wèn)題和解決方案。

          關(guān)鍵詞:Web;開源框架;解決方案;Struts;Hibernate;MVC;計(jì)算機(jī)

          一、概述

          大多數(shù)Web應(yīng)用在職責(zé)上至少可被分成四層,表示層、持久層、業(yè)務(wù)層和域模塊層,每一層相互獨(dú)立,在功能上與其他層互不混合,這樣為程序的后期維護(hù)及擴(kuò)充提供了方便,而在Web應(yīng)用的分層設(shè)計(jì)中,MVC模式成為一種十分流行的結(jié)構(gòu),Struts則是MVC模式的一種具體實(shí)現(xiàn),他讓開發(fā)人員可以把主要精力集中在如何解決實(shí)際業(yè)務(wù)處理問(wèn)題上,同時(shí)Struts框架也允許開發(fā)人員根據(jù)實(shí)際需求進(jìn)行擴(kuò)展和定制,從而更好地適應(yīng)用戶的需要。在數(shù)據(jù)持久層上,Hibernate是目前最好的框架之一,Hibernate不僅管理Java類到數(shù)據(jù)庫(kù)表的映射,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅減少開發(fā)時(shí)人工使用SQL和JDBC處理數(shù)據(jù)的時(shí)間。Struts架構(gòu)與Hibernate相結(jié)合實(shí)現(xiàn)Web應(yīng)用已成為Web Service十分流行的解決方案。下面我們將簡(jiǎn)要介紹一下采用Struts+Hibernate實(shí)現(xiàn)Web應(yīng)用的主要方法。

          二、數(shù)據(jù)庫(kù)設(shè)計(jì)及持久化

          大多數(shù)Web應(yīng)用都要涉及到數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的設(shè)計(jì)是系統(tǒng)設(shè)計(jì)首先要考慮的問(wèn)題,數(shù)據(jù)庫(kù)設(shè)計(jì)得是否合理對(duì)系統(tǒng)的設(shè)計(jì)有著直接的影響,數(shù)據(jù)庫(kù)如果設(shè)計(jì)的不好,有可能會(huì)使整個(gè)系統(tǒng)在最后階段推倒重建。這里我們不打算詳細(xì)討論數(shù)據(jù)庫(kù)的設(shè)計(jì)細(xì)節(jié),只要遵循一般的數(shù)據(jù)庫(kù)設(shè)計(jì)原則即可。包括找出所有實(shí)體,建立關(guān)系,畫ER圖,建立數(shù)據(jù)庫(kù)表等。持久化是通過(guò)Hibernate來(lái)實(shí)現(xiàn)的,Hibernate對(duì)數(shù)據(jù)庫(kù)的增加、刪除、更新、查找操作進(jìn)行了封裝,使程序員可以使用面向?qū)ο蟮姆绞絹?lái)設(shè)計(jì)程序,而不用為寫大量的SQL語(yǔ)句而苦惱。因此我們需要建立相應(yīng)的配置文件來(lái)幫助程序完成數(shù)據(jù)持久化,其中包括一個(gè)Hibernate基本配置文件和若干個(gè)數(shù)據(jù)庫(kù)表與基本Java類對(duì)應(yīng)的配置文件,以用戶登錄系統(tǒng)為例,二配置文件主要內(nèi)容如下:

          hibernate.cfg.xml:(使用Mysql數(shù)據(jù)庫(kù))

          PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"

          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

          com.mysql.jdbc.Driver

          jdbc:mysql:///user

          root

          100

          org.hibernate.dialect.MySQLDialect

          User.hbm.xml:

          "-//Hibernate/Hibernate Mapping DTD 2.0//EN"

          "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

          name=" hibernate.User"

          table="user"

          >

          name="id"

          type="java.lang.String"

          column="id"

          >

          name="name"

          type="java.lang.String"

          column="name"

          not-null="true"

          length="20"

          />

          name="psw"

          type="java.lang.String"

          column="psw"

          not-null="true"

          length="20"

          />

          三、視圖(View)組件的實(shí)現(xiàn)

          當(dāng)用戶提交表單時(shí)(如當(dāng)用戶登錄時(shí))Struts會(huì)把請(qǐng)求參數(shù)封裝到動(dòng)作表單(Form Bean)里,所以我們需要建立一個(gè)動(dòng)作表單類,它繼承ActionForm類,這個(gè)表單類實(shí)際上是一個(gè)JavaBean,類中需要?jiǎng)?chuàng)建與HTML提交表單中字段對(duì)應(yīng)的相同名稱的屬性,并創(chuàng)建每一個(gè)屬性的set和get方法,如登錄表單中有用戶名(name)和密碼(psw)兩個(gè)字段,則在表單類中應(yīng)創(chuàng)建與之對(duì)應(yīng)的屬性name和psw,同時(shí)創(chuàng)建對(duì)應(yīng)的方法setName()、getName()、setPsw()、getPsw(),另外還可以有Validate方法對(duì)輸入字段進(jìn)行驗(yàn)證。

          其他的視圖頁(yè)面文件只需使用簡(jiǎn)單的Jsp文件即可。

          四、控制器(Control)組件的實(shí)現(xiàn)

          控制器是Struts的核心,主要負(fù)責(zé)接受客戶端的HTTL請(qǐng)求,更新屬性以及生成Jsp頁(yè)面呈現(xiàn)在客戶端瀏覽器上,它位于試圖組件(V)與模型組件(M)之間,將二者有機(jī)地聯(lián)系起來(lái),發(fā)揮協(xié)調(diào)作用。控制器組件的核心是一個(gè)Action類,它主要負(fù)責(zé)訪問(wèn)業(yè)務(wù)邏輯層,類中的execute方法負(fù)責(zé)處理用戶的請(qǐng)求,所以我們主要的工作就是改寫execute方法,在其中添加相關(guān)的業(yè)務(wù)邏輯處理代碼。

          五、配置struts-config.xml與Web.xml文件

          在設(shè)計(jì)完數(shù)據(jù)層、視圖層和控制層后,還要對(duì)struts-config.xml與Web.xml文件進(jìn)行配置,struts-config.xml文件是MVC各層聯(lián)系的紐帶,它主要定義了form表單的名稱及對(duì)應(yīng)的具體類,配置了與表單對(duì)應(yīng)的處理Action類及執(zhí)行后轉(zhuǎn)發(fā)的頁(yè)面,配置了請(qǐng)求范圍和錯(cuò)誤提示頁(yè)面等。只有一個(gè)登錄模塊的struts-config.xml文件可能會(huì)象下面這樣:

          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"

          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

          type="action.LoginAction"

          name="loginActionForm"

          scope="request"

          input="/login.jsp">

          ……

          Web.xml是一個(gè)通用的配置文件,適用于所有Web應(yīng)用,它主要配置了ActionServlet的聲明和初始化,系統(tǒng)啟動(dòng)是創(chuàng)建Servlet的實(shí)例數(shù)目,系統(tǒng)初始化參數(shù)配置,默認(rèn)顯示的頁(yè)面等。鑒于篇幅具體文件內(nèi)容在此省略。

          六、中文問(wèn)題

          由于瀏覽器與Java采用的字符編碼不同,所以在進(jìn)行中文存儲(chǔ)與顯示時(shí)常出現(xiàn)亂碼,常用的解決方法是編寫一個(gè)過(guò)濾器組件,進(jìn)行編碼的轉(zhuǎn)換,然后在Web.xml文件中對(duì)過(guò)濾器進(jìn)行配置。

          七、其他問(wèn)題

          由于數(shù)據(jù)源的多樣性,如:Oracle,MySQL,SQL Server等,一旦數(shù)據(jù)源發(fā)生變化,或?qū)?lái)由于某種原因而不再使用Hibernate,在數(shù)據(jù)層會(huì)有較大改動(dòng),為保證系統(tǒng)的靈活性,通常的做法是在數(shù)據(jù)層使用DAO模式,即在業(yè)務(wù)核心方法與具體數(shù)據(jù)源之間再增加一層,用這一層來(lái)連接業(yè)務(wù)邏輯與數(shù)據(jù)源,實(shí)現(xiàn)二者的解藕。

          八、結(jié)束語(yǔ)

          通過(guò)對(duì)一個(gè)通用的Web應(yīng)用程序的設(shè)計(jì),我們可了解使用Struts+Hibernate框架設(shè)計(jì)Web應(yīng)用系統(tǒng)的一般過(guò)程,表面看來(lái)使用Struts+Hibernate框架比單獨(dú)使用Jsp+JavaBean方式還要復(fù)雜,但這樣做的好處也顯而易見(jiàn),那就是設(shè)計(jì)的程序?qū)哟吻逦绦虻目删S護(hù)性與可擴(kuò)充性大大加強(qiáng),各層次間的耦合性非常小,將來(lái)一旦有需求變化,可以很容易更改。我想在程序設(shè)計(jì)的初期多做一些工作來(lái)?yè)Q取程序良好的可維護(hù)性、可擴(kuò)充性及可移植性是值得的。

          參考文獻(xiàn):

          [1] 鄔繼成.Struts與Hibernate實(shí)用教程.電子工業(yè)出版社.2006.

          [2] 張桂元 賈燕楓. Struts開發(fā)入門與項(xiàng)目實(shí)踐.人民郵電出版社.2005.

          [3] 梁立新.項(xiàng)目實(shí)踐精解:基于Struts-Spring-Hibernate的Java應(yīng)用開發(fā).電子工業(yè)出版社.2006.

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【利用開源框架Struts+Hibernate實(shí)現(xiàn)Web應(yīng)用程序】相關(guān)文章:

        利用開源框架Struts+Hibernate實(shí)現(xiàn)Web應(yīng)用程序08-06

        利用Web Services實(shí)現(xiàn)軟件自動(dòng)升級(jí)08-04

        利用PowerBuilder開發(fā)WEB應(yīng)用08-21

        應(yīng)用程序指示圖標(biāo)的實(shí)現(xiàn)方法研究06-16

        VC++實(shí)現(xiàn)串口通信的應(yīng)用程序設(shè)計(jì)10-25

        利用VB實(shí)現(xiàn)對(duì)IE的調(diào)用與控制08-26

        論利用ebXML和SOAP開發(fā)Web服務(wù)09-08

        WEB服務(wù)器多框架解決方案10-23

        用Borland C 3.1實(shí)現(xiàn)外設(shè)與Windows應(yīng)用程序?qū)崟r(shí)通信09-03

        基于Web的嵌入式數(shù)控系統(tǒng)實(shí)現(xiàn)06-23

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 在线视频一区二区三区在线播放 | 亚洲欧美日韩国产综合第二页 | 在线网站亚洲观看 | 亚洲AV乱码久久精品蜜桃 | 日本一区二区视频 | 日本最新二区三区免费不卡区 |

            利用開源框架Struts+Hibernate實(shí)現(xiàn)Web應(yīng)用程序

              摘 要:本文主要介紹了利用目前的開源框架來(lái)開發(fā)一MVC結(jié)構(gòu)Web程序的主要過(guò)程,對(duì)作為Struts與Hibernate核心的配置文件作了簡(jiǎn)單介紹,最后提出了在開發(fā)類似項(xiàng)目時(shí)可能會(huì)遇到的一些問(wèn)題和解決方案。

              關(guān)鍵詞:Web;開源框架;解決方案;Struts;Hibernate;MVC;計(jì)算機(jī)

              一、概述

              大多數(shù)Web應(yīng)用在職責(zé)上至少可被分成四層,表示層、持久層、業(yè)務(wù)層和域模塊層,每一層相互獨(dú)立,在功能上與其他層互不混合,這樣為程序的后期維護(hù)及擴(kuò)充提供了方便,而在Web應(yīng)用的分層設(shè)計(jì)中,MVC模式成為一種十分流行的結(jié)構(gòu),Struts則是MVC模式的一種具體實(shí)現(xiàn),他讓開發(fā)人員可以把主要精力集中在如何解決實(shí)際業(yè)務(wù)處理問(wèn)題上,同時(shí)Struts框架也允許開發(fā)人員根據(jù)實(shí)際需求進(jìn)行擴(kuò)展和定制,從而更好地適應(yīng)用戶的需要。在數(shù)據(jù)持久層上,Hibernate是目前最好的框架之一,Hibernate不僅管理Java類到數(shù)據(jù)庫(kù)表的映射,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅減少開發(fā)時(shí)人工使用SQL和JDBC處理數(shù)據(jù)的時(shí)間。Struts架構(gòu)與Hibernate相結(jié)合實(shí)現(xiàn)Web應(yīng)用已成為Web Service十分流行的解決方案。下面我們將簡(jiǎn)要介紹一下采用Struts+Hibernate實(shí)現(xiàn)Web應(yīng)用的主要方法。

              二、數(shù)據(jù)庫(kù)設(shè)計(jì)及持久化

              大多數(shù)Web應(yīng)用都要涉及到數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的設(shè)計(jì)是系統(tǒng)設(shè)計(jì)首先要考慮的問(wèn)題,數(shù)據(jù)庫(kù)設(shè)計(jì)得是否合理對(duì)系統(tǒng)的設(shè)計(jì)有著直接的影響,數(shù)據(jù)庫(kù)如果設(shè)計(jì)的不好,有可能會(huì)使整個(gè)系統(tǒng)在最后階段推倒重建。這里我們不打算詳細(xì)討論數(shù)據(jù)庫(kù)的設(shè)計(jì)細(xì)節(jié),只要遵循一般的數(shù)據(jù)庫(kù)設(shè)計(jì)原則即可。包括找出所有實(shí)體,建立關(guān)系,畫ER圖,建立數(shù)據(jù)庫(kù)表等。持久化是通過(guò)Hibernate來(lái)實(shí)現(xiàn)的,Hibernate對(duì)數(shù)據(jù)庫(kù)的增加、刪除、更新、查找操作進(jìn)行了封裝,使程序員可以使用面向?qū)ο蟮姆绞絹?lái)設(shè)計(jì)程序,而不用為寫大量的SQL語(yǔ)句而苦惱。因此我們需要建立相應(yīng)的配置文件來(lái)幫助程序完成數(shù)據(jù)持久化,其中包括一個(gè)Hibernate基本配置文件和若干個(gè)數(shù)據(jù)庫(kù)表與基本Java類對(duì)應(yīng)的配置文件,以用戶登錄系統(tǒng)為例,二配置文件主要內(nèi)容如下:

              hibernate.cfg.xml:(使用Mysql數(shù)據(jù)庫(kù))

              PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"

              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

              com.mysql.jdbc.Driver

              jdbc:mysql:///user

              root

              100

              org.hibernate.dialect.MySQLDialect

              User.hbm.xml:

              "-//Hibernate/Hibernate Mapping DTD 2.0//EN"

              "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

              name=" hibernate.User"

              table="user"

              >

              name="id"

              type="java.lang.String"

              column="id"

              >

              name="name"

              type="java.lang.String"

              column="name"

              not-null="true"

              length="20"

              />

              name="psw"

              type="java.lang.String"

              column="psw"

              not-null="true"

              length="20"

              />

              三、視圖(View)組件的實(shí)現(xiàn)

              當(dāng)用戶提交表單時(shí)(如當(dāng)用戶登錄時(shí))Struts會(huì)把請(qǐng)求參數(shù)封裝到動(dòng)作表單(Form Bean)里,所以我們需要建立一個(gè)動(dòng)作表單類,它繼承ActionForm類,這個(gè)表單類實(shí)際上是一個(gè)JavaBean,類中需要?jiǎng)?chuàng)建與HTML提交表單中字段對(duì)應(yīng)的相同名稱的屬性,并創(chuàng)建每一個(gè)屬性的set和get方法,如登錄表單中有用戶名(name)和密碼(psw)兩個(gè)字段,則在表單類中應(yīng)創(chuàng)建與之對(duì)應(yīng)的屬性name和psw,同時(shí)創(chuàng)建對(duì)應(yīng)的方法setName()、getName()、setPsw()、getPsw(),另外還可以有Validate方法對(duì)輸入字段進(jìn)行驗(yàn)證。

              其他的視圖頁(yè)面文件只需使用簡(jiǎn)單的Jsp文件即可。

              四、控制器(Control)組件的實(shí)現(xiàn)

              控制器是Struts的核心,主要負(fù)責(zé)接受客戶端的HTTL請(qǐng)求,更新屬性以及生成Jsp頁(yè)面呈現(xiàn)在客戶端瀏覽器上,它位于試圖組件(V)與模型組件(M)之間,將二者有機(jī)地聯(lián)系起來(lái),發(fā)揮協(xié)調(diào)作用。控制器組件的核心是一個(gè)Action類,它主要負(fù)責(zé)訪問(wèn)業(yè)務(wù)邏輯層,類中的execute方法負(fù)責(zé)處理用戶的請(qǐng)求,所以我們主要的工作就是改寫execute方法,在其中添加相關(guān)的業(yè)務(wù)邏輯處理代碼。

              五、配置struts-config.xml與Web.xml文件

              在設(shè)計(jì)完數(shù)據(jù)層、視圖層和控制層后,還要對(duì)struts-config.xml與Web.xml文件進(jìn)行配置,struts-config.xml文件是MVC各層聯(lián)系的紐帶,它主要定義了form表單的名稱及對(duì)應(yīng)的具體類,配置了與表單對(duì)應(yīng)的處理Action類及執(zhí)行后轉(zhuǎn)發(fā)的頁(yè)面,配置了請(qǐng)求范圍和錯(cuò)誤提示頁(yè)面等。只有一個(gè)登錄模塊的struts-config.xml文件可能會(huì)象下面這樣:

              "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"

              "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

              type="action.LoginAction"

              name="loginActionForm"

              scope="request"

              input="/login.jsp">

              ……

              Web.xml是一個(gè)通用的配置文件,適用于所有Web應(yīng)用,它主要配置了ActionServlet的聲明和初始化,系統(tǒng)啟動(dòng)是創(chuàng)建Servlet的實(shí)例數(shù)目,系統(tǒng)初始化參數(shù)配置,默認(rèn)顯示的頁(yè)面等。鑒于篇幅具體文件內(nèi)容在此省略。

              六、中文問(wèn)題

              由于瀏覽器與Java采用的字符編碼不同,所以在進(jìn)行中文存儲(chǔ)與顯示時(shí)常出現(xiàn)亂碼,常用的解決方法是編寫一個(gè)過(guò)濾器組件,進(jìn)行編碼的轉(zhuǎn)換,然后在Web.xml文件中對(duì)過(guò)濾器進(jìn)行配置。

              七、其他問(wèn)題

              由于數(shù)據(jù)源的多樣性,如:Oracle,MySQL,SQL Server等,一旦數(shù)據(jù)源發(fā)生變化,或?qū)?lái)由于某種原因而不再使用Hibernate,在數(shù)據(jù)層會(huì)有較大改動(dòng),為保證系統(tǒng)的靈活性,通常的做法是在數(shù)據(jù)層使用DAO模式,即在業(yè)務(wù)核心方法與具體數(shù)據(jù)源之間再增加一層,用這一層來(lái)連接業(yè)務(wù)邏輯與數(shù)據(jù)源,實(shí)現(xiàn)二者的解藕。

              八、結(jié)束語(yǔ)

              通過(guò)對(duì)一個(gè)通用的Web應(yīng)用程序的設(shè)計(jì),我們可了解使用Struts+Hibernate框架設(shè)計(jì)Web應(yīng)用系統(tǒng)的一般過(guò)程,表面看來(lái)使用Struts+Hibernate框架比單獨(dú)使用Jsp+JavaBean方式還要復(fù)雜,但這樣做的好處也顯而易見(jiàn),那就是設(shè)計(jì)的程序?qū)哟吻逦绦虻目删S護(hù)性與可擴(kuò)充性大大加強(qiáng),各層次間的耦合性非常小,將來(lái)一旦有需求變化,可以很容易更改。我想在程序設(shè)計(jì)的初期多做一些工作來(lái)?yè)Q取程序良好的可維護(hù)性、可擴(kuò)充性及可移植性是值得的。

              參考文獻(xiàn):

              [1] 鄔繼成.Struts與Hibernate實(shí)用教程.電子工業(yè)出版社.2006.

              [2] 張桂元 賈燕楓. Struts開發(fā)入門與項(xiàng)目實(shí)踐.人民郵電出版社.2005.

              [3] 梁立新.項(xiàng)目實(shí)踐精解:基于Struts-Spring-Hibernate的Java應(yīng)用開發(fā).電子工業(yè)出版社.2006.