前面2章我們已經講解了 java網頁靜態化的原理和最簡單的實現,大家可以通過下面的文章鏈接進行查看
http://www.javady.com/index.php/87.html
http://www.javady.com/index.php/95.html
我們這章要討論一下如何讓用戶遵守訪問方式和如何更新生成的html文件
如何讓用戶遵守訪問方式
在第二篇文章我們已經通過代碼講解,用戶訪問 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、智能刷新
先說一下,這個不好做,但是做好了很牛方便。
管理員在后臺的每個操作 增刪改查,都進行監聽,并在操作完成后去驗證一下對應的文件是否存在,存在就更新,不存在就不操作. (要想實現這種方式,在進行框架設計的時候就要把這一模塊考慮好,讓后臺的每一步操作都實現一個已經公共的被觀察的對象.--可以查考一下觀察者模式)
原創文章@www.javady.com 轉載請標明出處 http://www.javady.com/index.php/98.html
直接不考慮是不是生成真實靜態,相當于把html文件存在于cache中,對于數據經常變的像BBS之類的可以用。
對于像資訊長期不變的,還是需要生成靜態且直接靜態訪問才節約性能吧。