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

正文內(nèi)容

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

2025-06-27 18:58本頁面
  

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