【正文】
的開發(fā)。它的設(shè)計目標(biāo)是將軟件開發(fā)人員從大量相同的數(shù)據(jù)持久層相關(guān)編程工作中解放出來。MVC模式結(jié)構(gòu)清晰,現(xiàn)今已被大量運用。Struts在英文中是“支架、支撐”的意思,這表明了Struts在Web應(yīng)用開發(fā)中的巨大作用,采用Struts可以更好地遵循MVC模式。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο?,具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。利用B/S結(jié)構(gòu)便于用戶在網(wǎng)上進行查詢、訂票、退票等操作。這是實時性很強商業(yè)系統(tǒng)理想的選擇。能消除系統(tǒng)中的瓶頸,允許多臺服務(wù)器集成部署?;贘2EE的應(yīng)用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。每一個供應(yīng)商都對現(xiàn)有的客戶提供了不用廢棄已有投資,進入可移植的J2EE領(lǐng)域的升級途徑。 總體評價 就企業(yè)而言,內(nèi)部眾多系統(tǒng)的整合、系統(tǒng)的延展性、安全性是更需要注意的議題,而這些都是J2EE的優(yōu)勢,也是微軟的不足處。事實上,由于實體EJB的load()和store()方法的同步機制,將大大緩解因并發(fā)而使數(shù)據(jù)庫產(chǎn)生的瓶頸。在結(jié)構(gòu)上,Windows (runtime framework)和組件模型 (ponent model)中。并且實現(xiàn)了多重接口繼承,擴展的元數(shù)據(jù)和新的代理模型等。微軟的跨平臺解決方案是Web services,它解決的是異種平臺上不同應(yīng)用之間的連通性問題。但它們的目的都是為了企業(yè)應(yīng)用提供分布式的、高可靠性的解決方案。(5)設(shè)計和實現(xiàn)系統(tǒng)的三層結(jié)構(gòu):表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層。然而,鐵路買票難問題就顯得更為突出了。%,%,%,%的用戶因為價格便宜選擇了網(wǎng)上訂票。當(dāng)今世界信息技術(shù)飛速發(fā)展,人們越來越多地利用計算機技術(shù)、通信技術(shù)和Internet創(chuàng)建一個國際化、信息化、跨地域的商務(wù)活動的便利環(huán)境來拓展商務(wù)經(jīng)營。 通過網(wǎng)上售票的方式,可以大大提高售票的效率,減少乘客排隊購票的時間?;贘2EE平臺的火車站網(wǎng)上售票系統(tǒng)的實現(xiàn)摘 要:隨著國民經(jīng)濟的快速發(fā)展,人們出行越來越頻繁,對服務(wù)的快捷、便利性要求也越來越高。 關(guān)鍵詞:售票系統(tǒng);J2EE;Struts;Spring;HibernateThe Implementation Of Online Ticketing System of Railway Station On J2EE PlatformAbstract:With the rapid development of the national economy, people travel more frequently. It bees higher and higher to the requirements of quick convenience service for people. In the business of selling tickets at the railway station, the problem of the ticket of hard purchase is the biggest one of the rail passenger services. If it can not be resolved for a long time, the result will inevitably lead to the continuous loss of passenger flow. With the rapid development of emerce, presenting a new type of ticket sale, online ticket sale, is not only technical innovation, but also will improve the railway services. It can solve this major problem of the ticket of hard purchase to a certain extent. The subject analyses the characteristic and demand of online ticketing system. It studies J2EE architecture and its related technologies deeply. Integrating J2EE39。在此背景下,產(chǎn)生了電子商務(wù),電子商務(wù)的產(chǎn)生是計算機和Internet的發(fā)展以及商務(wù)應(yīng)用需求的必然結(jié)果,已成為當(dāng)今商務(wù)發(fā)展的一大趨勢[1]。 國外現(xiàn)狀與發(fā)展早在20世紀(jì)70年代,歐美及日本等發(fā)達國家就開始了計算機售票,英國的Tribute系統(tǒng)具有列車運行時刻表管理、運營運價算法管理、席位預(yù)訂、發(fā)售歐洲其他國家車票等功能。因此就需要開發(fā)一個網(wǎng)上售票系統(tǒng)來解決這個問題。(6)實現(xiàn)了用戶模塊和管理員模塊的功能。它們在架構(gòu)上有著很多的相似之處[5],: 技術(shù)J2EE.NET通信協(xié)議RMI/IIOPXML編程語言JAVAC,COBOL運行時環(huán)境JVMCLR胖客戶端Java SwingWindows Forms目錄服務(wù)JNDIADSI數(shù)據(jù)訪問JDBC異步消息處理JMSMicrosoft Message Queue表示層技術(shù)Servlets,JSP中間層組建模型EJB,JavaBeanCOM+,COM安全訪問JAASCOM+ Security事務(wù)處理JTSMSDTC開發(fā)工具Jbuilder,EclipseVisual 技術(shù)比較(1)一對多 兩種平臺主流的開發(fā)語言Java和C在架構(gòu)上有著相似之處:虛擬機技術(shù),基于沙箱的安全模型,分層的命名空間,垃圾回收等。但在現(xiàn)實中所更迫切需要的是如何在異構(gòu)的平臺上構(gòu)造具有可擴展性、高可靠性、高可用性、故障冗余和錯誤恢復(fù)能力的企業(yè)應(yīng)用。舊有的COM和COM+組件也可被映射到新的運行環(huán)境中。在瘦客戶模型中,WML,XML作為表示層。也可以采用不屬于J2EE規(guī)范的第三方數(shù)據(jù)訪問工具,象WebGain的TopLink。在效率方面,J2EE陣營主張通過硬件的效能增加來彌補軟件的不足。由于基于J2EE平臺的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運行,現(xiàn)有的操作系統(tǒng)和硬件也能被保留使用。因此設(shè)計合理的基于J2EE的程序只需開發(fā)一次就可部署到各種平臺。這種部署可達數(shù)千個處理器,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。 B/S結(jié)構(gòu)系統(tǒng)實現(xiàn)的是網(wǎng)上售票的功能,需要借助于互聯(lián)網(wǎng),所以采用B/S結(jié)構(gòu),B/S結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。 JSP技術(shù)系統(tǒng)的表示層采用的是JSP(Java Server Pages)技術(shù)。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。此外,Struts提供了一套完備的規(guī)范,以及基礎(chǔ)類庫,可以充分利用 JSP/Servlet 的優(yōu)點,減輕程序員的工作量,具有很強的可擴展性。Struts 通過提供一個控制器Servlet 實現(xiàn)了Sun的Model2架構(gòu),這個控制器可以用來管理JSP頁面和其他表現(xiàn)設(shè)備之間的流程。無論是從設(shè)計草案還是從一個遺留數(shù)據(jù)庫開始,開發(fā)人員都可以采用Hibernate。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。你可以認(rèn)為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。(4)提供了與第三代高級語言的接口軟件PRO*系列,能在C,C++等主語言中嵌入SQL語句及過程化(PL/SQL)語句,對數(shù)據(jù)庫中的數(shù)據(jù)進行操縱。由于有了Sun 的參與和支持,最新的Servlet和JSP規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat5支持最新的Servlet 。Tomcat提供了可執(zhí)行程序的安裝程序,可以從其官方網(wǎng)站免費下載。 系統(tǒng)的總體結(jié)構(gòu)設(shè)計根據(jù)J2EE體系結(jié)構(gòu)的特點,開發(fā)出基于J2EE、Struts、Hibernate、Spring、XML和Oracle三層模型架構(gòu)的網(wǎng)上火車站訂票系統(tǒng)。系統(tǒng)模塊具體功能描述如下:(1)用戶模塊的功能① 列車信息查詢用戶登陸成功后,通過選擇車次查詢,就可對車次信息進行查詢,查詢方式的方式有兩種,分別為:車次查詢、站站查詢。 系統(tǒng)架構(gòu)說明系統(tǒng)的架構(gòu)采用的是典型的J2EE三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。 ③ DAO層,負(fù)責(zé)與持久化對象交互。數(shù)據(jù)庫的好壞將直接對應(yīng)用系統(tǒng)的效率以及實現(xiàn)的效果產(chǎn)生影響。(fankui)表字 段說 明類 型 ( 長 度 )備 注Id編號Number不允許空,主鍵Userid用戶名Varchar(20)不允許空Info信息Varchar(20)不允許空IsAnswer是否回復(fù)Varchar(20)不允許空 系統(tǒng)開發(fā)環(huán)境系統(tǒng)的開發(fā)、測試平臺為Windows XP,經(jīng)測試最終可在多種平臺上運行。保證了整個軟件開發(fā)過程以面向?qū)ο蟮姆绞竭M行,即面向?qū)ο蠓治?、設(shè)計及編程。 (2)5個持久化對象之間的關(guān)系Train和TrainPrice之間存在 1N 的關(guān)系,即每列車兩地間的車票價格是多樣的,每列車有不同的票價。public class Train implements {private Long trainId。 = trainTime。 } public void setTrainName(String trainName) { = trainName。 } public void setTrainPath(String trainPath) { = trainPath。其映射代碼如下:set name=users key column name=username/ /key onetomany class= //set set name=users 但這種配置會導(dǎo)致效率降低,因此可以通過在集合類映射上指定 notnull=true來解決這個問題:set name=users key column name=username/ /key onetomany class= notnull=true//set 對所有1N的關(guān)聯(lián)關(guān)系,建議不要使用“1”的一端控制關(guān)系,因此建議為set元素增加inverse= true 屬性,讓“N”的一端來控制關(guān)聯(lián)關(guān)系。所有的DAO類都繼承HibernateDaoSupport,并實現(xiàn)相應(yīng)的DAO接口。+ ()+39。 return ().find(sql)。 return ().find(sql)。 部署DAO層應(yīng)用的DAO組件以 Hibernate和Spring為基礎(chǔ),由Spring容器負(fù)責(zé)生成并管理DAO組件。下面是UserService的部分源代碼:package 。 } public void setUserDao(UserDao userDao) { = userDao。 } }//取消訂票 public List login(String username, String password){ return (username, password)。 解決中文編碼問題在頁面?zhèn)鬟f和數(shù)據(jù)查找中,必然會遇到中文的編碼問題,系統(tǒng)通過使用Filter類來解決中文的編碼問題。在action中注入組件,來完成一些通用操作。 登錄界面用戶登錄時,首先從session中獲得session信息,如果獲得的信息與輸入的用戶名一致,表明用戶已經(jīng)登錄,就會提示“用戶已登錄”的信息,采用這種機制可以防止用戶重復(fù)登錄。 return new ActionForward(/)。相關(guān)的Javascript代碼如下:script type=text/javascript function validate(){ var username = (39。 || == 39。 登錄失敗界面 用戶車次查詢模塊的實現(xiàn)用戶通過驗證登陸后,進入用戶界面。通過兩種方式的查詢,使用戶能夠更便捷更快速的查詢自己所要列車的信息,上面代碼實現(xiàn)的是按車次查詢的功能。 車票預(yù)訂功能模塊實現(xiàn)用戶登陸后,點擊車票預(yù)訂即可進行車票的預(yù)定。查詢車次的方式有兩種:按車次查詢和按站站查詢。){ alert(39。)。 ().setAttribute(uname, yname)。相關(guān)的代碼實現(xiàn)如下:public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServle