網站包括 商家博客,個人博客,論壇,新聞等
設計採用了MVC模式,具體調用的時候採用了命令模式 數據操作層Model中,例如;BlockDAO,TopicDAO,ResponseDAO,UserDAO等。 裏面封裝了一個對象所有的數據操作
視圖/傳輸層 View 例如BlockDTO,TopicDTO等,主要是對象的屬性 jsp用它來顯示,dao用它作爲DTO
最後就是控制層 Controll 控制層的類都繼承了Service接口 裏面有一個方法 execute(ServletContext context, HttpServletRequest request, HttpServletResponse response) { } ,因爲使用命令模式,後面會說明 例如 ManageBlock, ManageTopic等 主要是接收請求然後調用DAO,把結果返回給jsp
調用的時候,我採用的是命令模式 一個所有請求的總入口Servlet被影射到controll.do;他獲取Service的類名,然後 實例化這個類,調用對應的方法 例如 ../controll.do?Service=ManageBlock&action=save
下面說說安全架構: 網站採用J2EE的身份認證系統,通過對不同路徑的權限限制來做到不用角色具有不同操作捐獻 例如:bbs/user/* 下主要是普通用戶的操作權限 想新建帖子的時候,請求地址是 bbs/user/insertTopic.jsp
bbs/blockAdmin/*主要是板塊管理員的權限 bbs/bbsAdmin/* 下是論壇管理員的權限 bbs/sysAdmin/* 下主要是系統管理員的權限
最後再說說緩存, 緩存的內容主要是數據源,所有板塊分類,所有板塊的信息[因爲這些內容不多,而且使用 比較頻繁];還緩存了最新的N個帖子,和點擊率最高的N個帖子; 另外還緩存了N[差不多是每個板塊前5頁的]個帖子點擊數
因爲緩存主要有兩類,一個是隻讀,一種是讀寫。數據源就屬於只讀的,點擊數就屬於讀寫的
我設計了兩個緩存接口,一個CacheRObject,一個CacheRWObject CacheRObject裏有個init()和 get(key)方法, init()當然是初始化或者更新緩存的時候用 get方法就是獲取被緩存的對象 CacheRWObject裏有init(),save()和get(key)方法 這裏多出來的save()就是把緩存裏的內容更新到sql數據庫中
具體要緩存什麼東西,只要寫一個類繼承CacheRObject,或者CacheRWObject
例如
緩存的屬性設置都是些在cache.xml配置文件中,包括緩存大小,要更新那些緩存對象 更新的間隔等等 服務器啓動的時候,獲取這些設置,初始化緩存; 同時服務器關閉的時候把所有CacheRWObject類型緩存中的內容保存到數據庫
---其實做這個網站前我從來沒做過什麼大的java項目,在jdon中也只是一個潛水者,通過這個網站真的學了很多東西,在這裏要特別感謝bang大哥和其他各位jdon的兄弟,
說實在的這個網站還有很多自己不滿意的地方,希望大家一起交流一起進步
哦,網站地址:www.cityxiu.com 大家可以去看看
還有bang大哥,我把咱們jdon的logo放到我們論壇的下面了,算是做點貢獻吧
|
|