<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鯉魚論壇 研究筆記(未)

    2008.10.21第一天
    網站地址: http://www.liyunet.com/
    源碼下載: http://www.liyunet.com/bbs/download.jsp

    我主要是利用該論壇的簡易性來研究JSP技術,以及緩存技術。雖然說目前大部分論壇應用的都是主流框架技術,但說回來,這些框架也只是對JSP等相關技術的一個封裝,而了解底部應用及其原理更容易讓我理解主流框架的內部原理機制。不至于讓框架把我們變成“傻子”。


    那就開始吧
    首先,和某些大蝦一樣的習慣,我們從WEB-INF下的web.xml開始,從以下代碼中可以發現隨著tomcat啟動時,自動加載了InitServlet類。這是一個Servlet類。
    WEB-INF\web.xml部分代碼:
    1
    2<servlet-name>InitServlet</servlet-name>
    3????????<servlet-class>com.bcxy.servlet.InitServlet</servlet-class>
    4????????<load-on-startup>1</load-on-startup>
    5??????</servlet>
    6

    查看com.bcxy.servlet.InitServlet類,代碼很簡單:
    開始做了一個對此類日志(log4j)的綁定。接著通過SystemConfig取得了系統配置中的連接類型conntype(查看classes目錄下的SystemConfig.xml可知此變量是判斷使用連接池的類型0:3P0; 1:Proxool)。接著是初始化操作,記錄一些必要的啟動信息(log4j)(其中做了本地地址和網絡訪問地址的轉換)。
    用DBUtil.close測試連接池是否加載成功。
    最后是釋放類所做的必要操作。判斷使用的是哪一種連接池,然后關閉。這樣我們的第一個類就分析完畢。
    接著需要了解到
    SystemConfig類是加載SystemConfig.xml配置文件,并設定方法去讀取。其中有一定的類型轉換。

    此時似乎已經找不到頭緒了。那這樣吧。我們就開始訪問我們自己搭建的論壇,從首頁開始,也就是index.jsp頁面。
    瀏覽index.jsp代碼,由上向下理解每一個語句的含義(整體分體)。

    設定頁面編碼;導入IPLocalizer類(應該是做IP顯示的工具類);插入INC/const.jsp頁(過后會有分析);設定stats變量數值(通過閱讀其他jsp頁面發現,此變量的作用主要是在于在首頁顯示用戶狀態時,兼并顯示當前用戶做瀏覽的頁面:也就是stats的值,這樣我們可以在客戶可訪問的范圍內對stats變量進行設置,就可以查看在線用戶的當前行為);繼續插入INC/theme.jsp(估計是定制論壇模板的文件);<table>標簽內部就是連接到相關顯示數據信息的jsp頁面并附加了參數。其中的一些格式是通過上面引用文件中的變量設置,相對不難理解;論壇消息廣播部分,通過一個可執行jsp頁面vector顯示在首頁頂部,當中訪問數據庫的細節需要進一步研究代碼);接著是帖子的遍歷,也就是首頁最關鍵的部分,這里看起來不是由jsp頁面來負責獲取數據,而是通過Forum類來獲取一些過濾之后的數據:這里所說的過濾是例如置頂帖子,最新帖子等有一些特殊標記的數據:;
    index.jsp的其他部分就都是大同小異了。都是通過一個遍歷來展現具有相同特性的數據。;大家需要注意一些關于頁面表現的而非java技術的部分,例如信息層的提示,和一些圖片連接。
    通過index.jsp的學習,我們大概已經了解了大部分jsp頁面代碼的表現形式和含義。當然,一定要注意在這個過程中,參數傳遞、參數獲取的代碼部分,不要遺漏。除了一些我們可以看到的頁面之外,上面部分也講到了一些并不用于顯示給用戶的頁面,這里我們認為它是可執行頁面,也就是說它對我們的數據和請求做了一些處理,或者說把我們的請求轉交給了服務器(比如servlet)。

    預計晚上要研究一下有關數據庫方面的存取類JdbcWrapper以及連接獲取和釋放、數據查詢插入。
    2008.10.22
    大概昨天寫的已經忘的差不多了,那么我們還是從index.jsp文件開始,前幾行沒有什么問題,都是一些導入文件的標簽,那么我們從SkinUtil.這個類入手。在查看SkinUtil類代碼的時候我們發現里面應用了一些com\bcxy\bbs\util?包中類,其中含有三個工具類。(偷笑,看了文件大小,應該代碼不多,我們看看里面都是什么)在開始之前我們應了解一下GCookie.java類的大概內容和作用??磳氚覀兛梢源蟾帕私庖幌麓祟惖淖饔茫簩RL的編碼與解碼,產生和讀取Cookie,還有就是做一些日志記錄(log4j)。
    我們仔細閱讀后,了解到,其中有一個重載方法,也就是setCookie方法,根據不同的參數,可以讓我們選擇直接賦予變量名和值的方法,或者是賦予變量名和值另外加上最大保存時間的方法。? 類中的另一個方法是獲取Cookie方法值。
    ParamUtil類也很簡單,是取得字符串和 取得整數的重載方法,其中的參數決定是否有默認值,是否需要轉碼。
    SysUtil類中根據SystemConfig類中的讀取方法讀取配置文件systemconfig.properties,按照里面的設置,來判斷是否對參數和數據庫讀取操作中的參數進行編碼。其中還有一個方法是取得真實地址,當然這些都是根據systemconfig.properties文件中配置而定的。
    BBSCconst.java類簡單的設置了一些常量。作用是設置數據庫表名的時候加上systemconfig.properties中設置的前綴。
    回到SkinUtil.java類似乎看起來一些剛剛還陌生的類方法,顯得明朗。前面設置了一個Cookie的變量名并賦了值。

    ret?=?new?JdbcWrapper().doIntSearch(sql,?0);

    這里用到了新類,也就是我們昨天說過的要了解的關于數據庫連接的類。也是今天要解決的重點。打開JdbcWrapper類,查看代碼.(插一句,看代碼的時候,我覺得先看包名,了解大概要用到的類和方法,去設想這個類要實現的功能),yi一眼看來,大概都熟悉,無非是連接數據庫 讀取,結果保存,異常,還有一些類似數組的HashMap還有遍歷用得Iterator。想想,大概就是數據層的一些基礎CRUD操作。但是其中有個類不是很熟悉,DatabaseMetaData類,查看sun公司的在線文檔,發現這是個接口而且方法奇多,文檔的第一句這么寫,

    Comprehensive?information?about?the?database?as?a?whole.?

    我也不能理解這句話包含了什么內容。不管他,在程序中慢慢體會吧。JdbcWrapper這個類有點長,不過,大部分方法都有類似的作用,也就是說真正不同功能的代碼也只有幾分之一而已。我看的都想睡覺了。

    在網吧,因為不便,先離開咯
    今天還好,自己有一臺電腦,可以不限制時間。繼續工作....
    之前研究JdbcWrapper類的時候有一個小小的疑問。如下

    ?

    ?1?????//######這里有一點不明白,為什么要判斷getAutoClose()
    ?2????/*
    ?3?????*?當需要事務支持時,需要設置autoClose=false,那就等到事務提交時再關閉數據庫連接。
    ?4?????*?*/

    ?5????public?void?closeConnection()?{
    ?6????????if?(getAutoClose())?{
    ?7????????????DBUtil.close(pstmt,?con);
    ?8????????}

    ?9????}

    10

    今天看群里鯉魚回答內容如下:

    當需要事務支持時,需要設置autoClose=false,那就等到事務提交時再關閉數據庫連接。


    一時還沒有理解開來。
    看過來看過去,JdbcWrapper類對我來講還是有一部分難以理解。索性不去管它,等在下面的代碼中出現時,反復查閱應該會有更多的收獲。

    posted on 2008-10-21 11:47 金家寶 閱讀(360) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲精品乱码久久久久久不卡 | 亚洲国产午夜中文字幕精品黄网站| 国产成人亚洲精品蜜芽影院| 亚洲精品国产美女久久久| 巨波霸乳在线永久免费视频| 久久精品国产亚洲AV天海翼| 久久亚洲国产欧洲精品一 | 亚洲国产精品自在线一区二区| 毛片a级三毛片免费播放| g0g0人体全免费高清大胆视频| 亚洲精品第五页中文字幕| 免费国产成人高清在线观看麻豆| 国产午夜精品久久久久免费视 | 一本色道久久综合亚洲精品| 182tv免费视视频线路一二三| 色屁屁www影院免费观看视频| 久久精品国产亚洲精品2020| 波多野结衣一区二区免费视频| 久久综合给合久久国产免费 | 亚洲免费人成在线视频观看 | WWW国产亚洲精品久久麻豆| 亚洲AV无码精品色午夜果冻不卡 | 黄页网站免费在线观看| 最新亚洲成av人免费看| 亚洲成a∧人片在线观看无码| 亚洲尹人香蕉网在线视颅 | 噜噜噜亚洲色成人网站| 18亚洲男同志videos网站| 亚洲精品久久久www | 亚洲国产午夜精品理论片| 国产午夜亚洲不卡| 日本特黄特色免费大片| 在线观看H网址免费入口| 国内精品免费久久影院| 日韩精品免费一线在线观看| 亚洲综合国产成人丁香五月激情| 久久精品国产亚洲av影院| 亚洲AV无码一区东京热久久| 亚洲偷自拍拍综合网| 免费在线观看理论片| 精品国产免费观看久久久|