版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGE10都市供求信息網(wǎng)摘要在全球知識經(jīng)濟和信息化高速發(fā)展的今天,無論是在生活、工作還是在學(xué)習(xí)方面,信息都是決定成敗的關(guān)鍵。小到生活中的需求,大到企業(yè)的發(fā)展,特別是對企業(yè)實現(xiàn)跨地區(qū)、跨行業(yè)、跨國經(jīng)營,信息都起著至關(guān)重要的作用。而信息時代的代表便是網(wǎng)絡(luò)技術(shù)的日漸成熟,現(xiàn)在網(wǎng)絡(luò)已經(jīng)和我們緊密的聯(lián)系起來了,我們不敢想象沒有網(wǎng)絡(luò),我們的生活會變成什么樣,也許就像食物中沒有調(diào)料一樣,我們的生活離開了網(wǎng)絡(luò)會變得索然無味。通過網(wǎng)絡(luò)我們可以足不出戶的做許多事情。休閑,娛樂,學(xué)習(xí),購物,求職等等許多我們數(shù)之不盡的事情。隨著信息化的不斷進步,在各都市供求業(yè)務(wù)來往頻繁的今天,一種新的供求信息模式已然出現(xiàn),那就是都市供求信息網(wǎng)。都市供求信息網(wǎng)的好處:節(jié)省了傳統(tǒng)供求形式的成本,就算是庫房也可以在比較便宜的位置,不用像傳統(tǒng)供求形式那樣繁瑣;現(xiàn)在很多培訓(xùn)、房屋租賃機構(gòu)、招聘單位也比較重視網(wǎng)上渠道;政府的招商引資和個人的交友、尋人尋物也普遍利用了網(wǎng)絡(luò)的深遠影響力。因此都市供求信息網(wǎng)無論從社會角度,還是從民生角度而言都具有很大的好處。鑒于以上情況,本設(shè)計一改常規(guī)商業(yè)網(wǎng)站平臺信息呆滯、互動性差、缺乏靈活性、內(nèi)容生硬等一系列弊端,充分發(fā)揮了其商品高流通性、都市強互動性、內(nèi)容版塊豐富、信息涵蓋面廣的優(yōu)點。加上站內(nèi)兩種搜索模式,使得它在未來IT市場上必然會有一席之地。在寫作過程中,通過考察北京市具體情況進行論述,體現(xiàn)理論聯(lián)系實際,理論應(yīng)用于實踐的科學(xué)性。關(guān)鍵詞:供求信息;互動性;信息涵蓋面廣。石家莊職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文目錄石家莊職業(yè)技術(shù)學(xué)院設(shè)計論文目錄1目錄第一章概述 11.1網(wǎng)站功能概述 11.2系統(tǒng)的運行環(huán)境 11.3開發(fā)工具 1第二章系統(tǒng)的數(shù)據(jù)庫設(shè)計 22.1數(shù)據(jù)庫E-R圖 22.1.1供求信息實體E-R圖 22.1.2信息類別實體E-R圖 22.1.3管理員實體E-R圖 3第三章前臺頁面設(shè)計 43.1前臺頁面概述 43.1.1信息顯示概述 43.1.2信息顯示技術(shù)分析 63.2前臺頁面設(shè)計 73.2.1列表顯示信息的實現(xiàn)過程 73.2.2顯示信息詳細內(nèi)容的實現(xiàn)過程 8第四章后臺設(shè)計 114.1后臺登錄功能概述 114.2后臺頁面設(shè)計 124.3后臺登錄的實現(xiàn)過程 134.3.1信息管理技術(shù)分析 144.3.2信息顯示的實現(xiàn)過程 154.3.3信息審核的實現(xiàn)過程 174.3.4信息付費設(shè)置的實現(xiàn)過程 18第五章開發(fā)技巧與難點 20第六章結(jié)論 21參考文獻 22致謝 23石家莊職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文第一章概述PAGE5天津大學(xué)碩士學(xué)位論文第一章緒論第一章概述1.1網(wǎng)站功能概述本網(wǎng)站要求具有以下功能:本網(wǎng)站操作流程簡單,頁面干凈、整潔。本網(wǎng)站導(dǎo)航信息分類多,覆蓋信息范圍廣。支持多人同時訪問本網(wǎng)站,只有管理員身份才能進入后臺進行信息審核。支持多條件的快捷查詢和模糊查詢功能。支持用戶發(fā)布所選擇種類的信息。支持管理員刪除相應(yīng)的信息。支持管理員把查找到的信息設(shè)為已付費狀態(tài)。1.2系統(tǒng)的運行環(huán)境本項目所用的運行環(huán)境如表1-1所示表1-1運行環(huán)境表類別配置軟件Sqlserver2005、jdk1.6操作系統(tǒng)Windowsxp以上版本內(nèi)存和硬盤大小256M以上、1G以上其它USB2.0 1.3開發(fā)工具本項目所用的開發(fā)工具如表1-2所示。表1-2開發(fā)工具表開發(fā)語言JAVA開發(fā)環(huán)境Windows7/xp+MyEclipse+sqlserver+tomcat+jdk1.6開發(fā)工具MyEclipse+tomcat石家莊職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文第二章系統(tǒng)的數(shù)據(jù)庫設(shè)計第二章系統(tǒng)的數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫的設(shè)計在程序開發(fā)中起著至關(guān)重要的作用,它往往決定了在后面的開發(fā)中如何進行程序編碼。一個合理、有效的數(shù)據(jù)庫設(shè)計可降低程序的復(fù)雜性,使程序開發(fā)的過程更為容易。2.1數(shù)據(jù)庫E-R圖2.1.1供求信息實體E-R圖供求信息實體包括信息編號、所屬類型、信息內(nèi)容、信息標題、聯(lián)系人、聯(lián)系電話、發(fā)布時間、E-mail、付費狀態(tài)和審核狀態(tài)10個屬性。其中審核和付費狀態(tài)屬性分別用來標識信息是否審核與是否付費,用1表示“是”,用0表示“否”。供求信息實體的E-R圖如圖2-1所示。圖2-1供求信息實體E-R圖2.1.2信息類別實體E-R圖信息類別實體包括類別編號、類別名稱、類別標識和類別介紹4個屬性。信息類別實體的E-R圖如圖2-2所示。圖2-2信息類別實體E-R圖2.1.3管理員實體E-R圖管理員實體包括編號、密碼和用戶名3個屬性。管理員實體的E-R圖如圖2-3所示。圖2-3管理員實體E-R圖第三章前臺頁面設(shè)計第三章前臺頁面設(shè)計3.1前臺頁面概述頁面是用戶與程序進行交互的接口,用戶可從頁面中查看程序顯示給用戶的信息,程序可從頁面中獲取用戶輸入的數(shù)據(jù),所以在進行頁面的設(shè)計時,不僅要從程序開發(fā)的角度分析,還要考慮到頁面的美觀及布局。本系統(tǒng)的前臺頁面就充分考慮到了這些內(nèi)容,因此,本系統(tǒng)中所有的前臺頁面都采用一種頁面框架。該頁面框架采用二分欄結(jié)構(gòu),分為4個區(qū)域,即頁頭、側(cè)欄、頁尾和內(nèi)容顯示區(qū)。都市供求信息網(wǎng)的前臺首頁運行效果如圖3-1所示。圖3-1前臺首頁運行效果3.1.1信息顯示概述信息顯示是本系統(tǒng)要實現(xiàn)的主要功能之一,根據(jù)需求分析與系統(tǒng)設(shè)計,在前臺要實現(xiàn)3種顯示方式——首頁面的信息列表顯示、某類別中所有信息的列表顯示和某信息詳細內(nèi)容的顯示。下面分別對這3種方式進行介紹。(1)首頁信息的列表顯示該顯示實現(xiàn)的效果是:以超鏈接方式顯示信息的標題,單擊這些超鏈接可查看該信息的詳細內(nèi)容。該顯示方式將付費信息與免費信息進行分類顯示。對于所有類別的付費信息按照信息的發(fā)布時間降序排列顯示,如圖3-2所示;對于免費信息,進行歸類顯示,并且每一類中按照信息的發(fā)布時間降序排列顯示前5條記錄,如圖3-3所示。圖3-2首頁中列表顯示付費信息圖3-3某類別中所有信息的列表顯示效果(2)某類別中所有信息的列表顯示該顯示實現(xiàn)的效果是:顯示出該類別中所有信息的詳細內(nèi)容。該顯示方式同樣將付費信息與免費信息進行分類顯示,并且對所有已通過審核的付費信息與所有已通過審核的免費信息都按照信息的發(fā)布時間降序排列顯示。當用戶單擊導(dǎo)航欄中的超鏈接后,就會通過該方式顯示信息。(3)某信息詳細內(nèi)容的顯示該顯示方式實現(xiàn)的效果是:顯示選擇的某信息的詳細內(nèi)容。當用戶單擊信息標題超鏈接后,就會顯示該信息的詳細內(nèi)容,如圖3-4所示。圖3-4某信息詳細內(nèi)容的顯示效果3.1.2信息顯示技術(shù)分析首頁的信息顯示又分為付費信息的顯示與免費信息的顯示,下面分別介紹。實現(xiàn)付費信息顯示的技術(shù)分析:[14]該技術(shù)要實現(xiàn)的是以超鏈接形式顯示數(shù)據(jù)庫中所有已付費信息的標題。要實現(xiàn)這樣一個目的,可先按照用戶訪問、程序處理、頁面顯示這樣的程序流程進行反向分析(1)先來考慮如何在JSP頁面中輸出信息。可設(shè)想將要顯示的已付費信息都存在一個List集合對象中,則在頁面中可通過Struts2.0的iterator標簽遍歷這個集合,然后再使用property標簽輸出信息,實現(xiàn)信息的列表顯示。(2)接下來考慮如何在程序中生成這樣的List集合對象。因為信息都以記錄形式保存在數(shù)據(jù)庫中,要在頁面中顯示信息,就必須先查詢數(shù)據(jù)庫獲取符合已付費條件的記錄,然后依次將每條記錄封裝到對應(yīng)的JavaBean中,最后創(chuàng)建一個List集合對象存儲這些JavaBean。這個過程實際上就是將信息從以記錄存儲的形式轉(zhuǎn)換為通過JavaBean進行封裝的過程,如圖3-5所示。圖3-5轉(zhuǎn)換信息存儲方式所以整個SQL語句表示:在tb_table表中,以id字段的內(nèi)容大于一個指定值的記錄為起點,查詢出前m條記錄,該指定值為前n-1頁中id字段內(nèi)容中的最大值。注意:查詢第一頁中的記錄,應(yīng)使用selecttopm*fromtb_table語句。本系統(tǒng)是按照信息的發(fā)布時間來顯示信息的,最新發(fā)布的信息顯示在最頂部,所以對查詢出的記錄要按照發(fā)布時間進行降序排列。此時分頁查詢的SQL語句應(yīng)使用信息的發(fā)布時間來作為分頁的條件,而不能再使用設(shè)為自動編號的字段了。3.2前臺頁面設(shè)計3.2.1列表顯示信息的實現(xiàn)過程列表顯示信息用到的數(shù)據(jù)表:tb_info和tb_type。本節(jié)將分別介紹首頁信息的列表顯示的實現(xiàn)過程和列表顯示某類別中所有信息的實現(xiàn)過程。首頁信息的列表顯示實現(xiàn)過程首頁信息的列表顯示,分為付費信息和免費信息的列表顯示,下面先來介紹列表顯示付費信息的實現(xiàn)過程。列表顯示付費信息的實現(xiàn)過程:創(chuàng)建JavaBean:InfoSingle。根據(jù)前面的技術(shù)分析,需要將從信息表中查詢出的已通過審核的付費信息封裝到JavaBean中,然后保存到List集合對象中。所以先來創(chuàng)建這個JavaBean,該JavaBean中的每個屬性要對應(yīng)表中的字段[14]。代碼如下:packagecom.yxq.model;publicclassInfoSingle{privateintid; //信息IDprivateintinfoType; //信息類型privateStringinfoTitle; //信息標題privateStringinfoContent; //信息內(nèi)容privateStringinfoLinkman; //聯(lián)系人privateStringinfoPhone; //聯(lián)系電話privateStringinfoEmail; //E-mail地址privateStringinfoDate; //信息發(fā)布時間privateStringinfoState; //信息審核狀態(tài)privateStringinfoPayfor; //信息付費狀態(tài)……//省略了屬性的getXXX()與setXXX()方法publicStringgetSubInfoTitle(intlen){ //截取信息標題if(len<=0||len>Title.length())len=Title.length();returnTitle.substring(0,len);}}3.2.2顯示信息詳細內(nèi)容的實現(xiàn)過程顯示信息詳細內(nèi)容用到的數(shù)據(jù)表:tb_info。當用戶在前臺單擊以超鏈接形式顯示的某信息標題時,就觸發(fā)了查看信息詳細內(nèi)容的請求,該請求的處理是在InfoAction類中的SingleShow()方法中實現(xiàn)的,請求處理結(jié)束后,返回JSP頁面進行顯示。(1)創(chuàng)建處理請求的SingleShow()方法在SingleShow()方法中,首先從請求中獲取要查看詳細內(nèi)容的信息的ID值,并定義查詢SQL語句,然后將這兩個值作為參數(shù)來調(diào)用業(yè)務(wù)處理對象myOp的OpSingleShow()方法,在該方法中將查詢到的記錄封裝到InfoSingle類對象中,然后返回該InfoSingle類對象,具體代碼可查看3.publicStringSingleShow(){request.setAttribute("mainPage","/pages/show/singleshow.jsp");Stringid=request.getParameter("id"); //獲取請求中傳遞信息的IDStringsql="SELECT*FROMtb_infoWHERE(id=?)"; Object[]params={id};OpDBmyOp=newOpDB(); //創(chuàng)建一個業(yè)務(wù)處理對象infoSingle=myOp.OpSingleShow(sql,params); //獲取要查看的信息//若為null,表示要查看的信息不存在if(infoSingle==null){ request.setAttribute("mainPage","/pages/error.jsp");addFieldError("SingleShowNoExist",getText("city.singleshow.no.exist"));}returnSUCCESS;}代碼中將OpSingleShow()方法返回的InfoSingle類對象賦值給了infoSingle,infoSingle是在InfoAction類的父類InfoSuperAction中定義的屬性。InfoSuperAction類的代碼如下:packagecom.yxq.actionSuper;importcom.yxq.model.InfoSingle;importcom.yxq.model.SearchInfo;publicclassInfoSuperActionextendsMySuperAction{//用來封裝從數(shù)據(jù)表中查詢出的記錄和發(fā)布信息時的表單數(shù)據(jù)protectedInfoSingleinfoSingle; protectedSearchInfosearchInfo; //用來封裝搜索時的表單數(shù)據(jù)……//省略了屬性的getXXX()與setXXX()方法}配置cityinfo.xml文件對查看信息詳細內(nèi)容請求的配置,與列表顯示某類別中所有信息請求的配置是同一個配置。(2)創(chuàng)建顯示詳細信息的singleshow.jsp頁面singleshow.jsp頁面內(nèi)容將顯示在框架頁面中的內(nèi)容顯示區(qū)中,在該頁面中編碼實現(xiàn)要查看信息的詳細內(nèi)容。代碼如下:<table><s2:iftest="infoSingle==null"> <tr><tdcolspan="2">★★★查看信息詳細內(nèi)容出錯!★★★</td></tr></s2:if><s2:else><tr><td>信息類別:</td><td><s2:propertyvalue="#session.typeMap[infoSType]"/></td></tr><tr><td>發(fā)布時間:</td><td><s2:propertyvalue="infoSDate"/></td></tr>……//省略了顯示其他信息的代碼</s2:else></table><s2:iftest="infoSingle==null">中test屬性所指定的表達式中沒有使用“#”符號,這是因為請求從InfoAction類處理結(jié)束,轉(zhuǎn)發(fā)到singleshow.jsp頁面后,當前堆棧頂部存儲的是InfoAction類對象的引用。因此,此時在singleshow.jsp頁面中使用Struts2.0標簽時,都是以InfoAction類對象為基準,所以<s2:iftest="infoSingle==null">中test屬性指定的表達式,就相當于判斷InfoAction類對象的getInfoSingle()方法返回的值是否為null。同理,在后面的property標簽中,如<s2:propertyvalue="infoSDate"/>輸出的值,就相當于先調(diào)用InfoAction類對象的getInfoSingle()方法返回InfoSingle類對象,再調(diào)用InfoSingle對象的getInfoDate()方法,所以<s2:propertyvalue="infoS-Date"/>等價于<s2:propertyvalue="getInfoSingle().getInfoDate()"/>。第四章后臺頁面設(shè)計第四章后臺設(shè)計4.1后臺登錄功能概述用戶通過單擊前臺頁面頂部的“進入后臺”超鏈接,進入后臺登錄頁面,如圖4-1所示。為了防止任意用戶進入后臺,進行非法操作,所以設(shè)置登錄功能。當用戶沒有輸入用戶名和密碼,或輸入了錯誤的用戶名和密碼進行登錄時,會返回登錄頁面顯示相應(yīng)的提示信息。圖4-1用戶登錄頁面后臺登錄模塊的操作流程如圖4-2所示。圖4-2后臺登錄模塊流程在實現(xiàn)登錄功能時,對于已經(jīng)登錄的用戶,當再次單擊前臺頁面頂部的“進入后臺”超鏈接時,應(yīng)直接進入后臺主頁,而不是再次顯示如圖4.1所示的登錄頁面要求用戶登錄,該功能的具體實現(xiàn)過程,將在4-2節(jié)中進行介紹。在后臺登錄模塊中,對于已登錄的用戶要跳過登錄頁面,直接進入后臺主頁。實現(xiàn)該功能的主要技術(shù)就是:在當前用戶登錄成功后,向session中注冊一個屬性,并為該屬性賦值,當用戶再次單擊“進入后臺”超鏈接時,在程序中先獲取存儲在session中該屬性的值,然后通過判斷其值來得知當前用戶是否已經(jīng)登錄,從而決定將請求轉(zhuǎn)發(fā)到登錄頁面還是后臺首頁。4.2后臺頁面設(shè)計(1)后臺登錄技術(shù)分析在后臺登錄模塊中,對于已登錄的用戶要跳過登錄頁面,直接進入后臺主頁。實現(xiàn)該功能的主要技術(shù)就是:在當前用戶登錄成功后,向session中注冊一個屬性,并為該屬性賦值,當用戶再次單擊“進入后臺”超鏈接時,在程序中先獲取存儲在session中該屬性的值,然后通過判斷其值來得知當前用戶是否已經(jīng)登錄,從而決定將請求轉(zhuǎn)發(fā)到登錄頁面還是后臺首頁。(2)后臺登錄的實現(xiàn)過程根據(jù)技術(shù)分析,用戶單擊頁面頂部的“進入后臺”超鏈接請求登錄時,會先判斷用戶是否已經(jīng)登錄。若沒有登錄,則進入登錄頁面,在該頁面中填寫用戶名和密碼后,提交表單,在Action處理類中獲取表單數(shù)據(jù)進行驗證,驗證成功后查詢數(shù)據(jù)表,查詢是否存在用戶輸入的用戶名和密碼;若存在,則登錄成功,進入網(wǎng)站后臺。如果用戶已經(jīng)登錄,則直接進入后臺。下面按照這個流程,介紹后臺登錄的實現(xiàn)過程[1]。①實現(xiàn)“進入后臺”超鏈接在view目錄下的top.jsp文件中實現(xiàn)進入后臺的超鏈接。代碼如下:<ahref="log_isLogin.action">[進入后臺]</a>上述代碼實現(xiàn)的超鏈接所請求的路徑為log_isLogin.action,觸發(fā)該超鏈接產(chǎn)生的請求將由LogInOutAction類中的isLogin()方法處理,isLogin()方法用來判斷用戶是否已經(jīng)登錄。②設(shè)計登錄頁面Login.jsp在登錄頁面中,應(yīng)包含一個表單,并提供“用戶名”和“密碼”兩個表單字段以便用戶輸入數(shù)據(jù)。Login.jsp頁面的關(guān)鍵代碼如下:<%@taglibprefix="s2"uri="/struts-tags"%><s2:formaction="log_Login.action"theme="simple"><tr><tdcolspan="2"><s2:fielderror/></td></tr><!--輸出提示信息--><tr><td>用戶名: </td><td><s2:textfieldname="user.userName"size="30"/></td></tr> <tr><td>密 碼: </td><td><s2:passwordname="user.userPassword"size="30"/></td></tr></s2:form>4.3后臺登錄的實現(xiàn)過程(1)后臺頁面概述本系統(tǒng)中所有的后臺頁面都采用了同一個頁面框架,該頁面框架采用二分欄結(jié)構(gòu),分為4個區(qū)域,即頁頭、側(cè)欄、頁尾和內(nèi)容顯示區(qū),該頁面框架的總體結(jié)構(gòu)與前臺頁面框架的結(jié)構(gòu)相同。網(wǎng)站后臺首頁的運行效果如圖4-3所示。圖4-3后臺首頁的運行效果 圖4-4AdminTemp.jsp頁面布局(2)后臺頁面的技術(shù)分析本系統(tǒng)中,實現(xiàn)后臺頁面框架的JSP文件為AdminTemp.jsp,該頁面的布局如上圖4-4所示。本系統(tǒng)中,對后臺管理員所有請求的響應(yīng)都通過該框架頁面進行顯示。在AdminTemp.jsp文件中主要采用include動作和include指令來包含各區(qū)域所對應(yīng)的JSP文件。4.3.1信息管理技術(shù)分析(1)信息顯示技術(shù)分析對于后臺信息顯示中的列表顯示,主要用來顯示符合指定條件的信息,該條件包括信息類別、付費狀態(tài)和審核狀態(tài)。在數(shù)據(jù)表tb_info的設(shè)計中,設(shè)置了info_payfor和info_state兩個字段,分別用來表示“付費狀態(tài)”與“審核狀態(tài)”。當info_payfor字段內(nèi)容為1時,表示該信息已付費,為0時表示未付;同樣,info_state字段內(nèi)容為1時,表示已通過審核,為0時表示未通過審核。所以,若要顯示招聘信息類別下的“未審核”和“已付費”的信息,應(yīng)執(zhí)行如下的SQL語句:SELECT*FROMtb_infoWHERE(info_type=1) AND(info_state='0')AND(info_payfor='1')若要顯示培訓(xùn)信息類別下的“未審核”和“未付費”的信息,應(yīng)執(zhí)行如下的SQL語句。SELECT*FROMtb_infoWHERE(info_type=1) AND(info_state='0')AND(info_payfor='0')因此,要獲取符合條件的信息,只需要設(shè)置字段info_type、info_state和info_payfor的值即可。本系統(tǒng)提供了兩組單選按鈕組成了“付費狀態(tài)”和“審核狀態(tài)”選項。對于“付費狀態(tài)”選項組,選擇“未付費”,則傳遞的值為“0”;選擇“已付費”,則傳遞的值為“1”;若選擇“全部”,則傳遞all?!皩徍藸顟B(tài)”選項組的設(shè)置與此相同。另外,實現(xiàn)了一個下拉列表框,供用戶選擇信息類別。將這些單選按鈕與下拉列表框都在一個表單中實現(xiàn),這樣,當單擊“顯示”按鈕提交表單后,選擇的狀態(tài)會通過表單進行傳遞??蓜?chuàng)建一個JavaBean來封裝表單數(shù)據(jù),即保存選擇的狀態(tài)。Action處理類接收表單請求后,獲取表單數(shù)據(jù):intinfoType=showType.getInfoType();StringstateType=showType.getStateType();StringpayforType=showType.getPayforType();然后生成SQL語句:SELECT*FROMtb_infoWHERE(info_type=?)AND(info_state=?)AND(info_payfor=?)語句中的“?”最終依次被設(shè)置為變量infoType、stateType和payforType的值。對于后臺信息顯示中的詳細內(nèi)容顯示,只需要獲取要查看信息的ID值,然后通過如下的SQL語句查詢數(shù)據(jù)表來實現(xiàn)。SELECT*FROMtb_infoWHERE(id=?)(2)信息審核技術(shù)分析對于信息審核,實現(xiàn)該功能的主要技術(shù)就是執(zhí)行SQL語句更新數(shù)據(jù)表。首先需要獲取信息的ID值,然后生成如下SQL語句。UPDATEtb_infoSETinfo_state=1WHERE(id=?)其中id字段的值將通過表單中的隱藏域字段進行傳遞,在Action處理類中可通過如下代碼獲取。StringcheckID=request.getParameter("checkID")最后執(zhí)行該SQL語句更新數(shù)據(jù)表,完成信息審核操作。(3)信息刪除技術(shù)分析與信息審核技術(shù)的實現(xiàn)相同,首先獲取信息的ID值,然后通過執(zhí)行SQL語句來實現(xiàn)。該SQL語句如下:DELETEtb_infoWHERE(id=?)其中id字段的值將通過表單中的隱藏域字段進行傳遞,在Action處理類中可通過如下代碼獲取。StringdeleteID=request.getParameter("deleteID")最后執(zhí)行該SQL語句更新數(shù)據(jù)表,完成信息刪除操作。4.3.2信息顯示的實現(xiàn)過程(1)在側(cè)欄對應(yīng)的right.jsp頁面中編寫實現(xiàn)顯示方式的代碼根據(jù)信息顯示功能的介紹及信息顯示的技術(shù)分析,在right.jsp頁面中編寫如下代碼:<%@pageimport="java.util.Map,java.util.TreeMap"%><%@taglibprefix="s2"uri="/struts-tags"%><%MapcheckState=newTreeMap(); //用來存儲“審核狀態(tài)”中的選項checkState.put("1","已審核"); //Map對象的key值存儲選項的值checkState.put("0","未審核");checkState.put("all","全部");MappayforState=newTreeMap(); //用來存儲“付費狀態(tài)”中的選項payforState.put("1","已付費"); //Map對象的key值存儲選項的值,//value存儲選項的標簽payforState.put("0","未付費");payforState.put("all","全部");//將Map對象保存在request范圍內(nèi),以便radio標簽遍歷該Map對象生成一組//單選按鈕request.setAttribute("checkState",checkState);request.setAttribute("payforState",payforState); //同上%><s2:formaction="admin_ListShow.action?"theme="simple"><table><tr><tdcolspan="2"><fieldset><legend>★付費狀態(tài)</legend><s2:radiolist="#request.payforState"name="showType.payforType"value="%{showType.payforType}"/></fieldset><fieldset><legend>★審核狀態(tài)</legend><s2:radiolist="#request.checkState"name="showType.stateType"value="%{showType.stateType}"/></fieldset></td></tr><tr><td>信息類別:<s2:selectemptyOption="true"list="#session.typeMap"name="showTType"/><s2:submitvalue="顯示"/></td></tr> </table></s2:form>……//省略了顯示付費設(shè)置界面的代碼(2)創(chuàng)建JavaBean:AdminShowType根據(jù)信息顯示的技術(shù)分析,需要創(chuàng)建一個JavaBean來保存顯示方式中的選擇狀態(tài),實際上就是用來封裝表單數(shù)據(jù)。關(guān)鍵代碼如下:packagecom.yxq.model;publicclassAdminShowType{privateStringstateType; //保存審核狀態(tài)privateStringpayforType; //保存付費狀態(tài)privateintinfoType; //保存信息類別……//省略了屬性的setXXX()與getXXX()方法}4.3.3信息審核的實現(xiàn)過程根據(jù)信息審核功能介紹,進行信息審核操作,需要先進入信息審核頁面,顯示被審核信息的詳細內(nèi)容,然后管理員通過單擊“通過審核”按鈕,完成信息審核操作。下面按照這個流程來介紹信息審核的實現(xiàn)過程。(1)在信息列表顯示頁面中實現(xiàn)進入審核頁面的超鏈接在信息列表顯示頁面中提供了信息標題和“審核”超鏈接,單擊超鏈接后即可進入信息審核頁面。實現(xiàn)代碼如下:<td><ahref="admin_CheckShow.action?checkID=<s2:propertyvalue='id'/>"><s2:propertyvalue="getSubInfoTitle(17)"/></a></td>……<td><ahref="admin_CheckShow.action?checkID=<s2:propertyvalue='id'/>">√審核</a></td>根據(jù)在cityinfo.xml文件中對admin_*.action的配置,上述代碼實現(xiàn)的超鏈接被觸發(fā)后,將由AdminAction類中的CheckShow()方法進行處理。(2)在AdminAction類中創(chuàng)建CheckShow()方法該方法用來顯示被審核信息的詳細內(nèi)容。在該方法中,首先需要獲取請求中傳遞的信息ID值,然后生成查詢SQL語句,最后調(diào)用業(yè)務(wù)處理對象的OpSingleShow()方法返回封裝信息的InfoSingle類對象。實現(xiàn)代碼如下:/**功能:管理員操作-顯示要審核的信息*/publicStringCheckShow(){request.setAttribute("mainPage","../info/checkshow.jsp");comebackState();//恢復(fù)在“顯示方式”中選擇的狀態(tài)的方法Stringsql="SELECT*FROMtb_infoWHERE(id=?)";StringcheckID=request.getParameter("checkID");//獲取傳遞的信息ID值if(checkID==null||checkID.equals(""))checkID="-1";Object[]params={checkID};OpDBmyOp=newOpDB();infoSingle=myOp.OpSingleShow(sql,params);//返回InfoSingle類對象if(infoSingle==null){ //信息不存在request.setAttribute("mainPage","/pages/error.jsp");addFieldError("AdminShowNoExist",getText("city.singleshow.no.exist"));}returnSUCCESS;}4.3.4信息付費設(shè)置的實現(xiàn)過程根據(jù)信息付費設(shè)置功能介紹,進行信息付費設(shè)置操作,需要先查詢出要進行付費設(shè)置的信息,在頁面中顯示要進行付費設(shè)置信息的詳細內(nèi)容,然后管理員通過單擊“設(shè)為付費”按鈕,完成信息付費設(shè)置操作。實際上,信息付費設(shè)置的實現(xiàn)與信息審核的實現(xiàn)是相同的,只不過在查詢被操作的信息時,信息審核操作的實現(xiàn),是將要查詢信息的ID值在超鏈接中傳遞,而信息付費設(shè)置需要管理員向表單中輸入信息ID值,然后提交表單進行傳遞。下面介紹信息付費設(shè)置的實現(xiàn)過程。(1)在側(cè)欄對應(yīng)的right.jsp頁面中編寫實現(xiàn)付費設(shè)置頁面的代碼該編碼要實現(xiàn)一個表單,在表單中提供一個文本輸入框和一個提交按鈕,文本框用來接收管理員輸入的信息ID值[16]。實現(xiàn)代碼如下:<!--設(shè)置已付費信息--><formaction="admin_SetMoneyShow.action"><tr><td><table><tr><td>請輸入要設(shè)為已付費狀態(tài)的信息ID:</td></tr><tr><td><inputtype="text"name="moneyID"value="${param['moneyID']}"size="24"/><inputtype="submit"value="查詢"/></td></tr></table></td></tr></form>代碼中${param['moneyID']}為JSP的EL表達式,它表示獲取請求中名為moneyID的參數(shù)的值,也可以寫成${param.moneyID}形式。根據(jù)在cityinfo.xml文件中對admin_*.action的配置,上述代碼實現(xiàn)的表單被提交后,將由AdminAction類中的SetMoneyShow()方法進行處理。(2)在AdminAction類中創(chuàng)建SetMoneyShow()方法該方法用來顯示要進行付費設(shè)置的信息的詳細內(nèi)容。在該方法中,首先需要獲取通過表單傳遞的信息ID值,然后生成查詢SQL語句,最后調(diào)用業(yè)務(wù)處理對象的OpSingleShow()方法返回封裝信息的InfoSingle類對象。在此之前,需要驗證是否輸入了信息的ID值和ID值是否為數(shù)字格式,該驗證可在validateSetMoneyShow()方法中實現(xiàn),具體代碼可查看本書附帶光盤。SetMoneyShow()方法的關(guān)鍵代碼如下:StringmoneyID=request.getParameter("moneyID"); //獲取信息ID值Stringsql="SELECT*FROMtb_infoWHERE(id=?)"; //生成SQL語句Object[]params={moneyID};OpDBmyOp=newOpDB(); //創(chuàng)建業(yè)務(wù)對象infoSingle=myOp.OpSingleShow(sql,params); 第五章開發(fā)技巧與難點第五章開發(fā)技巧與難點(1)實現(xiàn)頁面中的超鏈接雖然在應(yīng)用Struts框架開發(fā)Web應(yīng)用時,推薦使用Struts中提供的標簽,但有些時候不妨靈活地使用原始的HTML語言中的一些標識。例如,在頁面中實現(xiàn)一個超鏈接,鏈接請求的資源為welcome.jsp頁面,若使用Struts2.0的a標簽實現(xiàn):<s2:ahref="<s2:urlvalue='/welcome.jsp'/>">轉(zhuǎn)發(fā)</s2:a>則上述代碼將生成如下HTML代碼:<ahref="<s2:urlvalue='/welcome.jsp'/>">轉(zhuǎn)發(fā)</a>所以該超鏈接請求的資源為<s2:urlvalue='/welcome.jsp'/>,很顯然不是預(yù)期的效果??梢詫憺槿缦滦问剑?lt;s2:ahref="welcome.jsp">轉(zhuǎn)發(fā)</s2:a>但是,如果超鏈接請求的資源是動態(tài)改變的,或者傳遞的參數(shù)也是動態(tài)改變的,這時可以使用HTML語言中的標識來實現(xiàn):<ahref="<s2:urlvalue="/welcome.jsp"/>">轉(zhuǎn)發(fā)</a><ahref="welcome.jsp?name=<s2:urlvalue='yxq'/>">傳參</a>則上述代碼將生成如下HTML代碼:<ahref="welcome.jsp">轉(zhuǎn)發(fā)</a><ahref="welcome.jsp?name=yxq">傳參</a>(2)Struts2.0中的中文亂碼問題在Struts2.0中解決中文亂碼的問題,可在perties文件中進行如下配置。struts.i18n.encoding=gb2312struts.i18n.encoding用來設(shè)置Web應(yīng)用默認的編碼,gb231
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 唇膏盒產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 企業(yè)私有云服務(wù)行業(yè)市場調(diào)研分析報告
- 劍道培訓(xùn)日式劍術(shù)培訓(xùn)行業(yè)相關(guān)項目經(jīng)營管理報告
- 與專利實施相關(guān)的法律服務(wù)行業(yè)相關(guān)項目經(jīng)營管理報告
- 大提琴產(chǎn)品供應(yīng)鏈分析
- 保險精算行業(yè)相關(guān)項目經(jīng)營管理報告
- 5G智能零售行業(yè)經(jīng)營分析報告
- 移動式升降作業(yè)平臺產(chǎn)品供應(yīng)鏈分析
- 空化妝用滴管市場分析及投資價值研究報告
- 醫(yī)療激光設(shè)備行業(yè)相關(guān)項目經(jīng)營管理報告
- 家具制造業(yè)生產(chǎn)管理制度大全
- 金融科技創(chuàng)新對金融服務(wù)的影響研究
- 2023版思想道德與法治專題6 遵守道德規(guī)范 錘煉道德品格 第2講 吸收借鑒優(yōu)秀道德成果
- 子宮破裂的護理查房201711
- 停送電工作票制度
- 水利水電工程施工技術(shù)-鋼筋工程
- 中醫(yī)內(nèi)科汗證
- 學(xué)校食堂食品安全風(fēng)險清單
- YY/T 0612-2022一次性使用人體動脈血樣采集器(動脈血氣針)
- JJG 693-2011可燃氣體檢測報警器
- GB/T 9441-2009球墨鑄鐵金相檢驗
評論
0/150
提交評論