【正文】
//通過(guò)空間 id找到空間對(duì)象 (space)。 String ip = (String)().getRemoteAddr()。 Transaction tx = ()。 private Integer sid。留言管理主要包括有對(duì)留 言的添加,刪除,查詢(xún),下面以 添加 留言代碼為例, 添加 留言代碼如下 (省略 getter(),setter()方法 )所示 : public class AddCommentAction extends ActionSupport { private String name。 return addCategorySuccess。 //將空間對(duì)象保存到分 類(lèi) (c)。 Space space =(Space)(, new Integer(sid))。 s= (Space) (0)。 //將名稱(chēng)保存到分類(lèi) 32 List list = (List)().getSession(true).getAttribute(slist)。 Category c = new Category()。 //從添加分類(lèi)頁(yè)面獲取分類(lèi)名稱(chēng) public String execute(){ Session session = ().getCurrentSession()。博主可以在寫(xiě)日志前先設(shè)定分類(lèi),分類(lèi)管理 主要包括有添加,修改,刪除。 return addReplySuccess。 //將時(shí)間保存到評(píng)論 (reply)。//格式化時(shí)間 Date dt = new Date()。 (post)。 //將內(nèi)容保存到評(píng)論 (rname)。 Reply reply = new Reply()。 public String execute() { Session session = () .getCurrentSession()。 private String rname。 } } 根 據(jù) I D 查 詢(xún) 日 志是 否 存 在 所 查 日 志刪 除 日 志 記 錄是否30 日志評(píng)論模塊 日志評(píng)論也就是對(duì)博主發(fā)表的日志進(jìn)行評(píng)論 ,評(píng)論者可以是任何人 ,評(píng)論者進(jìn)行評(píng)論時(shí)就會(huì)在數(shù)據(jù)庫(kù)評(píng)論表中留下一條記錄 ,評(píng)論者評(píng)論時(shí)需要留下用戶名 ,評(píng)論后系統(tǒng)會(huì)自動(dòng)記錄評(píng)論的時(shí)間和 IP 地址。 //刪除 post ()。 //通過(guò) id找到 post對(duì)象列表 post = (Post) (0)。 PostDao pdao = new PostDaoHibernate()。 Session session = ().getCurrentSession()。 //獲取 post的 id public String execute() { Integer pid = (id)。 } } 刪除日志首先要根據(jù)日志 ID 查詢(xún)所要?jiǎng)h除的日志,然后執(zhí)行刪除指令對(duì)日志進(jìn)行刪除,刪除指令將刪除日志的所有信息。 //更新 post ()。 (category)。 //獲取 post對(duì)象 (title)。 List plist=(List) (pid)。 PostDao pdao= new PostDaoHibernate()。 //通過(guò)分類(lèi)名找到分類(lèi)對(duì)象 Integer cid = ()。 CategoryDao dao = new CategoryDaoHibernate()。 //通過(guò) session獲取空間列表 Space s = (Space) (0)。 Transaction tx = ()。 public String execute() throws Exception{ Post post=null。 private String ame。 private String title。 } } 添加日志頁(yè)面如下圖 44 所示 : 圖 44 添加日志頁(yè)面 27 修改日志首先要根據(jù)日志 ID 查詢(xún)到所要修改的日志 ,然后從數(shù)據(jù)庫(kù)中讀取日志的相關(guān)信息到修改日志頁(yè)面 ,最后通過(guò)日志 ID更新操作 插入數(shù)據(jù)庫(kù) ,修改日志頁(yè)面與添加日志頁(yè)面基本相同。 //將 post對(duì)象保存 ()。 ((dt))。 SimpleDateFormat sdf=new SimpleDateFormat(yyyy年 MM月 dd日 HH:mm:ss)。 (space)。 Category category = (Category) (, new Integer(cid))。 Category c = (ame, sid)。 //獲取要添加日志的所在空間 Integer sid = ()。 List list = (List) ().getSession(true).getAttribute(spacelist)。 //定義一個(gè) Post類(lèi)型的對(duì)象 post (title)。 Transaction tx = ()。 private String ame。 private String title。 //登錄成功 ,返回登錄成功頁(yè)面 } } } 日志管理模塊 日志管理模塊主要包括的功能有對(duì)日志的添加,修改,刪除,查詢(xún),詳 細(xì)情況如下 : 在添加日志時(shí)首先選擇日志所屬的分類(lèi),選擇分類(lèi)后再向日志表中插入日志內(nèi)容,日志內(nèi)容包括日志標(biāo)題,內(nèi)容,添加內(nèi)容部分采用現(xiàn)今流行的 HTML 編輯器 ckeditor。 //登錄錯(cuò)誤 ,仍返回登錄頁(yè)面 } else { ().getSession(true).setAttribute(account, account)。 ().setAttribute(message, message)。 PersonDao dao = new PersonDaoHibernate()。 //從登錄頁(yè)面接收 到帳號(hào) private String password。 注冊(cè)頁(yè)面如圖 42 所示 : 圖 42 注冊(cè)頁(yè)面 24 登錄功能的操作流程為根據(jù)用戶所填寫(xiě)的登錄信息去用戶表里查詢(xún),如果有該記錄,則說(shuō)明登錄成功,然后根據(jù)用戶 ID 從空間信息表里取出信息,最后初始化用戶信息和用戶空間信息 ,登錄成功就跳轉(zhuǎn)到用戶博客首頁(yè)。 登錄與注冊(cè)模塊 用戶通過(guò)填寫(xiě)注冊(cè)頁(yè)面的的要求完成注冊(cè),注冊(cè)時(shí)需要符合系統(tǒng)對(duì)用戶注冊(cè)的要求,如用戶名不能重復(fù),輸入正確的驗(yàn)證碼等。 } public static SessionFactory getSessionFactory() { 22 return sessionFactory。 HibernateSessionFactoryUtil 代碼如下 所示 : public class HibernateSessionFactoryUtil { private static SessionFactory sessionFactory。 ? Link Bean 用來(lái)保存超鏈接的信息,包括 :超鏈接 ID,超鏈接標(biāo)題,超鏈接內(nèi)容和超鏈接所屬空間。 ? Reply Bean 用來(lái)保存日志評(píng)論的信息,包括 :評(píng)論 ID,評(píng)論者名字,評(píng)論內(nèi)容, 評(píng)論數(shù),評(píng)論時(shí)間,評(píng)論 IP 和評(píng)論所屬日志。 ? Post Bean 用來(lái)保存用戶日志的信息,包括 :日志 ID,標(biāo)題,內(nèi)容,被點(diǎn)擊數(shù),創(chuàng)建時(shí)間,所屬空間以及所 屬分類(lèi)。 Java Bean 類(lèi)圖如下 41 所示 (圖中省略了 getter()和 setter()方法 ): 圖 41 Java Bean 類(lèi)圖 i d : I n t e g e r a c c o u n t : S t r i n g p a s s w o r d : S t r i n g n a m e : S t r i n g e m a i l : S t r i n g s e x : S t r i n g d a t e C r e a t e d : S t r i n g i p C r e a t e d : S t r i n g i s A d m i n : i n tp e r s o n i d : I n t e g e r n a m e : S t r i n g d e s : S t r i n gs p a c e i d : I n t e g e r t i t l e : S t r i n g c o n t e n t : S t r i n g h i t : I n t e g e r d a t e C r e a t e d : S t r i n g s p a _ i d : I n t e g e r c a t _ i d : I n t e g e rp o s t i d : I n t e g e r n a m e : S t r i n g s p a _ i d : I n t e g e rc a t e g o r y i d : I n t e g e r n a m e : S t r i n g c o n t e n t : S t r i n g f l o o r : i n t d a t e C r e a t e d : S t r i n g i p C r e a t e d : S t r i n g p o s t _ i d : I n t e g e rr e p l y i d : I n t e g e r n a m e : S t r i n g c o n t e n t : S t r i n g f l o o r : i n t d a t e C r e a t e d : S t r i n g i p C r e a t e d : S t r i n g s p a _ i d : I n t e g e rc o m m e n t i d : I n t e g e r t i t l e : S t r i n g u r l : S t r i n g s p a _ i d : I n t e g e rl i n k111*1*1**1*1*121 如圖 41 所示 : ? Person Bean 用來(lái)保存用戶的基本信息 ,包括 :用戶 ID,帳號(hào) ,密碼 ,昵稱(chēng) ,電子郵箱 ,性別 ,注冊(cè)時(shí)間 ,注冊(cè) IP,是否為管理員。其他類(lèi)為次要,在此不另外說(shuō)明。 W i n d o w s O S ( D B )U s e r P CW i n d o w s O SM y S Q LT o m c a tJ S PB l o g S y s t e mJSP解析C a l l3 3 0 6T C P / I PB r o w s e rH T T P8 0 8 020 第 4章 系統(tǒng)詳細(xì)設(shè)計(jì) 與實(shí)現(xiàn) 本章將描述整個(gè)博客系統(tǒng)最核心的部分,主要從各功能的具體設(shè)計(jì)方法和主要實(shí)