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

正文內(nèi)容

畢業(yè)設(shè)計-基于struts2和hibernate框架的bbs論壇系統(tǒng)(編輯修改稿)

2025-01-08 19:15 本頁面
 

【文章內(nèi)容簡介】 BLIC //Hibernate/Hibernate Configuration DTD hibernateconfiguration sessionfactory ! Database connection settings這句話是用來 連接到 MySQL的 MyBBS這個 database里去的,用戶名為 root,用戶密碼為 admin。還用到了 jdbc這個 jar包所以也必須要引入 jdbc這個 jar包,這個包是連接數(shù)據(jù)庫必不可少的工具包所以一定要引入。 property name=/property property name=jdbc: property name=root/property property name=admin/property ! SQL dialect property name=dialect/property ! Disable the secondlevel cache property name=/property ! Echo all executed SQL to stdout property name=show_sqltrue/property ! Drop and recreate the database schema on startup property name=update/property mapping class=/ mapping class=/ /sessionfactory /hibernateconfiguration 其中 property name=/property property name=jdbc: property name=root/property property name=admin/property 其中 mapping class=/ mapping class=/ 這兩句是為了讓 Hibernate認(rèn)識 JAVA的實體 bean類, Article和 User這兩個實體類的包,即是直接引入了這兩個 Class類,通過這兩個類來生成對應(yīng)字段的數(shù)據(jù)庫。 @Entity并且定義 Article類的各種私有屬性,包 括id,pid,title,cont,pdate,isleaf,writer然后編寫各自的 set和 get方法。并且在 id的 get方法前加上標(biāo)簽@Id和 @GeneratedValue以便于 Hibernate調(diào)用他自動生成自增長的主鍵。 12 ,設(shè)定他的私有屬性 id,username,password,state,pdate,, Userqusetion,useranswer等等,然后設(shè)置主鍵和自增長。 這兩個實體 JAVA類對應(yīng)在數(shù)據(jù)庫中就是兩張表一張 uers一張 article,通過 annotation的 @Entity來識別其中類中的每個私有屬性都代表了數(shù)據(jù)庫中相應(yīng)表格下的一個字段通過 @Id來確認(rèn)主 @GeneratedValue來生成自動增長的字段。 ( 1)登錄功能 登錄功能是注冊用戶,游客和管理員都有可能會用到的功能,本項目的登錄界面如下圖 圖 10登陸界面示意圖) 展示 。 圖 10 登 陸界面示意圖 登錄界面相當(dāng)簡單主要就是一個表單 form method=post id=loginForm action=UserAction!login focus=這個表單是提交到 UserAction這個類的 login方法,通過login這個方法來接受表單 提交的用戶名和密碼是否合法。頁面跳轉(zhuǎn)提交數(shù)據(jù)我是利用 Struts2來實現(xiàn)的,主要就是一個 UserAction類中的 login這個方法的實現(xiàn)需要設(shè)計下,我設(shè)計的方法是這樣的: public String login() { if(LOGIN_MANAGER.equals((user))) { HttpServletRequest request = ()。 HttpSession session = ()。 (LOGINUSER, user)。 (MANAGER, user)。 return login_manager_success。 } else if(LOGIN_USER.equals((user))) { 13 HttpServletRequest request = ()。 HttpSession session = ()。 (LOGINUSER, user)。 return login_user_success。 } else { return login_false。 } } 通過這個 login方法可以驗證表單傳過來的到底是注冊用戶還是管理員或者是還沒注冊過的用戶,若是管理員就在 session中將管理員的信息保存進(jìn)去,并且返回一條管理員登錄成功的信息login_manager_success。如果是注冊用戶也在 session中保存信息,并且也返回一條用戶登錄成功的信息 login_user_success;如果是未注冊過的用戶那么也會返回登錄失敗信息“ login_false” 然后通過Struts2的配置文件 。相應(yīng)的 下: action name=UserAction class= result name=login_user_success type=redirectAction param name=actionNameArticleAction/param param name=methodindex/param param name=page0/param /result result name=login_manager_success/result result name=login_manager_successadmin//result result name=login_false/result 這個配置文件的作用相當(dāng)于一個調(diào)度著,他根據(jù)返回信息的不同將頁面跳轉(zhuǎn)到相應(yīng)的 頁面,若接受到得信息是“ login_false”便將頁面跳轉(zhuǎn)到 ,也就是說如果密碼不正確或者非注冊用戶便會返回到登錄頁面,讓用戶再次輸入或者選擇注冊。 (2)主題帖的展現(xiàn) 作為論壇來說,展示主題帖子是個必須的功能,這是用戶來了解大概內(nèi)容的途徑,如下圖 圖 11主題帖的展示圖示 。 主題帖子羅列出來的都是主題帖,用戶點(diǎn)擊這些主題帖能夠進(jìn)入詳細(xì)的內(nèi)容,能看見對主題帖的回復(fù)或者是對回復(fù)的回復(fù),主題帖的分頁顯示是這個項目里面比較有難度的一段,我的完成代碼如下: % ArticleDao ad = new ArticleDaoImpl()。 int maxRecords = 10。 int getPage = (Integer)(PAGEOFROOT)。 ListArticle rootarticles = new ArrayList()。 rootarticles = ()。 int sumRecords = ()。 int maxPage = (sumRecords%maxRecords==0)?(sumRecords/maxRecords):((sumRecords/maxRecords)+1)。 14 rootarticles = (maxRecords*getPage,(getPagemaxPage1)?maxRecords:sumRecordsmaxRecords*getPage)。 String name = null。 % 圖 11 主題帖的展示圖示 這 段代碼 中 rootarticles 是將要 顯示的 分頁后 的帖子 ,通過調(diào) 用 ArticleDaoImpl類的getRootArticle(int startIndex, int maxResults)這個方法來得到需要展示的帖子,返回的值是一個裝了 Article類型的 List只要遍歷這個 List我們就能取出每一條帖子了。 這個方法的代碼如下: public List getRootArticle(int startIndex, int maxResults) { ListArticle list = new ArrayList()。 SessionFactory sf = ()。 Session session = ()。()。 Query q = (from Article article where =0 order by desc)。 list = (startIndex).setMaxResults(maxResults).list()。 ().mit()。 ()。()。return list。} 15 其中使用到了 Hibernate的 HSQL語言來取得數(shù)據(jù)庫中的數(shù)據(jù),返回裝滿信息的 List。然后在 通過 遍歷 %if(rootarticles!=null) { for(Article a : rootarticles) { % 來取得每條帖子的內(nèi)容將他們展示在 trtd之中就能完美的解決分頁的問題。 ( 3)詳細(xì)內(nèi)容的展現(xiàn) 當(dāng)點(diǎn)擊主題帖中的任意一條帖子是,就需要彈出他和他回復(fù)貼的詳細(xì)內(nèi)容,這就需要設(shè)計展示詳細(xì)內(nèi)容的頁面來完成功能了 如下圖 圖 12詳細(xì)信息展示帖示意圖 圖 12 詳細(xì)信息展示 帖示意圖 這個頁面的重要的地方也在于它的分頁顯示,但是詳細(xì)頁面的展示和主題帖的展示是有區(qū)別,主題帖展示的所有的主題信息的標(biāo)題,而詳細(xì)信息不僅要展示點(diǎn)擊的主題帖子的內(nèi)容和標(biāo)題還要展示所有的它的子帖的所有內(nèi)容,這就需要我們通過遞歸調(diào)用來得到所有的主題帖的子貼了。遞歸這個思想是很奇妙的思想,他雖然有時候只有幾段短短的代碼,卻能完成很多很難完成的任務(wù),編寫遞歸最重要的是找到程序的入口和停止遞歸的條件,我采用了如下設(shè)計 : public List getTreeArticles(Article article) { ArticleTree at = new ArticleTree()。 List list = new ArrayList()。 SessionFactory sf = ()。 Session session = ()。 ()。 Query q = (from Article article where 16 =+()+ order by asc)。 for(Article a:(ListArticle)()) { (a)。 } (list, article)。 ().mit()。 ()。 ()。 return list。 } getTreeArticles(Article article)這個方法傳進(jìn)去的是主題帖的對象,返回的是所有這個主題帖的子帖的 List,當(dāng)然這個方法本身并沒有遞歸的思想在里面但是需要注意的是這個方法所調(diào)用的一個方法 tree( list, article)這個方法是個遞歸的方法代碼如下 public void t
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1