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

正文內(nèi)容

基于ssh的校園二手書交易平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-資料下載頁(yè)

2025-06-27 18:58本頁(yè)面
  

【正文】 ngth=3 default=N/ /property property name=VerifyCode type= column name=_verify_code length=50 / /property property name=lastLoginTime type= column name=last_login_time / /property property name=lastLoginIp type= column name=last_login_ip length=15 / /property /class/hibernatemapping所有hibernatemapping標(biāo)簽(tag)之間,都含有一個(gè)class元素。所有的持久化實(shí)體類都需要一個(gè)這樣的映射,來(lái)把類對(duì)象映射到SQL數(shù)據(jù)庫(kù)里的表。id元素是標(biāo)識(shí)符屬性的聲明,name=id 聲明了Java屬性的名字 - Hibernate會(huì)使用getId()和setId()來(lái)訪問(wèn)它。 column屬性則告訴Hibernate, 我們使用d_user表的哪個(gè)字段作為主鍵。嵌套的generator元素指定了標(biāo)識(shí)符生成策略,在這里我們指定native。 Hibernate Session工廠該類主要用于方便地提供Hibernate的初始化以及Hibernate的sessioon和事務(wù)的處理。使用Hibernate進(jìn)行持久化操作主要需要以下步驟:a. 創(chuàng)建Configuration對(duì)象:裝載配置文件,讀取所有的映射文件并進(jìn)行解析。b. 創(chuàng)建 SessionFactory對(duì)象:它是產(chǎn)生Session對(duì)象的工廠。c. 創(chuàng)建Session對(duì)象實(shí)例:并且將Session對(duì)象放入線程當(dāng)中。d. 開始一個(gè)事務(wù)。e. 進(jìn)行持久化操作:讀取或保存java對(duì)象。f. 結(jié)束事務(wù):在操作完成后要進(jìn)行顯示的結(jié)束事務(wù)的操作。g. 關(guān)閉Session::類似于釋放數(shù)據(jù)庫(kù)的連接。這里由于使用了struts2框架,為此我們定義了一個(gè)攔截器(Interceptor)用于管理事務(wù),使得每個(gè)請(qǐng)求只開啟一個(gè)事務(wù),防止邏輯混亂。HibernateSessionFactory類的結(jié)構(gòu)如圖37所示:圖 37 HibUtil類方法UMR圖 定義和實(shí)現(xiàn)DAO在完成以上的定義和配置工作后,要完成HibernateDAO的定義和實(shí)現(xiàn)。首先定義DAO接口,基于接口的編程方法,可以在方法調(diào)用者和方法具體實(shí)現(xiàn)之間建立一個(gè)屏障,即它們不存在任何的關(guān)聯(lián),降低它們的耦合度,一邊的修改不會(huì)影響另一邊的正常運(yùn)行。定義完稱后實(shí)現(xiàn)DAO接口,不同的DAO具有不同的實(shí)現(xiàn),此處以UserDAOImpl類的關(guān)系如圖38所示:圖38 UserDAOImpl UMR圖4 系統(tǒng)功能模塊的實(shí)現(xiàn)此處,將為大家詳細(xì)說(shuō)明系統(tǒng)功能模塊的具體實(shí)現(xiàn),系統(tǒng)主要使用了JSP作為視圖、Javascript和jQuery用于客戶端驗(yàn)證、Struts2作為控制器,通過(guò)Hibernate對(duì)數(shù)據(jù)庫(kù)的操作,完成了一個(gè)動(dòng)態(tài)的校園二手書跳蚤市場(chǎng)。 系統(tǒng)主頁(yè)設(shè)計(jì) 主頁(yè)顯示設(shè)計(jì)系統(tǒng)主頁(yè)是面向平臺(tái)的所有訪問(wèn)者,注冊(cè)用戶和非注冊(cè)用戶都可以進(jìn)入到系統(tǒng)主頁(yè)面,查看相關(guān)的二手信息及二手指南。主頁(yè)面由平臺(tái)Logo、登錄和注冊(cè)鏈接、搜索框和各種類型的最新二手信息列表組成。主頁(yè)面效果如圖41所示:圖41 主頁(yè)面系統(tǒng)的主頁(yè)6由六部分構(gòu)成:頁(yè)面頭文件,左側(cè)分類頁(yè)面,編輯推薦頁(yè)面,最新發(fā)布頁(yè)面,已經(jīng)賣出頁(yè)面,和底部的版權(quán)信息頁(yè)面。其中頭文件和版權(quán)信息頁(yè)面是固定的,其它的頁(yè)面是通過(guò)Struts2標(biāo)簽引入的,例如編輯推薦頁(yè)面可以這樣引入:s:action name=remend executeResult=true namespace=/main/s:action。其中name對(duì)應(yīng)的是頁(yè)面加載時(shí)要自動(dòng)訪問(wèn)的action類的配置名字,頁(yè)面訪問(wèn)這個(gè)action之后會(huì)把結(jié)果返回并加載到主頁(yè)面上,這樣就構(gòu)成了整個(gè)主頁(yè)面的所有信息。 信息頁(yè)顯示設(shè)計(jì)信息頁(yè)主要是根據(jù)用戶點(diǎn)擊的分類進(jìn)行相應(yīng)的顯示,同時(shí)加入了分頁(yè)操作,對(duì)于信息量多的分類可以分頁(yè)顯示。當(dāng)用戶點(diǎn)擊了相應(yīng)的圖書分類之后就會(huì)跳轉(zhuǎn)到這個(gè)頁(yè)面。便于用戶更直觀的選擇相應(yīng)分類的二手書信息。效果圖如圖42所示:圖42 信息顯示頁(yè)面 系統(tǒng)登錄功能設(shè)計(jì)由于游客、普通用戶、管理員權(quán)限不同,為此系統(tǒng)增加了登錄功能,為普通用戶、管理員的不同的特殊操作提供接口。普通用戶登錄之后只能發(fā)表信息和查看購(gòu)買信息,以及其他人對(duì)自己發(fā)布信息的留言等。系統(tǒng)登錄功能是所有動(dòng)態(tài)網(wǎng)站都要具有的功能,如何確保登錄安全是我們都要考慮的一個(gè)問(wèn)題,在本系統(tǒng)中在用戶注冊(cè)時(shí)就對(duì)用戶輸入的密碼進(jìn)行了MD5不可逆數(shù)據(jù)加密,加密后的密碼位數(shù)足以防止暴力破解,所以此處登錄的設(shè)計(jì)完全可以防止任何的暴力破解,以及密碼攻擊性的惡意登錄破解。登錄流程簡(jiǎn)單描述為輸入用戶名和密碼之后提交表單,當(dāng)數(shù)據(jù)到達(dá)后臺(tái)之后,系統(tǒng)去數(shù)據(jù)庫(kù)驗(yàn)證帳號(hào)和密碼的正確與否,如果用戶名和密碼正確則保存登錄信息同時(shí)返回主頁(yè),登錄失敗返回登錄頁(yè)面。同時(shí)當(dāng)?shù)卿浭r(shí)會(huì)在登錄頁(yè)面以紅字提示用戶名或者密碼錯(cuò)誤,如果用戶之前沒(méi)有注冊(cè)過(guò),此時(shí)可以通過(guò)右下方的注冊(cè)用戶連接進(jìn)行賬戶的注冊(cè),本登錄頁(yè)面設(shè)計(jì)以美觀和簡(jiǎn)潔為主。如圖43所示:圖43 用戶登錄界面圖登錄成功后,普通用戶、管理員都將在主頁(yè)面顯示用戶的基本信息。登錄成功效果圖如圖44所示:圖44 用戶登錄成功效果圖 系統(tǒng)搜索功能設(shè)計(jì)系統(tǒng)搜索時(shí),用Struts攔截搜索請(qǐng)求,并選擇寫好的SearchAction類對(duì)輸入的信息進(jìn)行檢索,在Action類中調(diào)用業(yè)務(wù)層的方法進(jìn)行檢索,業(yè)務(wù)層再調(diào)用Dao對(duì)象通過(guò)Hibernate操作數(shù)據(jù)庫(kù)返回搜索結(jié)果。搜索效果如圖45所示:圖45 搜索結(jié)果顯示圖 用戶注冊(cè)功能設(shè)計(jì),用戶注冊(cè)頁(yè)面由js框架jQuery來(lái)作驗(yàn)證,此處用到了Ajax來(lái)發(fā)送異步請(qǐng)求,判斷用戶輸入的郵箱是否已經(jīng)被注冊(cè),如果被注冊(cè)會(huì)提示用戶換一個(gè)郵箱,其它的信息也會(huì)經(jīng)過(guò)判斷,以確保用戶輸入的注冊(cè)信息的合理性。同時(shí)當(dāng)用戶注冊(cè)成功之后系統(tǒng)會(huì)給用戶發(fā)送激活驗(yàn)證碼,用戶需要登錄注冊(cè)時(shí)的郵箱進(jìn)行激活賬戶操作。 用戶注冊(cè)頁(yè)面設(shè)計(jì)注冊(cè)頁(yè)面包括表單和表單驗(yàn)證。用戶注冊(cè)時(shí),當(dāng)輸入郵箱時(shí)會(huì)通過(guò)Ajax技術(shù)向后臺(tái)發(fā)送這個(gè)郵箱,用于判斷數(shù)據(jù)庫(kù)是否有重復(fù)的郵箱,如果之前這個(gè)郵箱被注冊(cè)過(guò)則這里會(huì)提示:郵箱已經(jīng)存在,其它要填寫的注冊(cè)信息如果為空或者不符合要求也會(huì)報(bào)錯(cuò),此處使用了后臺(tái)生成驗(yàn)證碼,防止程序惡意注冊(cè)。驗(yàn)證碼圖片使用了Struts2的Result組件的流形式來(lái)返回到頁(yè)面生成了當(dāng)前圖片。同時(shí)使用了jQuery進(jìn)行頁(yè)面的友好提示,而不是像很多網(wǎng)站中直接彈出錯(cuò)誤的提示框,此處直接在頁(yè)面提示錯(cuò)誤,更顯人性化。注冊(cè)驗(yàn)證效果如圖46所示:圖46 注冊(cè)驗(yàn)證效果圖 用戶注冊(cè)后激活賬戶的設(shè)計(jì)用戶注冊(cè)后的激活功能是目前很多平臺(tái)都有的功能,之所以加入這個(gè)功能是為了防止不懷好意的人用工具軟件進(jìn)行惡意注冊(cè),這樣會(huì)導(dǎo)致數(shù)據(jù)庫(kù)內(nèi)大量無(wú)用數(shù)據(jù)的增加。當(dāng)正常用戶使用時(shí)由于無(wú)用數(shù)據(jù)的存在使得系統(tǒng)檢索有用的數(shù)據(jù)的時(shí)間增長(zhǎng),這樣就會(huì)帶來(lái)了系統(tǒng)性能的下降,開始可能感覺(jué)不到檢索時(shí)間的差別,當(dāng)數(shù)據(jù)增加到一定的地步時(shí)這種性能的影響就會(huì)很明顯,為此增加了用戶驗(yàn)證的功能,此處使用了一個(gè)開源的郵件工具包jmail組件,只需要簡(jiǎn)單的代碼調(diào)用便可以實(shí)現(xiàn)了郵件發(fā)送功能。用戶注冊(cè)后臺(tái)操作在Action中進(jìn)行,后臺(tái)實(shí)現(xiàn)了將用戶信息插入數(shù)據(jù)庫(kù)并將新注冊(cè)用戶以及用戶權(quán)限放入session。同時(shí)將注冊(cè)碼發(fā)送到用戶郵箱,用戶需要輸入注冊(cè)碼用于賬戶的激活,為了防止激活碼的重復(fù)而導(dǎo)致的激活失敗,此處的激活碼的生成使用了Java的UUID和用戶當(dāng)前ID相結(jié)合而生成的,所謂UUID就是Java虛擬機(jī)根據(jù)當(dāng)前用戶的IP地址,網(wǎng)卡的物理地址而生成的一組字符串,理論上是不會(huì)出現(xiàn)重復(fù)的數(shù)據(jù),并且進(jìn)行了Base64加密運(yùn)算而生成,所以不可能有2個(gè)用戶的注冊(cè)碼是重復(fù)的。此處開發(fā)時(shí)為了方便直接將激活碼放在了頁(yè)面上。如圖47所示:圖47 用戶激活賬戶頁(yè)面 發(fā)布、修改信息設(shè)計(jì)信息的發(fā)布和修改是該系統(tǒng)的最主要功能,只有注冊(cè)用戶或管理員才有權(quán)限進(jìn)行信息發(fā)布,普通用戶只能修改自己發(fā)布的信息,管理員可以修改所有信息和刪除所有信息。信息的發(fā)布和修改共用了同一個(gè)頁(yè)面,頁(yè)面中包含表單和表單驗(yàn)證。表單通過(guò)ActionForm接收,在Action中對(duì)表單的操作根據(jù)信息編號(hào)參數(shù)值判斷執(zhí)行發(fā)布或修改。信息發(fā)布頁(yè)面效果如圖48:圖48 信息發(fā)布頁(yè)面效果圖信息發(fā)布、修改的具體操作在Action中進(jìn)行,Action中首先驗(yàn)證是否為用戶,非用戶則自動(dòng)跳轉(zhuǎn)到登錄頁(yè)面,反之執(zhí)行相應(yīng)操作。信息發(fā)布、修改時(shí)需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行多次讀寫操作,這些操作都是由Hibernate將數(shù)據(jù)進(jìn)行持久化 信息管理設(shè)計(jì)信息管理分為普通用戶個(gè)人信息管理和管理員會(huì)員信息管理。管理頁(yè)面顯示了要管理信息的重要信息,并提供鏈接可進(jìn)入詳細(xì)信息頁(yè)面。每個(gè)信息都有修改、刪除按鈕。這里只介紹已經(jīng)發(fā)布的信息管理頁(yè)面,頁(yè)面效果如圖49所示:圖49 個(gè)人信息管理效果圖 用戶管理設(shè)計(jì)用戶管理是指網(wǎng)站管理員對(duì)所有注冊(cè)用戶進(jìn)行管理的一個(gè)模塊,這個(gè)模塊從技術(shù)上來(lái)說(shuō)是最復(fù)雜的一個(gè)模塊,操作時(shí)涉及的表最多,對(duì)普通注冊(cè)后激活的用戶或者沒(méi)有激活的用戶的管理是不同的,如果用戶注冊(cè)之后長(zhǎng)期沒(méi)有激活則會(huì)隨著數(shù)據(jù)量的增多造成數(shù)據(jù)庫(kù)的臟數(shù)據(jù)的存在,會(huì)影響數(shù)據(jù)庫(kù)的性能,為此增加了管理員可以對(duì)這個(gè)用戶進(jìn)行刪除操作,刪除的操作是不可逆的,用戶被刪除之后無(wú)法恢復(fù)。對(duì)于那些已經(jīng)注冊(cè)了的用戶,這些用戶會(huì)發(fā)表信息等,但是如果管理員發(fā)現(xiàn)某些用戶發(fā)表不符合國(guó)家政策法規(guī)規(guī)定的內(nèi)容或者發(fā)布廣告信息,而不是交易信息時(shí),管理員也需要對(duì)這些用戶進(jìn)行處理,此處的處理就是永久性的刪除。當(dāng)這些用戶信息被刪除之后,該用戶所發(fā)表的所有交易信息也會(huì)被同時(shí)刪除,因?yàn)楸碇g外鍵的關(guān)聯(lián)關(guān)系,如果用戶不存在了他所發(fā)表的信息也就沒(méi)有實(shí)際意義了因此刪除操作是對(duì)應(yīng)多個(gè)附屬操作的,同時(shí)發(fā)表的信息被刪除后則信息所對(duì)應(yīng)的評(píng)論則也會(huì)被刪除,因此人員管理是一個(gè)一連串的數(shù)據(jù)庫(kù)操作。對(duì)于用戶管理是只有管理員才有權(quán)限刪除的,用戶管理界面效果圖如圖410所示:圖410用戶管理界面效果圖 信息留言設(shè)計(jì)登錄用戶可以對(duì)信息進(jìn)行留言,留言會(huì)立刻顯示在信息詳細(xì)下面,這些信息會(huì)連同留言表單內(nèi)容傳入Action中進(jìn)行插入操作。留言界面效果如圖411所示:圖411留言界面效果圖留言成功后返回到當(dāng)前留言之前的頁(yè)面,同時(shí)顯示出當(dāng)前添加的留言和之前添加的留言,按留言的先后順序顯示留言內(nèi)容。為了保證發(fā)布者和留言者能夠溝通,所以留言者的聯(lián)系方式需要填寫,此處的聯(lián)系方式既可以寫電話,手機(jī)也可以寫郵箱,號(hào)等。結(jié)論及尚存在的問(wèn)題本次畢業(yè)設(shè)計(jì)經(jīng)過(guò)2次大的變動(dòng),第一次我用JSP+Servlet+JavaBeans/EJB完成了它,但是隨著學(xué)習(xí)的不斷加深,我又學(xué)到了很多新的技術(shù),例如Struts2,Spring,Hibernate框架等。于是又重新寫了這個(gè)系統(tǒng),將所學(xué)的新技術(shù)應(yīng)用到上面。同時(shí)Java語(yǔ)言是真正的跨平臺(tái),本系統(tǒng)我最先是在Linux系統(tǒng)下完成的,為了寫本論文的方便于是將其轉(zhuǎn)移到了Windows平臺(tái),足以看出它的平臺(tái)無(wú)關(guān)性,正如Java的本質(zhì):“一次編寫,到處運(yùn)行”。同時(shí)對(duì)系統(tǒng)的分層架構(gòu),層與層之間留下調(diào)用的接口,上一層只需要調(diào)用下一層的接口便能實(shí)現(xiàn)所有的功能,而不需要關(guān)心各層是怎樣實(shí)現(xiàn)的,這就是面向接口的編程,Spring的創(chuàng)始人就提出過(guò)這種思想。這樣能夠讓人非常簡(jiǎn)單方便地構(gòu)建安全高速的WEB應(yīng)用。同時(shí)可以通過(guò)JDBC(Java DataBase Comnectivity)接口,和Hibernate接口訪問(wèn)幾乎所有數(shù)據(jù)庫(kù),并且可以使用數(shù)據(jù)庫(kù)連接池技術(shù),有效控制連接數(shù),確保系統(tǒng)的正常運(yùn)轉(zhuǎn)。從發(fā)展的眼光來(lái)看,Java的前途一片光明。在這個(gè)系統(tǒng)開發(fā)過(guò)程中,我對(duì)Strut2,Spring,Hibernate框架的學(xué)習(xí)是從零開始,寫過(guò)許多測(cè)試案例。每次的新發(fā)現(xiàn)我都運(yùn)用到這個(gè)系統(tǒng)中,在運(yùn)用中,對(duì)它的掌握也更加熟練。系統(tǒng)運(yùn)用Struts框架,是基于MVC模式,這種模式在該系統(tǒng)的開發(fā)過(guò)程中經(jīng)常用到,參閱了很多相關(guān)的書籍,包括Apache官方網(wǎng)站的英文幫助文檔,不僅解決了很多問(wèn)題,也提高了自己的英文水平。系統(tǒng)中所有的頁(yè)面,都沒(méi)有使用Java代碼,而是用到了Struts標(biāo)簽和EL表達(dá)式,使頁(yè)面上代碼簡(jiǎn)捷,易懂,易改。經(jīng)過(guò)2個(gè)月左右的設(shè)計(jì)與開發(fā),系統(tǒng)終于基本開發(fā)完成,各項(xiàng)預(yù)期功能都已得到實(shí)現(xiàn),并且還具有進(jìn)一步的擴(kuò)展空間,將會(huì)伴隨著日后的使用逐步完成。設(shè)計(jì)和開發(fā)過(guò)程中遇到的問(wèn)題也都得到解決,學(xué)到了很多開發(fā)經(jīng)驗(yàn),受益無(wú)窮。 附 錄本系統(tǒng)最重要的特點(diǎn)是用Hibernate進(jìn)行數(shù)據(jù)庫(kù)持久化操作,最關(guān)鍵的類是Hibernate Session工廠類,該類主要用于方便的提供Hibernate的初始化以及Hibernate的sessioon和事務(wù)的處理。HibUtil的代碼如下:package 。import 。import 。import 。public class HibUtil { private static SessionFactory sessionFactory。 private static ThreadLocalSession threadlocal = new ThreadLocalSession()。 static { try { sessionFactory = new Configuration
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1