亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Struts2和AJAX的網(wǎng)上汽車配件商城的設(shè)計(jì)與實(shí)現(xiàn)

        2012-12-31 00:00:00宋萬里

        摘要:良好的框架可以讓開發(fā)人員減輕解決復(fù)雜問題的負(fù)擔(dān)和精力,并且在必要時(shí)可以被擴(kuò)展以進(jìn)行內(nèi)部的定制化。本文基于Struts+Ajax輕量級架構(gòu)部署J2EE三層結(jié)構(gòu),分別實(shí)現(xiàn)視圖表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層,并以網(wǎng)上汽車配件商城項(xiàng)目的開發(fā)進(jìn)行應(yīng)用分析。

        關(guān)鍵詞:Struts2;Ajax;架構(gòu)

        中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599 (2012) 09-0000-02

        一、概述

        2010年2月,中國汽車零部件規(guī)模以上企業(yè)數(shù)量上升至10788家[1],汽車配件因其車型、零部件種類多,在汽配行業(yè)中手工管理己經(jīng)不能適應(yīng)市場經(jīng)濟(jì)的發(fā)展。實(shí)時(shí)、互動、全面、客觀的網(wǎng)絡(luò)營銷特性能為企業(yè)帶來更多的銷售機(jī)會,大大拓展交易的靈活性。因此,通過網(wǎng)絡(luò)進(jìn)行交易將是以后進(jìn)行汽車配件的銷售一個重要的發(fā)展趨勢。要快速開發(fā)出功能強(qiáng)大、可擴(kuò)展性強(qiáng)的網(wǎng)上商城系統(tǒng)必定要使用基于MVC設(shè)計(jì)模式的框架技術(shù),而Strut2以其簡化的開發(fā)流程、靈活的執(zhí)行控制和全程可測試等特點(diǎn),正是此中的佼佼者。本文闡述了采用Struts2的系統(tǒng)實(shí)現(xiàn),同時(shí)運(yùn)用AJAX技術(shù)增強(qiáng)用戶的體驗(yàn)。

        二、Struts 2

        Struts 2是以WebWork為核心設(shè)計(jì),吸收Struts1的優(yōu)秀部分,建立起來的優(yōu)秀的MVC框架。Struts 2與Struts 1在體系結(jié)構(gòu)上有著巨大的差別,Struts2采用一種與Struts1完全不同的非常松耦合的設(shè)計(jì),讓框架中的Action不再與Serlet API耦合,增強(qiáng)了單元的可維護(hù)與測試性。同時(shí)Struts2的開發(fā)者設(shè)計(jì)了強(qiáng)大的標(biāo)簽庫,這些標(biāo)簽即提供了對表現(xiàn)層數(shù)據(jù)處理的功能,還提供了包括國際化、AJAX、上傳下載等Web操作的常用功能。Struts2可用來創(chuàng)建企業(yè)級Web應(yīng)用的可擴(kuò)展框架,其綜合Struts1和WebWork的優(yōu)點(diǎn),簡化了復(fù)雜問題,可應(yīng)用于整個軟件周期的構(gòu)建、發(fā)布和維護(hù)[2]。

        Struts2框架中,用戶的請求大多是使用攔截器來處理,請求首先通過在Web應(yīng)用的部署描述符里注冊的Servlet Filter控制器截獲,其后根據(jù)請求資源的類型分派到相應(yīng)的模塊Action中,或者進(jìn)行直接讀取操作。若為Action的請求,則通過一系列配置好的Interceptor執(zhí)行通用功能,如驗(yàn)證、設(shè)置參數(shù)、上傳文件等。然后,到達(dá)相應(yīng)的action類調(diào)用相應(yīng)的execute方法產(chǎn)生不同的result,再通過在struts.xml中的配置信息把這些result分別轉(zhuǎn)換成不同的Web響應(yīng)。

        三、AJAX

        AJAX(異步JavaScript和XML)是指一種異步交互方式的網(wǎng)頁開發(fā)技術(shù),讓用戶使用B/S(瀏覽器/服務(wù)器)架構(gòu)上的Web系統(tǒng)時(shí)可以體驗(yàn)到C/S(客戶機(jī)/服務(wù)器模式)架構(gòu)上操作的連續(xù)性。Ajax并不是一項(xiàng)新的技術(shù),它只是幾種早己出現(xiàn)的技術(shù)的綜合使用,是一種新的互聯(lián)網(wǎng)應(yīng)用設(shè)計(jì)思想和實(shí)現(xiàn)方式。Ajax主要由如下一些技術(shù)要點(diǎn)組成[3]:

        1.頁面描述語言:HTML,XHTML和XML;

        2.頁面文檔展示模式語言:Cascading Style Sheet(CSS);

        3.頁面交互和動態(tài)展示:W3 C Document Object Model(DOM);

        4.客戶端語言:JavaScript;

        5.異步數(shù)據(jù)傳輸和交互:XMLHttpRequest;

        6.數(shù)據(jù)轉(zhuǎn)換:XML,XSLT,HTML,JSON;

        7.傳輸協(xié)議:HTTP,HTTPS;

        8.服務(wù)器端語言:JSP,JSF,PHP,ASP等。

        使用JavaScript作為黏合劑將以上技術(shù)結(jié)合起來,讓它們在Web應(yīng)用系統(tǒng)的不同層次發(fā)生作用,從而實(shí)現(xiàn)用戶與系統(tǒng)良好的交互效果。

        四、設(shè)計(jì)與實(shí)現(xiàn)

        (一)架構(gòu)和總體流程設(shè)計(jì)

        本系統(tǒng)采用經(jīng)典的MVC三層結(jié)構(gòu),即數(shù)據(jù)持久層(Data Persistence)、業(yè)務(wù)邏輯層(business)、視圖表現(xiàn)層(View)。這樣的優(yōu)勢在于對一個組件的更改不會影響另外兩個組件;表示層和數(shù)據(jù)層相互獨(dú)立,使系統(tǒng)具有良好的可擴(kuò)展性;實(shí)現(xiàn)組件的充分復(fù)用和良好的分工合作。本系統(tǒng)的建設(shè)目標(biāo)是構(gòu)建一個技術(shù)先進(jìn)、安全穩(wěn)定、可擴(kuò)展性強(qiáng)的網(wǎng)絡(luò)銷售系統(tǒng)。系統(tǒng)總體流程如圖1所示。

        (二)具體實(shí)現(xiàn)

        (1)數(shù)據(jù)持久層的實(shí)現(xiàn)

        在數(shù)據(jù)持久層,實(shí)體類是一個普通的JavaBean,包含若干屬性及其相應(yīng)的Getter和Setter方法,每個業(yè)務(wù)實(shí)體類與數(shù)據(jù)庫中的一張數(shù)據(jù)表相對應(yīng)(也可以考慮到需求增加或減少一些與表字段相對應(yīng)的屬性)。同時(shí)都實(shí)現(xiàn)java.io.Serializable接口,以便進(jìn)行序列化。因?yàn)閷?shù)據(jù)庫的操作共分為增刪改查四種,所以系統(tǒng)在構(gòu)建DAO操作層時(shí)只需要關(guān)注相應(yīng)方法的編寫,同時(shí)注意這些方法的通用性。系統(tǒng)構(gòu)建一個DAO的基類,對以上四種操作進(jìn)行封裝,建立基礎(chǔ)操作方法,聲明save()方法用來保存數(shù)據(jù)記錄,也可以更新記錄,聲明delete()方法用于數(shù)據(jù)距離的刪除,聲明load()方法用于根據(jù)對象的ID和對象類型獲取實(shí)體對象信息。之后建立的具體DAO對象都繼承自這個基類,自動獲取基礎(chǔ)操作方法,實(shí)現(xiàn)對汽車配件信息數(shù)據(jù)庫的操作。

        (2)業(yè)務(wù)邏輯層的實(shí)現(xiàn)

        在業(yè)務(wù)邏輯層,系統(tǒng)構(gòu)建一個包含業(yè)務(wù)對象基本屬性和方法的基礎(chǔ)業(yè)務(wù)類,汽車配件商城的每一個新建的業(yè)務(wù)對象都繼承這個基礎(chǔ)業(yè)務(wù)類。利用基本的面向?qū)ο箝_發(fā)思想,系統(tǒng)既實(shí)現(xiàn)了業(yè)務(wù)代碼的復(fù)用,也規(guī)范了商城的業(yè)務(wù)流程,也方便擴(kuò)展和管理。系統(tǒng)對業(yè)務(wù)邏輯處理分為兩類:一個是簡單對象處理,例如每個對象自身的增加、刪除和修改操作;另一個是復(fù)雜邏輯處理,這類操作主要是針對關(guān)系交錯復(fù)雜、業(yè)務(wù)邏輯繁多的對象,將某一類操作抽離,形成一個專門的處理對象,保證程序較好的解耦性。系統(tǒng)利用Struts2與Servlet API良好的解耦性,首先開發(fā)上層通用的Action基類或接口,再針對不同的業(yè)務(wù)邏輯開發(fā)相應(yīng)的Action實(shí)現(xiàn)類,繼承基類或?qū)崿F(xiàn)接口,把調(diào)用數(shù)據(jù)持久層的增刪改查操作(或相應(yīng)的業(yè)務(wù)邏輯代碼)的方法放置在一個Action類中,完成相關(guān)業(yè)務(wù)操作。

        (3)視圖表現(xiàn)層的實(shí)現(xiàn)

        表現(xiàn)層的主要功能就是把經(jīng)過業(yè)務(wù)邏輯層處理過的數(shù)據(jù)重新組合,并以特定視圖樣式展現(xiàn)給用戶,也可以將來自視圖的數(shù)據(jù)組合封裝,傳給業(yè)務(wù)邏輯層進(jìn)行處理。為了使頁面組件化,實(shí)現(xiàn)模塊的重用,系統(tǒng)使用了模板語言Freemarker實(shí)現(xiàn)視圖展現(xiàn)部分。Freemarker是一種Java模板語言,可以在Servlet容器外使用。

        DWR是一個Java Ajax框架,允許開發(fā)人員在客戶端通過Javascript代碼調(diào)用服務(wù)器端的Java方法。首先將dwr.jar和common-logging.jar都復(fù)制到WEB-INF/lib下,修改web.xml文件保證將請求轉(zhuǎn)發(fā)給DWR的核心Servlet,同時(shí)在web.xml同目錄下創(chuàng)建dwr.xml,用來定義Java類和Javascript之間的對應(yīng)關(guān)系。然后導(dǎo)入DWR的Javascript文件,包括engine.js和util.js,之后就可以在頁面實(shí)現(xiàn)無刷新效果了。本系統(tǒng)中的很多頁面效果,比如查找的自動補(bǔ)全效果,就是DWR的貢獻(xiàn)。

        最后通過對Struts2配置文件struts.xml的編輯,來配置Action中method屬性與result元素的對應(yīng)關(guān)系,主要采用通配符的方式,使頁面更為豐富,系統(tǒng)更加靈活。

        五、結(jié)束語

        通過對網(wǎng)上汽車配件商城系統(tǒng)的設(shè)計(jì)開發(fā)可以發(fā)現(xiàn),Struts2使用攔截器來捕獲請求參數(shù)并完成解析,同時(shí)融合了控制反轉(zhuǎn)和面向方面編程的思想,實(shí)現(xiàn)了可插拔式的編程方式,解決了Struts1與Servlet API的緊耦合性,方便日后對代碼復(fù)用和維護(hù)。結(jié)合AJAX技術(shù)的應(yīng)用,提高了響應(yīng)速度、增強(qiáng)了客戶體驗(yàn)。隨著Struts2技術(shù)的普及,相信Struts2會在更多的Web領(lǐng)域里體現(xiàn)它強(qiáng)大的功能。

        參考文獻(xiàn):

        [1]2010-2015年中國汽車零部件行業(yè)投資分析及前景預(yù)測報(bào)告.2010,8

        [2]Apache software foundation.Struts2[EB/OL].[2008-1028].http://struts.apache.org/2.0.x/index.html.

        [3]ZEPEDA J S,CHAPA S V.From desktop applications towards ajax Web applications[C].Electrical and Electropics Engineering,2007.ICEEE 2007.4th International Conference on 5-7 Sept,2007:193-196

        [4]王彬,張計(jì)龍.Struts2框架的改進(jìn)與實(shí)現(xiàn)[J].大連海事大學(xué)學(xué)報(bào),2010,36(2):75-77,80

        [作者簡介]宋萬里(1981.1-),男,遼寧法庫人,博士研究生,高校講師,主要研究方向?yàn)檐浖夹g(shù)、計(jì)算機(jī)應(yīng)用技術(shù)。

        精品少妇一区一区三区| 国产乡下三级全黄三级| 日日噜狠狠噜天天噜av| 精品国产免费Av无码久久久| 91麻豆精品一区二区三区| 国产日产在线视频一区| 日韩中文字幕免费视频| 国产AV边打电话边出轨| 亚洲国产av一区二区三| 青青河边草免费在线看的视频| 精品无码国产自产拍在线观看蜜| 久久精品国产亚洲av电影| 日韩精品精品一区二区三区| 久久久精品国产免费看| 日本午夜精品一区二区三区电影| 四虎国产精品永久在线无码| 亚洲一区丝袜美腿在线观看| 日韩有码在线观看视频| 日韩放荡少妇无码视频| 久久亚洲国产中v天仙www| 男女男生精精品视频网站| 精品人妻va一区二区三区| 天天躁日日躁狠狠很躁 | 国产伦精品一区二区三区| 人妻 丝袜美腿 中文字幕| 高中生粉嫩无套第一次| 久久精品国产亚洲AV香蕉吃奶| 精品久久人妻av中文字幕| 亚洲av久久久噜噜噜噜| 久久精品中文字幕第23页| 黄色三级一区二区三区| 日本护士xxxxhd少妇| 人人玩人人添人人澡| 免费a级毛片无码a∨免费| 中文字幕av永久免费在线| 久久精品国产色蜜蜜麻豆 | 一区二区三区蜜桃在线视频| 国产精品国产三级国产专播下| 三年在线观看免费大全下载 | 日本最新一区二区三区视频| 色视频网站一区二区三区|