freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于struts2的都市供求信息網(wǎng)的設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁(yè)

2025-06-05 02:14本頁(yè)面
  

【正文】 發(fā)布時(shí)間來(lái)顯示信息的,最新發(fā)布的信息顯示在最頂部,所以對(duì)查詢出的記錄要按照發(fā)布時(shí)間進(jìn)行降序排列。此時(shí)分頁(yè)查詢的 SQL 語(yǔ)句應(yīng)使用信息的發(fā)布時(shí)間來(lái)作為分頁(yè)的條件,而不能再使用設(shè)為自動(dòng)編號(hào)的字段了。 第四節(jié) 信息發(fā)布模塊設(shè)計(jì) 一、信息發(fā)布模塊概述 單擊頁(yè)面頂部的“發(fā)布信息”超鏈接,將進(jìn)入信息發(fā)布頁(yè)面。在該頁(yè)面中,用戶 可從下拉列表中選擇一種信息類別(共包括 11 個(gè)信息類別:公寓信息、招聘信 息、求職信息、培訓(xùn)信息、家教信息、房屋信息、車輛信息、求購(gòu)信息、出售信 息、招商引資、尋找啟示),然后輸入其他信息。 信息錄入完整后,單擊“發(fā)布”按鈕,即可發(fā)布信息。此時(shí),程序會(huì)先驗(yàn)證用戶 是否輸入了信息,若驗(yàn)證失敗,則返回信息發(fā)布頁(yè)面,進(jìn)行相應(yīng)提示;若驗(yàn) 證成功,則會(huì)繼續(xù)驗(yàn)證輸入的“聯(lián)系電話”和 Email 格式是否正確;若該驗(yàn)證成功,則向數(shù)據(jù)庫(kù)中插入記錄,完成發(fā)布操作;信息發(fā)布成功后,返回給用戶信息的 ID 值。發(fā)布的信息還需要管理員進(jìn)行審核,只有審核成功的信息才能顯示在前臺(tái)頁(yè)面中。 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 21 圖片 46信息發(fā)布 二、信息發(fā)布模塊的表單驗(yàn)證 本課題采用 Action 類中的驗(yàn)證方法來(lái)對(duì)表單數(shù)據(jù)進(jìn)行驗(yàn)證。 Action 類中的驗(yàn)證方法的命名規(guī)則為 validateXXX(),其中 XXX 表示 Action 類中用來(lái)處理請(qǐng)求的某個(gè)方法名稱。當(dāng)請(qǐng)求被轉(zhuǎn)發(fā)給 Action 類時(shí),該 Action 會(huì)根 據(jù)用戶請(qǐng)求來(lái)調(diào)用相應(yīng)的方法處理請(qǐng)求,若在這之前需要進(jìn)行表單數(shù)據(jù)驗(yàn)證,則可實(shí)現(xiàn)與該方法對(duì)應(yīng)的 validateXXX()驗(yàn)證方法進(jìn)行驗(yàn)證。 本課題中用來(lái)處理前臺(tái)操作的 Action 類中的 Add()方法用來(lái)處理信息發(fā)布的請(qǐng) 求,在 Add()方法中需要編寫(xiě)向數(shù)據(jù)表中插入記錄的代碼,所以在這之前需要驗(yàn)證 用戶輸入的表單數(shù)據(jù)是否為空,可在 Action 類中實(shí)現(xiàn) validateAdd()方法進(jìn)行驗(yàn)證,驗(yàn)證成功后,會(huì)自動(dòng)調(diào)用 Add()方法。 validateXXX()驗(yàn)證方法不需要返回值,在方法中可將提示信息通過(guò) addFieldError()方法進(jìn)行保存,這樣,返回驗(yàn)證失敗的提示頁(yè)面后,就可通過(guò) fielderror 標(biāo)簽輸出提示信息。 Struts 將根據(jù)是否調(diào)用了 addFieldError()方法判斷驗(yàn)證是否成功,若 validateXXX()方法的程序流程執(zhí)行了 addFieldError()方法,則驗(yàn)證失敗,那么在 validateXXX()方法的流程結(jié)束后,將返回到配置文件中指定的 JSP 頁(yè)面。 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 22 三、信息發(fā)布模塊的實(shí)現(xiàn)過(guò)程 用戶通 過(guò)單擊頁(yè)面頂部的“發(fā)布信息”超鏈接,進(jìn)入信息發(fā)布頁(yè)面,在該頁(yè)面中填寫(xiě)發(fā)布信息后,提交表單,在 InfoAction 處理類中獲取表單數(shù)據(jù)進(jìn)行驗(yàn)證,驗(yàn)證成功后向數(shù)據(jù)表中插入數(shù)據(jù),完成信息的發(fā)布。下面按照這個(gè)操作流程,介紹信息發(fā)布的實(shí)現(xiàn)過(guò)程。 (一 ) 實(shí)現(xiàn)頁(yè)面頂部的“發(fā)布信息”超鏈接 在 view 目錄下的 文件中實(shí)現(xiàn)進(jìn)入信息發(fā)布頁(yè)面的“發(fā)布信息”超鏈接。 代碼如下: a href=?addType=linkTo style=color:gray[發(fā)布信息 ]/a 該超鏈接請(qǐng)求的路徑為 ,根據(jù)在 Struts 配置文件中的配置,由 InfoAction 類中的 Add()方法處理該請(qǐng)求,參數(shù) addType通知 Add()方法當(dāng)前請(qǐng)求的 操作,其值為 linkTo 表示僅僅是連接到信息發(fā)布頁(yè)面;若為 add,則表示向數(shù)據(jù)表中插入記錄。 (1)創(chuàng)建發(fā)布信息的 頁(yè)面。 信息發(fā)布頁(yè)面 頁(yè)面的關(guān)鍵代碼如下: s2:form action= theme=simple input type=hidden name=addType value=add/ tr td信息類別 /td td s2:select emptyOption=true list=session typeMap name=//td td[信息標(biāo)題最多不得超過(guò) 40 個(gè)字符 ] /td/tr tr td colspan=3s2:fielderrors2:param value=% {39。typeError39。}//s2:fielderror/td/tr tr td信息標(biāo)題: /td td colspan=2s2:textfield name=//td/tr trtd colspan=3s2:fielderrors2:param value=% {39。titleError39。}//s2:fielderror/td/tr ?? //省略了實(shí)現(xiàn)其他表單字段的代碼 /s2:form select 標(biāo)簽用來(lái)實(shí)現(xiàn)下拉列表框, emptyOption 屬性取值為 true,表示第一個(gè)下拉列表項(xiàng)為空白,取值為 false 或省略該屬性,則不生成空白列表項(xiàng); list 屬性則指定用來(lái)生成下拉列表項(xiàng)的數(shù)據(jù)源,若該數(shù)據(jù)源是一個(gè) Map 對(duì)象,則默認(rèn)的會(huì)將該 Map 對(duì)象的 key 值作為列表項(xiàng)的值,將 value 值作為列表項(xiàng)的標(biāo)簽顯示給用戶。 name 屬性指定了與表單的處理類中對(duì)應(yīng)的 setXXX()與 getXXX()方法。 fielderror 標(biāo)簽用來(lái)輸出通過(guò) Action 類的 addFieldError()方法保存的信息, param 標(biāo)簽則指定要輸出保存的那條信息。如果要輸出保存的全部信息,可使用 s2:fielderror/ 。 “ %{} ” 用 來(lái) 計(jì) 算 表 達(dá) 式, 被 計(jì) 算 的 表 達(dá) 式寫(xiě) 在 “ {} ”中,如 s2:property value=%{100+1}/,將輸出“ 101”,所以,代碼中為 param標(biāo)簽的 value 屬性指定的是字符串值 typeError,若寫(xiě)為 s2:param value=typeError/,則此時(shí)的 typeError 相當(dāng)于一個(gè)頁(yè)面變量。 (2)在 InfoAction 類中實(shí)現(xiàn) 處理信息發(fā)布請(qǐng)求 . 創(chuàng)建驗(yàn)證表單的 validateAdd()方法中,先獲取表單數(shù)據(jù),然后依次進(jìn)行驗(yàn)證。首先驗(yàn)貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 23 證用戶輸入是否為空,在都不為空的情況下,再來(lái)驗(yàn)證輸入的“聯(lián)系電話”和 Email 格式是否正確。在驗(yàn)證過(guò)程中,若驗(yàn)證失敗,則調(diào)用 addFieldError()方法保 存提示信息。 (3)創(chuàng)建處理請(qǐng)求的 Add()方法。 (4)表單驗(yàn)證成功后,調(diào)用 Add()方法處理請(qǐng)求。在該方法中先獲取表單數(shù)據(jù),然后生成 SQL 語(yǔ)句,最后調(diào)用 OpDB 類對(duì)象的 OpUpdate()方法向數(shù)據(jù)表中插入記錄,完成信息發(fā)布。 第 五節(jié) 后臺(tái)登陸模塊設(shè)計(jì) 一、后臺(tái)登陸模塊功能概述 用戶通過(guò)單擊前臺(tái)頁(yè)面頂部的“進(jìn)入后臺(tái)超鏈接,進(jìn)入后臺(tái)登錄頁(yè)面。為了防止任意用戶進(jìn)入后臺(tái),進(jìn)行非法操作,所以設(shè)置登錄功能。當(dāng)用戶沒(méi)有輸入用戶名和密碼,或輸入了錯(cuò)誤的用戶名和密碼進(jìn)行登錄時(shí),會(huì)返回登錄頁(yè)面顯示相應(yīng)的提示信息。如下圖 47 所示: 圖 47 后臺(tái)登錄頁(yè)面 在實(shí)現(xiàn)登錄功能時(shí),對(duì)于已經(jīng)登錄的用戶,當(dāng)再次單擊前臺(tái)頁(yè)面頂部的“進(jìn)入后臺(tái)”超鏈接時(shí),應(yīng)直接進(jìn)入后臺(tái)主頁(yè),而不是再次顯示登錄頁(yè)面要求用戶登錄。 在后臺(tái)登錄模塊中,對(duì)于已登錄的用戶要跳過(guò)登錄頁(yè)面,直 接進(jìn)入后臺(tái)主頁(yè)。實(shí)現(xiàn)該功能的主要技術(shù)就是:在當(dāng)前用戶登錄成功后,向 session 中注冊(cè)一個(gè)屬性,并為該屬性賦值,當(dāng)用戶再次單擊“進(jìn)入后臺(tái)”超鏈接時(shí),在程序中先獲取存儲(chǔ)在 session中該屬性的值,然后通過(guò)判斷其值來(lái)得知當(dāng)前用戶是否已經(jīng)登錄,從而決定將請(qǐng)求轉(zhuǎn)發(fā)到登錄頁(yè)面還是后臺(tái)首頁(yè)。 二、后臺(tái)登陸模塊程序?qū)崿F(xiàn) (一 ) 在登錄頁(yè)面中,應(yīng)包含一個(gè)表單,并提供“用戶名”和“密碼”兩個(gè)表單字段以 便用戶輸入數(shù)據(jù)。 頁(yè)面的關(guān)鍵代碼如下: s2:form action= theme=simple trtd colspan=2s2:fielderror//td/tr ! 輸出提示信息 tr td用戶名: /td td s2:textfield name= size=30//td/tr tr 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 24 td密 碼: /td tds2:password name= size=30//td /tr /s2:form (二 ) 創(chuàng)建封裝登錄表單數(shù)據(jù)的 JavaBean,該 JavaBean 用來(lái)保存輸入的用戶名和密碼。 (三 ) 創(chuàng)建 LogInOutAction 類 LogInOutAction 類用來(lái)處理用戶登錄和退出登錄請(qǐng)求。代碼如下: public class LogInOutAction extends MySuperAction { protected UserSingle user。 //封裝表單數(shù)據(jù)的 JavaBean public UserSingle getUser() { return user。 } public void setUser(UserSingle user) { = user。 } ?? //此處為判斷當(dāng)前用戶是否登錄的 isLogin()方法 ?? //此處為驗(yàn)證用戶身份的 Login()方法 ?? //此處為處理退出登錄的 Logout()方法 ?? //此處為表單驗(yàn)證方法 validateLogin() } 當(dāng)用戶觸發(fā)“進(jìn)入后臺(tái)”超鏈接后,請(qǐng)求由 LogInOutAction 類中的 isLogin()方法驗(yàn)證用戶是否已經(jīng)登錄。 isLogin()方法的代碼如下: public String isLogin(){ Object ob=(loginUser)。 if(ob==null||!(ob instanceof UserSingle)) //如果對(duì)象為空,或者不是 UserSingle 類的實(shí)例,表示沒(méi)有登錄 return INPUT。 //返回登錄頁(yè)面 else //已經(jīng)登錄 return LOGIN。 //進(jìn)入后臺(tái) } 若用戶沒(méi)有登錄,則進(jìn)入登錄頁(yè)面,在該頁(yè)面中輸入用戶名和密碼后提交表單進(jìn)行登錄,請(qǐng)求將被提交到 LogInOutAction 類中的 Login()方法進(jìn)行身份驗(yàn)證。 Login()方法的代碼如下: public String Login(){ String sql=select * from tb_user where user_name=? and user_password=?。 Object[] params={(),()}。 //獲取輸入的用戶名和密碼,并保存 OpDB myOp=new OpDB()。 if((sql, params)){ //存在該用戶,登錄成功 (loginUser,user)。 //保存當(dāng)前用戶到 session 中 return LOGIN。 //進(jìn)入后臺(tái) } else{ //用戶名或密碼錯(cuò)誤 addFieldError(loginE,getText())。 //保存提示信貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 25 息 return INPUT。 //返回登錄頁(yè)面 } } 在觸發(fā)“進(jìn)入后臺(tái)”超鏈接和提交登錄表單后,請(qǐng)求 LogInOutAction 類相應(yīng)的方法進(jìn)行處理,是因?yàn)樵? 文件中指定了它們之間的關(guān)系。 第六節(jié) 后臺(tái)頁(yè)面設(shè)計(jì) 一、后臺(tái)頁(yè)面概述 本課題中所有的后臺(tái)頁(yè)面都采用了同一個(gè)頁(yè)面框架,該頁(yè)面框架采用二分欄結(jié)構(gòu),分為 4個(gè)區(qū)域,即頁(yè)頭、側(cè)欄、頁(yè)尾和內(nèi)容顯示區(qū),該頁(yè)面框架的總體結(jié)構(gòu)與前臺(tái)頁(yè)面框架的結(jié)構(gòu)相同。網(wǎng)站 后臺(tái)首頁(yè)的運(yùn)行效果如圖: 圖 48 網(wǎng)站后臺(tái)首頁(yè) 本課題中,實(shí)現(xiàn)后臺(tái)頁(yè)面框架在 JS 文件為 。對(duì)后臺(tái)管理員所 有請(qǐng)求的響應(yīng)都通過(guò)該框架頁(yè)面進(jìn)行顯示。在 文件中主要采用 include 動(dòng)作和include 指令來(lái)包含各區(qū)域所對(duì)應(yīng)的 JSP 文件。其實(shí)現(xiàn)技術(shù)與前臺(tái)頁(yè)面的實(shí)現(xiàn)技術(shù)是相同的。 貴陽(yáng)學(xué)院畢業(yè)設(shè)計(jì)(論文) 26 二、后臺(tái)信息管理功能概述 后臺(tái)信息的管理功能主要包括信息顯示、信息審核、信息刪除和信息付費(fèi)設(shè) 置。 (一)信息顯示功能 后臺(tái)信息顯示 功能,分為信息的列表顯示和詳細(xì)內(nèi)容顯示。列表顯示的信息由管理員選擇的狀態(tài)類型決定。顯示狀態(tài)分為付費(fèi)狀態(tài)和審核狀態(tài)兩種。后臺(tái)信息顯示頁(yè)面如所示。 圖 49 后臺(tái)信息顯示頁(yè)面 (二)信息審核功能 用戶發(fā)布信息后,需要由管理員來(lái)審核該信息是否可以發(fā)布。首先需要顯示出 “未審核”的信息??蓮暮笈_(tái)主頁(yè)右側(cè)的功能區(qū)的“顯示方式”欄中選擇“付費(fèi)狀態(tài)”為 “全部”,“審核狀態(tài)”為“未審核”的顯示方式,并在“信息類別”下拉列表框中選擇信息類別,單擊“顯示”按鈕,則顯示該類別下的所有未審核信息 圖 410 后臺(tái)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1