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

正文內(nèi)容

基于struts框架的bbs系統(tǒng)計(jì)算機(jī)技術(shù)與科學(xué)專業(yè)畢業(yè)設(shè)計(jì)3稿(編輯修改稿)

2024-12-16 03:26 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 所在城市iconVarchar2(200)用戶圖像路徑phoneVarchar2(20)聯(lián)系電話qqVarchar2(20)qq號(hào)碼realnameVarchar2(25)真實(shí)姓名accessnumNumber訪問次數(shù)lastlogindateDate上次上線時(shí)間statusNumberDefault=00正常 1注銷 isonlineNumberDefault=00下線 1在線gradeNumber等級(jí)(版主或普通用戶) 論壇版區(qū)信息表字段名字段類型約束或索引描述IDNumber(Sequence)PK記錄流水號(hào)bbsnameVarchar2(200)Not Null論壇名bbsownerVarchar2(25)版主createtimeDate創(chuàng)建時(shí)間useridNumberFK會(huì)員id 主題信息表字段名字段類型約束或索引描述IDNumber(Sequence)PK記錄流水號(hào)titleVarchar2(200)Not Null主題名themecontextVarchar2(4000)主題內(nèi)容bbsidNumberFK論壇iduseridNumberFK會(huì)員idcreatetimeDate發(fā)表時(shí)間 回帖信息表字段名字段類型約束或索引描述IDNumber(Sequence)PK記錄流水號(hào)ReplyContextVarchar2(4000)Not Null回復(fù)內(nèi)容themeidNumberFK主題iduseridNumberFK會(huì)員idreplytimeDate回復(fù)信息字段名字段類型約束或索引描述IDNumber(Sequence)PK記錄流水號(hào)adminnameVarchar2(25)Not Null管理員名稱adminpasswdVarchar2(30)Not Null管理員密碼字段名字段類型約束或索引描述IDNumber(Sequence)PK記錄流水號(hào)contextVarchar2(2000)Not Null留言內(nèi)容sendtimeDate發(fā)送時(shí)間senderVarchar2(30)發(fā)留言者statusNumberDefault=00未閱讀 1已閱讀 網(wǎng)站公告表字段名字段類型約束或索引描述IDNumber(Sequence)PK記錄流水號(hào)contextVarchar2(2000)Not Null 公告內(nèi)容之所以這樣設(shè)計(jì)數(shù)據(jù)表間關(guān)系,主要是考慮論壇中各個(gè)對(duì)象的相互關(guān)系,帖子屬于板塊,回復(fù)帖從屬于主題帖,帖子的作者屬于用戶,因此板塊、主題帖、回復(fù)帖是一層層的從屬依賴關(guān)系,帖子的作者必須是論壇的用戶,帖子不能脫離板塊、用戶而單獨(dú)存在。5 系統(tǒng)的具體實(shí)現(xiàn)和測(cè)試本論壇系統(tǒng)完成之后,就必須設(shè)計(jì)許多的測(cè)試用例來(lái)驗(yàn)證本系統(tǒng)的正確性,容錯(cuò)能力和恢復(fù)能力,信息安全性,可靠性等,盡可能多地找出系統(tǒng)的錯(cuò)誤所在?!∮脩趄?yàn)證性實(shí)現(xiàn)和測(cè)試本論壇是一個(gè)私有論壇,任何想進(jìn)入論壇的用戶都必須是論壇的會(huì)員,所以要想進(jìn)入論壇就必須得先注冊(cè),成為論壇的會(huì)員后,才能享受論壇帶來(lái)的服務(wù)。用戶在瀏覽器中輸入地址:://localhost:8000/2009_BBS/,系統(tǒng)會(huì)自動(dòng)跳到登陸頁(yè)面,對(duì)于非注冊(cè)用戶,即可點(diǎn)擊注冊(cè)按鈕進(jìn)入注冊(cè)界面。如下圖:圖 用戶注冊(cè)頁(yè)面當(dāng)用戶在此頁(yè)面上輸入用戶信息后,點(diǎn)擊注冊(cè)按鈕后會(huì)通過javascript驗(yàn)證輸入的正確性,如判斷用戶名的長(zhǎng)度,密碼的長(zhǎng)度等等。然后進(jìn)入RegisterAction,RegisterAction中的execute方法里的關(guān)鍵代碼如下:public String execute(){IUserinfoService userinfoService = (IUserinfoService) (userinfoService)。//獲得Bean HttpServletRequest request=()。//獲得請(qǐng)求 HttpSession session=()。//獲得session BbsUserinfo userinfo=new BbsUserinfo()。//創(chuàng)建用戶對(duì)象 //設(shè)置屬性 ()。 ()。 ()。 ()。 ()。//設(shè)置性別 ()。 ()。 ()。 ()。 ()。 //判斷年齡的長(zhǎng)度 if(!=null||().length()!=0){ (new Long().longValue())。 } try { (userinfo)。//調(diào)用register方法 (message, 注冊(cè)成功)。 return success。//返回success } catch (UserinfoServiceException e) { (message, ())。 }return failure。}用戶注冊(cè)必須填寫相關(guān)的用戶信息,但是用戶在填寫這些信息時(shí)未必會(huì)按照系統(tǒng)所能接受的數(shù)據(jù)格式,比如填寫年齡時(shí)可能會(huì)不小心輸入一個(gè)字母,如果系統(tǒng)不對(duì)這些輸入的表單進(jìn)行驗(yàn)證,則會(huì)出現(xiàn)某些嚴(yán)重的錯(cuò)誤。以下代碼為對(duì)用戶注冊(cè)時(shí)的必要表單驗(yàn)證:function validate(form){ var name = 。//獲得注冊(cè)表單用戶名 var passwd = 。 //獲得注冊(cè)表單密碼 var passwordpr = 。 //獲得注冊(cè)表單重復(fù)密碼 var telephone = 。 var age = 。 var = 。 var answer = 。 if(name==null||==0||=6){//判斷用戶名 alert(請(qǐng)輸入用戶名!)。 return false。 } else if(passwd==null||==0||6){ //判斷密碼 alert(請(qǐng)輸入正確密碼!)。 return false。 }else if(passwordpr==null||==0){//重復(fù)密碼 alert(請(qǐng)?jiān)俅屋斎朊艽a!)。 return false。 }else if(passwd!=passwordpr){//判斷密碼和重復(fù)密碼是否相同 alert(兩次輸入的密碼不一致)。 return false。 }else if(answer==null||==0||6){//判斷密碼提示問題 alert(請(qǐng)按照要求填寫,該答案有助于幫助你在忘記密碼時(shí),幫你找回!)。 return false。 }else if(==null||==0){//判斷郵箱是否為空 alert(請(qǐng)輸入你的郵箱!)。 return false。 }else if(isEmail()==false){//判斷郵箱的格式是否符合標(biāo)準(zhǔn) alert(請(qǐng)輸入你正確的郵箱號(hào)碼!)。 return false。 }else if(age==null||==0||isNumber(age)==false){//判斷年齡是否為空 alert(請(qǐng)輸入你的正確年齡!)。 return false。 }else if(isNumber(age)==false){//判斷年齡是否符合要求 alert(年齡必須為數(shù)字)。 return false。 } else if(telephone==null||==0||10){//判斷手機(jī)號(hào)碼是否為空 alert(請(qǐng)輸入你的手機(jī)號(hào))。 return false。 }else if(isTel(telephone)==false){ alert(電話號(hào)碼有誤)。 return false。 }else{ return true。}}Action中對(duì)傳入的用戶信息包裝到pojo類,調(diào)用service層的register方法,在此方法中先對(duì)用戶輸入的用戶名到數(shù)據(jù)庫(kù)查找,如果此用戶名已經(jīng)被使用,則能在根據(jù)用戶名能在數(shù)據(jù)庫(kù)中找到,此時(shí)要提示用戶該用戶名已經(jīng)被使用。用戶注冊(cè)時(shí)要把用戶的狀態(tài)設(shè)置為非注銷狀態(tài),用戶的初始等級(jí)為普通用戶,把用戶保存到數(shù)據(jù)庫(kù)中要在service層進(jìn)行事務(wù)控制,但Hibernate的session不能在dao層關(guān)閉,因?yàn)閟ervice層的一個(gè)方法可能對(duì)應(yīng)于dao層的多個(gè)方法,如果session在dao層關(guān)閉了,則同一個(gè)事務(wù)處理的session就不是同一個(gè)了。 所以session的關(guān)閉應(yīng)該放在Filter中。Service層的注冊(cè)方法如下://注冊(cè)方法public void register(BbsUserinfo userinfo) throws UserinfoServiceException { //事物控制 開始 Transaction tran = new HibernateTransaction()。 ()。 try { BbsUserinfo info = (())。//查找用戶名 if (info != null) { throw new UserinfoServiceException(用戶名已經(jīng)使用)。 } ((()))。//給密碼加密 (0l)。//設(shè)置在線狀態(tài) (0l)。 (普通用戶)。//設(shè)置用戶等級(jí) (userinfo)。//更新用戶 ()。//提交事務(wù) } catch (Exception e) { ()。//回滾 if (e instanceof UserinfoServiceException) throw (UserinfoServiceException) e。 ()。}}如下圖所示為登陸頁(yè)面: 登陸頁(yè)面當(dāng)用戶注冊(cè)成功后返回提示注冊(cè)成功并跳到登陸頁(yè)面等待登陸,用戶在登陸頁(yè)面輸入正確的用戶名和密碼后提交請(qǐng)求,跳到LoginAction中,調(diào)用service層的login方法,通過輸入的用戶名查找數(shù)據(jù)庫(kù)中是否存在該用戶,如果存在,則返回一個(gè)BbsUserinfo類型的對(duì)象,然后判斷密碼是否正確,如果用戶名不存在,則登陸失敗,并告訴用戶輸入的用戶名不存在,如果用戶在登陸界面選擇了自動(dòng)登陸,則用戶在一天內(nèi)可以直接進(jìn)入系統(tǒng)而不用再輸入用戶名和密碼,登陸的server層關(guān)鍵代碼如下:public BbsUserinfo login(String username, String password) throws UserinfoServiceException {//登陸方法 BbsUserinfo userinfo = null。 try { userinfo = (username)。//從數(shù)據(jù)中查找用戶名 if (userinfo == null) { throw new UserinfoServiceException(用戶名不存在)。 } String passwd = (password)。 if (!().equals(passwd)) { throw new UserinfoServiceException(密碼錯(cuò)誤)。 }//判斷輸入的密碼和數(shù)據(jù)庫(kù)中的密碼是否一樣 return userinfo。//返回userinfo對(duì)象 } catch (Exception e) { if (e instanceof UserinfoServiceException) throw (UserinfoServiceException) e。 ()。 }return null。//返回空} 論壇功能實(shí)現(xiàn)和測(cè)試當(dāng)用戶登陸驗(yàn)證成功后,進(jìn)入AfterLoginAction中,在此action中,通過session取得登陸進(jìn)來(lái)的用戶對(duì)象,設(shè)置此用戶的登陸次數(shù),在線狀態(tài),上次登陸時(shí)間,并將相應(yīng)信息保存到session中。此action執(zhí)行完后,進(jìn)入bbsAction中。bbsAction是用戶登陸成功要經(jīng)歷的一個(gè)重要action,這個(gè)action要找出當(dāng)前系統(tǒng)中的所有版區(qū),所有主題,所有回復(fù),并且要找出當(dāng)日主題和當(dāng)日的回復(fù)信息,并且找出管理員發(fā)表的網(wǎng)站公告。得到這些信息后將其保存在web應(yīng)用的session范圍內(nèi),如下所示:/**找出今日主題*/List todayThemes = new ArrayList()。 if (themeList != null) { for (Object o : themeList) {//遍歷themeList集合 BbsThemeinfo themeinfo = (BbsThemeinfo) o。 Calendar calendar = new GregorianCalendar()。 (())。//創(chuàng)建的時(shí)間 int Day = ()。 int year = ()。 (new Date())。//設(shè)置時(shí)間為系統(tǒng)的當(dāng)前時(shí)間 int today = ()。 int thisYear = ()。 if (Day == today amp。a
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1