1. 程式人生 > >java高併發-靜態頁面生成方案(3)

java高併發-靜態頁面生成方案(3)

前面2章我們已經講解了 java網頁靜態化的原理和最簡單的實現,大家可以通過下面的文章連結進行檢視
       java高併發-靜態頁面生成方案(1)如何讓使用者遵守訪問方式
        在第二篇文章我們已經通過程式碼講解,使用者訪問 xx_pageNumber_1.shtm,那麼我們可以直接返回已經存在的html檔案給使用者,大大的減輕應用伺服器的壓力。可是如果客戶直接訪問 xx.do?pageNumber=1 呢?瀏覽器是客戶的,如果他們要想惡意的請求你的網站你是沒有辦法控制的,難道我們要在頁面上告訴訪問者“請遵守訪問方式,否則您將被如何如何”嗎?        針對上面這種情況,我們需要在 index.do 中做點手腳。簡單的說就是在我們自己轉發請求的時候設定一個變數告訴被請求的地址我們是合法的,例如:xx.do?pageNumber=1後面追加一個 &my=true,這樣的話就可以在被請求的action中檢測是否有my這個變數,如果有說明合法,該怎麼操作都行,如果沒有就是違法的,直接跳轉到錯誤頁面。這樣就能用最簡單的方式控制使用者的非法請求了.
接著我們講解一下如何重新整理這些html   因為是一次性的生成Html,如果對應的資料發生變化,比如update或者delete情況,我們就應該更新相應的html檔案,那如何對html檔案進行更新呢?   大體上有幾個方式
    1、最笨的方式,手動重新整理.      例如:網站首頁,當管理員更新一個功能之後,手動點選後臺的一個按鈕直接更新對應的html檔案   2、定時重新整理。      每隔一段指定的時間去更新所有已經存在的html檔案,當然前提是你要先驗證哪些已經生成了html檔案.至於怎麼驗證?你可以在每生成一個檔案的時候往記憶體的某個list或者某個檔案,或者某個表寫入當前生成的檔名..
   3、智慧重新整理       先說一下,這個不好做,但是做好了很牛方便。       管理員在後臺的每個操作 增刪改查,都進行監聽,並在操作完成後去驗證一下對應的檔案是否存在,存在就更新,不存在就不操作. (要想實現這種方式,在進行框架設計的時候就要把這一模組考慮好,讓後臺的每一步操作都實現一個已經公共的被觀察的物件.--可以查考一下觀察者模式)