




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
經(jīng)典word整理文檔,僅參考,雙擊此處可刪除頁眉頁腳。本資料屬于網(wǎng)絡(luò)整理,如有侵權(quán),請(qǐng)聯(lián)系刪除,謝謝!在校園、機(jī)關(guān)或企業(yè)里,由于各種調(diào)查研究的需要,經(jīng)常會(huì)有各種各樣的調(diào)查問卷,在傳統(tǒng)模式下,人們不但要花費(fèi)不少的費(fèi)用印刷問卷,而且還容易產(chǎn)生漏卷,廢卷等問題。本系統(tǒng)建立在信息技術(shù)基礎(chǔ)上,構(gòu)建一個(gè)在線的問卷設(shè)計(jì)、分發(fā)、調(diào)查、回收、統(tǒng)計(jì)的系統(tǒng),基本解決傳統(tǒng)問卷的上訴老大難問題。本文首先對(duì)J2EE象軟件開發(fā)過程中的重要作用,闡述了在J2EE平臺(tái)下開發(fā)應(yīng)用程序的一些用程序所帶來的優(yōu)勢(shì),最后研究和設(shè)計(jì)了一個(gè)建立在J2EE平臺(tái)上的通用框架。從而建立了一個(gè)能夠快速開發(fā)業(yè)務(wù)應(yīng)用程序的開發(fā)環(huán)境。關(guān)鍵詞:J2EE體系結(jié)構(gòu),問卷調(diào)查,設(shè)計(jì)模式,通用框架AbstractOncampus,authoritiesorenterprisesinChina,duetoavarietyofresearchneeds,oftenhaveavarietyofquestionnaires,thetraditionalmodel,peoplenotonlyhavetospendalotofthecostofprintingthequestionnaires,butalsospendalotoftimeandIssuedonthequestionnaire,therecoveryofthequestionnaire,statisticalsurvey,questionnairesandcontrolpoor,pronetoleakagevolume,thevolumeofwaste.Thesystembuiltonthebasisofinformationtechnology,tobuildanonlinequestionnairedesign,distribution,investigation,recovery,statisticalsystems,thetraditionalsolutiontothebasicappealofthequestionnairechronicproblem.ThepaperintroducesJ2EEarchitecturefirstly,andthen,theimportanceofdesignpatternsandtheadvantageofdevelopingobject-orientedapplicationusingdesignpatternsarediscussed.Withfollowing,someimportantdesignpatternsusedonJ2EEarchitecturearedescribed,andthewayhowtousethesedesignpatternstodesignanenterprisemanagementinformationsystemisintroduced.Finally,thepapermakearesearchandadesignofacommonframeworkestablishedonJ2EEplatform.Keywords:J2EE,questionnaire,commonframework,survey目錄一、緒論引言在校園、機(jī)關(guān)或企業(yè)里,由于各種調(diào)查研究的需要,經(jīng)常會(huì)有各種各樣的調(diào)查問卷,在傳統(tǒng)模式下,人們不但要花費(fèi)不少的費(fèi)用印刷問卷,而且還容易產(chǎn)生漏卷,廢卷等問題?,F(xiàn)代信息技術(shù)的發(fā)展,極大程度上提高了我們生產(chǎn)的效率,當(dāng)然也為我們解決問卷調(diào)查的難題提供了良好的解決方案,其中J2EE解決方案就是一個(gè)在絕大多數(shù)方面都占據(jù)優(yōu)勢(shì)的方案,也是本文討論的主題。項(xiàng)目介紹本項(xiàng)目旨在建立一個(gè)基于J2EE的WEB應(yīng)用系統(tǒng),提供問卷創(chuàng)建,問卷編輯,問卷發(fā)布,問卷統(tǒng)計(jì),題目添加刪除修改,友情連接管理等功能;題目支持單選題、多選題、帶文本輸入的單選題、帶文本輸入的多選題、問答限制,包括IP是否可以重復(fù)提交等防作弊選項(xiàng);系統(tǒng)提供對(duì)客觀題調(diào)查結(jié)果的智能統(tǒng)計(jì),并用圖表展示出來;針對(duì)每一張問卷的每一個(gè)題目的任易選項(xiàng),用戶也可以設(shè)置截?cái)?,終止調(diào)查,也可以設(shè)置跳轉(zhuǎn),即被調(diào)查者點(diǎn)擊了某個(gè)選項(xiàng)后自動(dòng)跳轉(zhuǎn)到與該選項(xiàng)匹配的后續(xù)題目上。二、J2EE簡(jiǎn)介概述隨著Internet計(jì)算的迅速發(fā)展,作為一門新興的語言,Java以其完全面向?qū)ο蟮脑O(shè)計(jì)風(fēng)格和良好的平臺(tái)無關(guān)性,已經(jīng)超越了語言本身的功能,成為了開發(fā)Web應(yīng)用的理想平臺(tái)。Java平臺(tái)包括了一種用于實(shí)現(xiàn)Java對(duì)象的語言和這些Java對(duì)象的運(yùn)行環(huán)境——Java虛擬機(jī)JVM(JavaVirtualMachine)。Java語言的主要特點(diǎn)是平臺(tái)無關(guān)性:在一個(gè)操作系統(tǒng)下開發(fā)的Java對(duì)象可以不做修改的運(yùn)行在另外一個(gè)操作系統(tǒng)的JVM封裝了各種底層操作系統(tǒng)在體系結(jié)構(gòu)和語義上的差異,在此基礎(chǔ)上為Java對(duì)象提供了一個(gè)統(tǒng)一的運(yùn)行環(huán)境。Java對(duì)象的源代碼被編譯為平臺(tái)無關(guān)的中性代碼——字節(jié)碼。在運(yùn)行時(shí)刻,字節(jié)碼由JVM進(jìn)行解釋,被映射為真正的相關(guān)的操作系統(tǒng)調(diào)用而得以執(zhí)行功能。因此,只要是100%純Java語言實(shí)現(xiàn)的對(duì)象可以被各種具有相應(yīng)JVM的操作系統(tǒng)所支持。Sun公司的J2EE構(gòu)架是在1997年的JavaOne大會(huì)上宣布的,J2EE定義了開發(fā)和運(yùn)行企業(yè)級(jí)Web應(yīng)用的標(biāo)準(zhǔn)。它是一組規(guī)范,旨在為支持Java語言服務(wù)器端部署而提供平臺(tái)無關(guān)的、可移植的、多用戶的、安全的和標(biāo)準(zhǔn)的企業(yè)級(jí)平臺(tái)。伴隨J2EE的出現(xiàn),Java語言的功能和工具得到了極大的擴(kuò)充、豐富和發(fā)展,可以用于復(fù)雜的、多層次的以及分布式的電子商務(wù)和企業(yè)開發(fā)工具和服務(wù),以便開發(fā)模塊化的、可重用的和平臺(tái)獨(dú)立的各種組件技術(shù)的業(yè)務(wù)邏輯。的優(yōu)勢(shì)J2EE機(jī)制,它具有以下突出的優(yōu)點(diǎn):1、事實(shí)的標(biāo)準(zhǔn):J2EE是由SUN引導(dǎo),各廠商共同發(fā)起的,并得到廣泛認(rèn)可的工業(yè)標(biāo)準(zhǔn),業(yè)內(nèi)的大企業(yè)(如IBM,BEA,ORACLE等)都積極參與,很多應(yīng)用軟件開發(fā)商也把自己的產(chǎn)品轉(zhuǎn)移到J2EE平臺(tái)上來,使之成為事實(shí)的工業(yè)標(biāo)準(zhǔn)。因此,J2EE擁有良好的市場(chǎng)和旺盛的生命力。2、可保存現(xiàn)有的IT資產(chǎn):使用J2EE能夠充分利用客戶原有的投資,保留已有的信息資源;同時(shí),由于基于J2EE平臺(tái)的產(chǎn)品幾乎在任何操作系統(tǒng)和硬件配置上都可以運(yùn)行,現(xiàn)有的操作系統(tǒng)和硬件也能夠被保留使用。3、高效的開發(fā):J2EE允許公司把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中間件供應(yīng)商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建業(yè)務(wù)邏輯上,相應(yīng)地縮短了開發(fā)時(shí)間。4、支持異構(gòu)環(huán)境:J2EE能夠開發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;贘2EE的程序不依賴于任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計(jì)合理的基于J2EE的應(yīng)用程序只需開發(fā)一次就可被部署到各種平臺(tái)。這在典型的異構(gòu)企業(yè)計(jì)算環(huán)境中是十分重要的。J2EE標(biāo)準(zhǔn)也允許客戶定購與J2EE兼容的第三方的現(xiàn)成的組件,把它們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制定整個(gè)方案所需的費(fèi)用。5、可伸縮性:企業(yè)必須選擇一種服務(wù)器端平臺(tái),這種平臺(tái)應(yīng)能提供極J2EEUNIX和大型機(jī)系統(tǒng),這種系統(tǒng)單機(jī)可支持64至256NT服務(wù)器系統(tǒng)中的瓶頸,允許多臺(tái)服務(wù)器集成部署。這種部署可達(dá)數(shù)千個(gè)處理器,實(shí)現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。6、穩(wěn)定的可用性:一個(gè)服務(wù)器端平臺(tái)必須能夠全天候運(yùn)轉(zhuǎn)以滿足公司客戶和合作伙伴的需要。因?yàn)镮nternet是全球化的、無處不在的,即使在夜間按計(jì)劃停機(jī)也可能造成嚴(yán)重?fù)p失。意外停機(jī)有可能造成災(zāi)難性后果。可以把J2EE系統(tǒng)可達(dá)到99.999%的可用性或每年只需5強(qiáng)商業(yè)系統(tǒng)理想的選擇。三、系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)使用設(shè)計(jì)模式進(jìn)行系統(tǒng)設(shè)計(jì)軟件模式是軟件開發(fā)期間對(duì)重復(fù)問題的可復(fù)用解決方案,是經(jīng)驗(yàn)的總結(jié)。掌握這些設(shè)計(jì)模式后,當(dāng)遇到類似的問題時(shí),就可以快速利用已有的解決方案分析問題,然后采取適當(dāng)?shù)牟呗裕瑥亩行Эs短軟件開發(fā)周期并提高軟件質(zhì)量。因此,使用設(shè)計(jì)模式是進(jìn)行軟件設(shè)計(jì)開發(fā)的有效途徑。在企業(yè)級(jí)應(yīng)用開發(fā)中,通過使用設(shè)計(jì)模式,可以大大提高應(yīng)用程序的性能和增加軟件的復(fù)用性。因此,在本項(xiàng)目中,我們采用經(jīng)過實(shí)踐檢驗(yàn)的、成熟的面向?qū)ο蟮脑O(shè)計(jì)模式來對(duì)我們的應(yīng)用系統(tǒng)進(jìn)行建模,以期達(dá)到服務(wù)質(zhì)量(QoS)較好(可擴(kuò)展性強(qiáng)、性能優(yōu)良、安全可靠,有一定的靈活性)的目的,并在此基礎(chǔ)上實(shí)現(xiàn)整個(gè)系統(tǒng)。系統(tǒng)總體設(shè)計(jì)1、MVC模式模型-視圖-控制器(MVC)是XeroxPARC在八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,至今已被廣泛使用。最近幾年被推薦為Sun公司J2EE結(jié)構(gòu)提供了一種按功能對(duì)各種對(duì)象進(jìn)行分割的方法,它強(qiáng)制性地使應(yīng)用程序的輸入、處理和輸出分開,所以MVC的應(yīng)用程序被分成三個(gè)核心構(gòu)件:模型、視圖、控制器。2、系統(tǒng)總體結(jié)構(gòu)本系統(tǒng)采用MVC的設(shè)計(jì)模式,用戶輸入輸出界面均為JSP頁面,即展示CONTROL)的一個(gè)SERVLETJAVABEAN對(duì)請(qǐng)求進(jìn)行實(shí)際處理,并把結(jié)果返回給控制層,控制層根據(jù)請(qǐng)求的執(zhí)行結(jié)果將響應(yīng)(RESPONSE)派發(fā)到相應(yīng)的JSP頁面。例如,一個(gè)數(shù)據(jù)提交(操作請(qǐng)求)的標(biāo)準(zhǔn)流程:在問卷管理模塊中的添求被派發(fā)到一個(gè)名為SurveyManage的servletservlet中,調(diào)用了持久層的名為SurveyDAO的javabean的addSurvey方法對(duì)數(shù)據(jù)進(jìn)行持久化,然后把處理結(jié)果返回給SurveyMange這個(gè)控制器,控制器根據(jù)返回的結(jié)果決定將相應(yīng)的頁面展現(xiàn)給客戶端瀏覽器。又如,一個(gè)數(shù)據(jù)查詢(數(shù)據(jù)請(qǐng)求)的標(biāo)準(zhǔn)流程:在問卷設(shè)計(jì)頁面中(SurveyAdmin.jsp用戶打開頁面后,頁面即調(diào)用SurveyDAO的listAllSurvey方法查詢出所有問卷信息返回給頁面,即頁面進(jìn)行數(shù)據(jù)查詢時(shí)不再經(jīng)過CONTROLLER層。如圖3-2-1:圖3-2-11、數(shù)據(jù)庫設(shè)計(jì)3-3-1。值得一提的是,為了保證每個(gè)題目可以有不限量個(gè)選項(xiàng),在question表中,我把q_body字段用來保存該題目所以的選項(xiàng)信息,每個(gè)選項(xiàng)用&$$&這個(gè)特殊字符串隔開,同樣的,在q_result中保存的調(diào)查結(jié)果信息用逗號(hào)隔開,在q_jdtz中保存的截?cái)嗵D(zhuǎn)信息用&隔開。圖3-3-1問卷表(SURVEY)Templet_idNumeric模板ID,預(yù)留字段,暫未使問卷名稱)問卷描述發(fā)起人))Varchar(100Yes0)S_ipRepeatBit(1)Yes是否允許同一IP多次提交S_createdateDatetimeYes創(chuàng)建時(shí)間S_ipLimitTypVarchar(100YesIP限制類型,預(yù)留字段未使e)用S_ipRangeVarchar(200YesIP0)名單黑名單)S_isOpenBit(1)Yes是否開放,即是否顯示在首頁NumericYes點(diǎn)擊訪問次數(shù),未使用S_usehitsNumericYes答卷張數(shù)題目表(question)Numeric(18)No問卷ID,survey表外鍵Q_typeNumber(18)No題目類型:1—單選題,2—多選題,3—單選題加框,5—問答題0)0)用戶提交的選擇,格式如下:表示選擇A選項(xiàng)被選擇了2次,B選項(xiàng)被選擇了3選項(xiàng)被選擇了5次,D選項(xiàng)被選擇了2次,即此某選項(xiàng)被選擇了一次之RESULT值加一。題目的圖片,預(yù)留字段。0)截?cái)嗵D(zhuǎn):格式如下:null&69&over&90即用戶點(diǎn)擊A選項(xiàng)后,跳轉(zhuǎn)到默認(rèn)的題目,即下一題,點(diǎn)擊B跳轉(zhuǎn)到69號(hào)題,點(diǎn)擊C終止問卷,點(diǎn)擊D跳轉(zhuǎn)到90號(hào)題題目順序號(hào),保留字段答卷表(answersheet)問卷ID,survey表外鍵答卷內(nèi)容格式如下:18:as=1,4;text=醬油&@@&19:as=1;即每個(gè)題目用戶&@@&分隔;題目?jī)?nèi)部以題號(hào)開頭+冒號(hào)+[用戶選擇的項(xiàng)]+分號(hào)+[用戶輸入文本]提交日期as_postdatdatetimeeyesas_userIPvarchar(50)yes2、持久層框架設(shè)計(jì)用戶IP持久性框架是一組軟件服務(wù),將應(yīng)用程序同其使用和操縱的數(shù)據(jù)源分JDBC、實(shí)體EJB{survey);//添加問卷survey);//更新問卷surveyId);//刪除問卷}——————————SurveyDAO.javaend——————————VO(值對(duì)象)模式:使用值對(duì)象能夠減少使用實(shí)體bean時(shí)需要的遠(yuǎn)程調(diào)用的次數(shù)。我們使用值對(duì)象來封裝業(yè)務(wù)數(shù)據(jù),用相應(yīng)的方法調(diào)用來設(shè)置和檢索值對(duì)象。當(dāng)客戶端向?qū)嶓wbean請(qǐng)求業(yè)務(wù)數(shù)據(jù)時(shí),該實(shí)體bean可以構(gòu)造值對(duì)象,用屬性值來填充,并且將值對(duì)象傳送給客戶端。同樣道理,客戶端向?qū)嶓wbean提交數(shù)據(jù)時(shí),也采用值對(duì)象這一辦法?!猀uestion.javabegin————————{{//取得問題ID}{//設(shè)置問題ID=}{//獲取問卷ID}}———————————Question.javaend————————系統(tǒng)中所以的數(shù)據(jù)庫實(shí)體,都被封裝成了這樣的VO。例如,頁面上要數(shù)據(jù)庫中添加一個(gè)問卷,那么首先頁面把數(shù)據(jù)發(fā)送到控制層的SERVLET,在該SERVLET中通過頁面?zhèn)鬟^來的參數(shù)構(gòu)造一個(gè)VO,然后把這個(gè)VO傳遞給DAO對(duì)象,DAO對(duì)象最后完成對(duì)數(shù)據(jù)庫的控制操作。簡(jiǎn)單工廠模式:同的父類。它又稱為靜態(tài)工廠方法模式,屬于類的創(chuàng)建型模式。簡(jiǎn)單工廠模(這些產(chǎn)品類繼承自一個(gè)父類或接口)的實(shí)例?!狣AOFactory.javabegin—————————{}SurveyDAOimpl();//返回問卷DAO}QuestionDAOimpl();//返回問題DAO}}————————————DAOFactory.javaend—————————本工廠類使用了多方法工廠,隔離上層與數(shù)據(jù)庫底層,使上層方法不用關(guān)心底層采用何種數(shù)據(jù)庫實(shí)現(xiàn),系統(tǒng)如果要遷移到其他數(shù)據(jù)庫上,也只需實(shí)現(xiàn)相應(yīng)的DAO接口,然后在DAOFactroy類中修改返回的實(shí)現(xiàn)類即可。業(yè)務(wù)邏輯層的設(shè)計(jì)與實(shí)現(xiàn)MVC控制層,在控制層中直接調(diào)用DAO處理對(duì)象持久化操作?!猄urveyManage.javabegin————————…{{//獲取DAOSurvey();//構(gòu)造VOsurvey.setSName(request.getParameter(“Survey_name”));//給VOsurvey.setSAuthor(request.getParameter(“Survey_author”));…ret=surveydao.addSurvey(survey);//調(diào)用DAOresponse.sendRedirect(“../admin/OpResult.jspop=SurveyAdd&ret=true}}————————————SurveyManage.javaend————————前端WEB層設(shè)計(jì)與實(shí)現(xiàn)WEB前端層的設(shè)計(jì)和實(shí)現(xiàn)中,充分利用的JAVASCRIPT的強(qiáng)大控制功能,并且在某些頁面上采用了DIV+CSS組合設(shè)計(jì)方法。在系統(tǒng)后臺(tái),頁面采用框架布局,頁面上面顯示BANNER等信息,左邊顯示菜單,中間顯示操作頁面。的設(shè)計(jì),這也是后臺(tái)的核心部分。一個(gè)正常的業(yè)務(wù)流程是這樣的:據(jù),提交即可生成一份問卷,但是這個(gè)時(shí)候,問卷僅僅是一份空白問卷,我們還需要進(jìn)行第二步。如圖3-5-1:圖3-5-1系統(tǒng)后臺(tái)-添加問卷頁面統(tǒng)中的所以問卷,用戶找到相應(yīng)的問卷后,點(diǎn)擊管理題目,進(jìn)入管理題目的界面,用戶在這里可以對(duì)添加刪除題目,并且可以對(duì)題目進(jìn)行設(shè)置截?cái)嗪吞D(zhuǎn)操作。如圖3-5-2,3-5-3:圖3-5-2系統(tǒng)后臺(tái)-問卷設(shè)計(jì)頁面圖3-5-3系統(tǒng)后臺(tái)-題目管理頁面作會(huì)凍結(jié)該問卷,也就是說用戶在審核問卷之后就不能再對(duì)其進(jìn)行更改了,這樣設(shè)計(jì)是為了保證問卷調(diào)查數(shù)據(jù)的準(zhǔn)確性和系統(tǒng)的穩(wěn)定性。但是,也存在也就是反審核操作,這會(huì)使問卷返回到可以編輯的狀態(tài),但是在執(zhí)行這個(gè)操作的時(shí)候,如果有用戶已經(jīng)希望系統(tǒng)提交了答卷,就會(huì)使系統(tǒng)產(chǎn)生臟數(shù)據(jù),修改之前的問卷結(jié)構(gòu)生成的,如果問卷結(jié)構(gòu)發(fā)生變化,那么系統(tǒng)將無法根據(jù)強(qiáng)烈建議用戶在執(zhí)行反審核之后立刻到問卷統(tǒng)計(jì)模塊中執(zhí)行答卷結(jié)果清零操作,以保證系統(tǒng)數(shù)據(jù)的正確性。如圖3-5-4:圖3-5-4系統(tǒng)后臺(tái)-問卷審核頁面結(jié)果,統(tǒng)計(jì)結(jié)果分為兩部分,一部分是所有答卷的匯總統(tǒng)計(jì),另一部分是每個(gè)用戶的答卷。用戶可以根據(jù)自己的需要使用這些數(shù)據(jù)信息。如圖3-5-5:圖3-5-5答卷統(tǒng)計(jì)前臺(tái)界面采用簡(jiǎn)潔大方的設(shè)計(jì)風(fēng)格,首頁羅列出了最新問卷和熱門問卷。如圖3-5-6:圖3-5-6系統(tǒng)前臺(tái)-首頁圖3-5-7系統(tǒng)前臺(tái)-問卷頁面問卷調(diào)查頁面的設(shè)計(jì)采用AJAX技術(shù)來實(shí)現(xiàn)本系統(tǒng)最大的特色功能——?jiǎng)討B(tài)跳轉(zhuǎn),當(dāng)用戶點(diǎn)擊某一題目某一選項(xiàng)時(shí),系統(tǒng)會(huì)根據(jù)設(shè)置跳轉(zhuǎn)到與當(dāng)前選項(xiàng)相關(guān)的題目上,而這一切,用戶感覺到只是網(wǎng)頁中局部一小塊刷新了,具有很好的用戶體驗(yàn)。四、重難點(diǎn)問題解決方案研究如何實(shí)現(xiàn)用戶答卷時(shí)題目動(dòng)態(tài)截?cái)嗪吞D(zhuǎn)例如:有一張關(guān)于九九鴨脖消費(fèi)的調(diào)查問卷:圖4-1-1示用戶問卷結(jié)束。第二題,當(dāng)用戶選擇前4示問卷結(jié)束。選擇其他選項(xiàng)則跳過廣告媒體的題目。解決方案:首先,我們將SurveyShow.jsp這個(gè)頁面作為容器頁面,即這個(gè)頁面顯示問卷本身的一些描述信息,如問卷標(biāo)題,問卷描述等,在這個(gè)頁面中間,我們嵌入一個(gè)區(qū)域(DIV)名叫question_list,這個(gè)DIV用來裝載從ajax_SurveyShow.jsp實(shí)時(shí)獲取的題目信息。其次,ajax_SurveyShow.jsp需要SurveyShow.jsp傳遞兩個(gè)參數(shù),一個(gè)是問卷編號(hào)(sid),另一個(gè)是跳往題目編號(hào)(首先根據(jù)sid查找出所有的題目,然后過濾掉編號(hào)小于to的題目,接著判斷to直到發(fā)現(xiàn)單選題才停止。單選題與其他類型題目的構(gòu)成是不同的,其他類型題目的結(jié)構(gòu)是這樣的:<li>題干</li><ul><li><inputtype=checkbox>選項(xiàng)A</li><li><inputtype=checkbox>選項(xiàng)B</li><li><inputtype=checkbox>選項(xiàng)C</li><li><inputtype=checkbox>選項(xiàng)D</li></ul>而單選題在這個(gè)結(jié)構(gòu)的基礎(chǔ)上增加了一個(gè)<li>題干</li><ul><li><inputtype=radioonclick=jump(qboxN,to)>選項(xiàng)A</li><li><inputtype=radioonclick=jump(qboxN,to)>選項(xiàng)B</li><li><inputtype=radioonclick=jump(qboxN,to)>選項(xiàng)C</li><li><inputtype=radioonclick=EndSurvey(qid)>選項(xiàng)D</li></ul><divid=qbox+本題編號(hào)>那么這個(gè)qbox就用來裝載他的后續(xù)題目,也就是說,當(dāng)用戶點(diǎn)擊某選項(xiàng)的時(shí)候,根據(jù)參數(shù)to的值判斷后續(xù)題目,然后用后續(xù)題目來填充qbox,值得一提的是,如果他的后續(xù)題目是單選題,那么qbox就只裝后續(xù)題目這不是單選題,則這個(gè)qbox就不斷查詢加載下一題目,直到發(fā)現(xiàn)單選題,這樣這個(gè)qbox就會(huì)裝載很多題目,而最后一題肯定是單選題(除非問卷結(jié)束qboxDIV,而對(duì)這個(gè)題目進(jìn)行選擇時(shí),又會(huì)觸發(fā)對(duì)qbox的填充。如圖4-1-2。url=將id為result的HTMLTAG中objqbox://HTTP請(qǐng)求的方法,get://請(qǐng)求參數(shù)}————————————jumpend——————————————實(shí)現(xiàn)截?cái)嗟腏S代碼:————————————EndSurveybgin————————————ret=window.confirm("選擇此項(xiàng)意味著問卷終止,確定提交問卷嗎?");}————————————EndSurveyend————————————如何實(shí)現(xiàn)存取單張答卷需求描述:很多情況下,問卷發(fā)起人需要知道每個(gè)被調(diào)查人的單張答卷信息,以進(jìn)一步了解答卷人的想法。因此需要系統(tǒng)能夠提供一個(gè)記錄和提取答卷人單張答卷的功能,也就是說,問卷發(fā)起人可以查看到任何一個(gè)被調(diào)查人的答卷信息,并且,因?yàn)橄到y(tǒng)有截?cái)嗵D(zhuǎn)功能,需要考慮每張答卷結(jié)構(gòu)很可能不一樣的情況,如圖4-1-3,4-1-4:圖4-1-3某用戶答卷圖4-1-4某用戶答卷解決方案:首先,在用戶提交問卷的時(shí)候,系統(tǒng)把該答卷存入ANSWERSHEET表,該表主要有4個(gè)字段,as_id,s_id,as_result,as_userIP。As_id就是答卷的編號(hào),s_id是問卷的編號(hào),as_userIP是用戶的IP地址,而as_result是按一定結(jié)構(gòu)組織成的用戶的答卷信息。該結(jié)構(gòu)形式如下:18:as=1,4;text=醬油&@@&19:as=1;(多個(gè)項(xiàng)用逗號(hào)分隔)+分號(hào)]+[text=用戶輸入文本]。其次,當(dāng)用戶打開答卷頁面時(shí),頁面解析從數(shù)據(jù)庫傳過來的as_resultqid構(gòu)造成一個(gè)ArrayList,根據(jù)個(gè)List,查找question表,迭代出該答卷所有的題目信息。然后,在頁面底部,用JAVASCRIPT給題目賦上用戶選擇或輸入的值。五、通用框架設(shè)計(jì)(一)、用于獲取數(shù)據(jù)庫連接的實(shí)用工具首先,在TOMCAT的CONTEXT.XML里配置如下代碼:————————————context.xmlbegin————————————//數(shù)據(jù)庫相關(guān)配置————————————context.xmlend————————————接著在WEB-INF/WEB.XML里配置如下代碼:————————————web.xmlbegin————————————{}{//尋找JNDI}{}}{===JNDI名稱獲取數(shù)據(jù)庫連接,如}{}{}}}———————————web.xmlend———————————————總體思路就是通過web.xml獲取JNDIJNDI名稱去查找TOMCAT初始上下文中的JNDI配置中數(shù)據(jù)源,獲取這個(gè)數(shù)據(jù)源,創(chuàng)建數(shù)據(jù)庫連接。(二)、用于快速執(zhí)行SQL的工具SQLCommand為了簡(jiǎn)化開發(fā)的復(fù)雜度,我把執(zhí)行SQL的語句進(jìn)行了封裝,打包成一個(gè)SQLCommand類(圖5-2-1),使用這個(gè)類操作數(shù)據(jù)庫,不用再關(guān)心數(shù)據(jù)庫連接的獲取和釋放,只需提供要執(zhí)行的SQL即可。但是,考慮到模塊耦合的問題,我并不會(huì)在頁面中或業(yè)務(wù)邏輯層中使用本工具,本項(xiàng)目主要在DAO的實(shí)現(xiàn)類中使用本工具。其他項(xiàng)目如果使用此類,可不必受此約束。圖5-2-1executeSQLs(String[]sqls)方法:執(zhí)行一組SQL;executeSQL(Stringsql)方法:執(zhí)行一條SQL;queryRowSet(Stringsql)方法:執(zhí)行一條SQL,返回一個(gè)RowSet類型的結(jié)果集,這個(gè)結(jié)果集是無連接的,保存在內(nèi)存中;queryScalar(Stringsql)方法:獲取結(jié)果集中第一行第一列的值,返回類型為String,常用于帶聚合函數(shù)的SQL。代碼片段:————————————SQLCommandbegin——————{{}{}}}——————————SQLCommandend———————————結(jié)束語J2EE是開發(fā)分布式企業(yè)級(jí)應(yīng)用程序的中間件平臺(tái)。J2EE技術(shù)很好地解際領(lǐng)先廠商所支持,擁有眾多的支撐與應(yīng)用資源,發(fā)展越來越成熟,因此在可以預(yù)見的將來具有很好的應(yīng)用前景。通過使用J2EE開發(fā)平臺(tái),大大簡(jiǎn)化了應(yīng)用程序的編程代碼量,部分地免去了編程的復(fù)雜性,提高了軟件的生產(chǎn)效率和可維護(hù)性。因此,通過使用J2EE架構(gòu),我們可以快速地開發(fā)出高質(zhì)量的企業(yè)級(jí)應(yīng)用軟件。在J2EE架構(gòu)上進(jìn)行的軟件開發(fā),雖然是面向組件的,但究其根本還是屬于面向?qū)ο蟮某绦蛟O(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石坎施工方案
- 培訓(xùn)機(jī)構(gòu)消防施工方案
- 關(guān)于施工方案
- 美麗人生觀后感
- 二零二五年度私人房產(chǎn)全款買賣合同(限智能家居)
- 甲乙丙方2025年度轉(zhuǎn)租健身房租賃合同
- 2025年度電力工程安全防護(hù)電力勞務(wù)分包合同模板
- 二零二五年度生物樣本低溫保管與共享協(xié)議
- 工傷事故賠償及職工權(quán)益保護(hù)協(xié)議2025年度范本
- 二零二五年度科技孵化器場(chǎng)地租賃管理服務(wù)合同
- 廉政鑒定書(院內(nèi)廉政意見書)
- 《潘姓源于固始,是不爭(zhēng)的史實(shí)》的考辨
- 二次電纜敷設(shè)、接線作業(yè)指導(dǎo)書
- 焊接技師培訓(xùn)教材(釬焊)課件
- 《等腰三角形的性質(zhì)》優(yōu)秀課件
- 原發(fā)性肝癌經(jīng)皮肝動(dòng)脈化療栓塞術(shù)(TACE)臨床路徑
- 異常情況匯報(bào)流程圖
- 化工工藝學(xué)-第二章-化工原料及其初步加工
- 全國(guó)水資源綜合規(guī)劃技術(shù)細(xì)則(水利部文件)
- 02312電力系統(tǒng)遠(yuǎn)動(dòng)及調(diào)度自動(dòng)化
- 校園欺凌談心記錄
評(píng)論
0/150
提交評(píng)論