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

正文內(nèi)容

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

2025-01-08 19:15 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 BLIC //Hibernate/Hibernate Configuration DTD hibernateconfiguration sessionfactory ! Database connection settings這句話(huà)是用來(lái) 連接到 MySQL的 MyBBS這個(gè) database里去的,用戶(hù)名為 root,用戶(hù)密碼為 admin。還用到了 jdbc這個(gè) jar包所以也必須要引入 jdbc這個(gè) jar包,這個(gè)包是連接數(shù)據(jù)庫(kù)必不可少的工具包所以一定要引入。 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)識(shí) JAVA的實(shí)體 bean類(lèi), Article和 User這兩個(gè)實(shí)體類(lèi)的包,即是直接引入了這兩個(gè) Class類(lèi),通過(guò)這兩個(gè)類(lèi)來(lái)生成對(duì)應(yīng)字段的數(shù)據(jù)庫(kù)。 @Entity并且定義 Article類(lèi)的各種私有屬性,包 括id,pid,title,cont,pdate,isleaf,writer然后編寫(xiě)各自的 set和 get方法。并且在 id的 get方法前加上標(biāo)簽@Id和 @GeneratedValue以便于 Hibernate調(diào)用他自動(dòng)生成自增長(zhǎng)的主鍵。 12 ,設(shè)定他的私有屬性 id,username,password,state,pdate,, Userqusetion,useranswer等等,然后設(shè)置主鍵和自增長(zhǎng)。 這兩個(gè)實(shí)體 JAVA類(lèi)對(duì)應(yīng)在數(shù)據(jù)庫(kù)中就是兩張表一張 uers一張 article,通過(guò) annotation的 @Entity來(lái)識(shí)別其中類(lèi)中的每個(gè)私有屬性都代表了數(shù)據(jù)庫(kù)中相應(yīng)表格下的一個(gè)字段通過(guò) @Id來(lái)確認(rèn)主 @GeneratedValue來(lái)生成自動(dòng)增長(zhǎng)的字段。 ( 1)登錄功能 登錄功能是注冊(cè)用戶(hù),游客和管理員都有可能會(huì)用到的功能,本項(xiàng)目的登錄界面如下圖 圖 10登陸界面示意圖) 展示 。 圖 10 登 陸界面示意圖 登錄界面相當(dāng)簡(jiǎn)單主要就是一個(gè)表單 form method=post id=loginForm action=UserAction!login focus=這個(gè)表單是提交到 UserAction這個(gè)類(lèi)的 login方法,通過(guò)login這個(gè)方法來(lái)接受表單 提交的用戶(hù)名和密碼是否合法。頁(yè)面跳轉(zhuǎn)提交數(shù)據(jù)我是利用 Struts2來(lái)實(shí)現(xiàn)的,主要就是一個(gè) UserAction類(lèi)中的 login這個(gè)方法的實(shí)現(xiàn)需要設(shè)計(jì)下,我設(shè)計(jì)的方法是這樣的: 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。 } } 通過(guò)這個(gè) login方法可以驗(yàn)證表單傳過(guò)來(lái)的到底是注冊(cè)用戶(hù)還是管理員或者是還沒(méi)注冊(cè)過(guò)的用戶(hù),若是管理員就在 session中將管理員的信息保存進(jìn)去,并且返回一條管理員登錄成功的信息login_manager_success。如果是注冊(cè)用戶(hù)也在 session中保存信息,并且也返回一條用戶(hù)登錄成功的信息 login_user_success;如果是未注冊(cè)過(guò)的用戶(hù)那么也會(huì)返回登錄失敗信息“ login_false” 然后通過(guò)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 這個(gè)配置文件的作用相當(dāng)于一個(gè)調(diào)度著,他根據(jù)返回信息的不同將頁(yè)面跳轉(zhuǎn)到相應(yīng)的 頁(yè)面,若接受到得信息是“ login_false”便將頁(yè)面跳轉(zhuǎn)到 ,也就是說(shuō)如果密碼不正確或者非注冊(cè)用戶(hù)便會(huì)返回到登錄頁(yè)面,讓用戶(hù)再次輸入或者選擇注冊(cè)。 (2)主題帖的展現(xiàn) 作為論壇來(lái)說(shuō),展示主題帖子是個(gè)必須的功能,這是用戶(hù)來(lái)了解大概內(nèi)容的途徑,如下圖 圖 11主題帖的展示圖示 。 主題帖子羅列出來(lái)的都是主題帖,用戶(hù)點(diǎn)擊這些主題帖能夠進(jìn)入詳細(xì)的內(nèi)容,能看見(jiàn)對(duì)主題帖的回復(fù)或者是對(duì)回復(fù)的回復(fù),主題帖的分頁(yè)顯示是這個(gè)項(xiàng)目里面比較有難度的一段,我的完成代碼如下: % 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 是將要 顯示的 分頁(yè)后 的帖子 ,通過(guò)調(diào) 用 ArticleDaoImpl類(lèi)的getRootArticle(int startIndex, int maxResults)這個(gè)方法來(lái)得到需要展示的帖子,返回的值是一個(gè)裝了 Article類(lèi)型的 List只要遍歷這個(gè) List我們就能取出每一條帖子了。 這個(gè)方法的代碼如下: 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語(yǔ)言來(lái)取得數(shù)據(jù)庫(kù)中的數(shù)據(jù),返回裝滿(mǎn)信息的 List。然后在 通過(guò) 遍歷 %if(rootarticles!=null) { for(Article a : rootarticles) { % 來(lái)取得每條帖子的內(nèi)容將他們展示在 trtd之中就能完美的解決分頁(yè)的問(wèn)題。 ( 3)詳細(xì)內(nèi)容的展現(xiàn) 當(dāng)點(diǎn)擊主題帖中的任意一條帖子是,就需要彈出他和他回復(fù)貼的詳細(xì)內(nèi)容,這就需要設(shè)計(jì)展示詳細(xì)內(nèi)容的頁(yè)面來(lái)完成功能了 如下圖 圖 12詳細(xì)信息展示帖示意圖 圖 12 詳細(xì)信息展示 帖示意圖 這個(gè)頁(yè)面的重要的地方也在于它的分頁(yè)顯示,但是詳細(xì)頁(yè)面的展示和主題帖的展示是有區(qū)別,主題帖展示的所有的主題信息的標(biāo)題,而詳細(xì)信息不僅要展示點(diǎn)擊的主題帖子的內(nèi)容和標(biāo)題還要展示所有的它的子帖的所有內(nèi)容,這就需要我們通過(guò)遞歸調(diào)用來(lái)得到所有的主題帖的子貼了。遞歸這個(gè)思想是很奇妙的思想,他雖然有時(shí)候只有幾段短短的代碼,卻能完成很多很難完成的任務(wù),編寫(xiě)遞歸最重要的是找到程序的入口和停止遞歸的條件,我采用了如下設(shè)計(jì) : 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)這個(gè)方法傳進(jìn)去的是主題帖的對(duì)象,返回的是所有這個(gè)主題帖的子帖的 List,當(dāng)然這個(gè)方法本身并沒(méi)有遞歸的思想在里面但是需要注意的是這個(gè)方法所調(diào)用的一個(gè)方法 tree( list, article)這個(gè)方法是個(gè)遞歸的方法代碼如下 public void t
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1