如何讓用戶遵守訪問(wèn)方式
在第二篇文章我們已經(jīng)通過(guò)代碼講解,用戶訪問(wèn) xx_pageNumber_1.shtm,那么我們可以直接返回已經(jīng)存在的html文件給用戶,大大的減輕應(yīng)用服務(wù)器的壓力。可是如果客戶直接訪問(wèn) xx.do?pageNumber=1 呢?瀏覽器是客戶的,如果他們要想惡意的請(qǐng)求你的網(wǎng)站你是沒(méi)有辦法控制的,難道我們要在頁(yè)面上告訴訪問(wèn)者“請(qǐng)遵守訪問(wèn)方式,否則您將被如何如何”嗎?
針對(duì)上面這種情況,我們需要在 index.do 中做點(diǎn)手腳。簡(jiǎn)單的說(shuō)就是在我們自己轉(zhuǎn)發(fā)請(qǐng)求的時(shí)候設(shè)置一個(gè)變量告訴被請(qǐng)求的地址我們是合法的,例如:xx.do?pageNumber=1后面追加一個(gè) &my=true,這樣的話就可以在被請(qǐng)求的action中檢測(cè)是否有my這個(gè)變量,如果有說(shuō)明合法,該怎么操作都行,如果沒(méi)有就是違法的,直接跳轉(zhuǎn)到錯(cuò)誤頁(yè)面。這樣就能用最簡(jiǎn)單的方式控制用戶的非法請(qǐng)求了.
接著我們講解一下如何刷新這些html
因?yàn)槭且淮涡缘纳蒆tml,如果對(duì)應(yīng)的數(shù)據(jù)發(fā)生變化,比如update或者delete情況,我們就應(yīng)該更新相應(yīng)的html文件,那如何對(duì)html文件進(jìn)行更新呢?
大體上有幾個(gè)方式
1、最笨的方式,手動(dòng)刷新.
例如:網(wǎng)站首頁(yè),當(dāng)管理員更新一個(gè)功能之后,手動(dòng)點(diǎn)擊后臺(tái)的一個(gè)按鈕直接更新對(duì)應(yīng)的html文件
2、定時(shí)刷新。
每隔一段指定的時(shí)間去更新所有已經(jīng)存在的html文件,當(dāng)然前提是你要先驗(yàn)證哪些已經(jīng)生成了html文件.至于怎么驗(yàn)證?你可以在每生成一個(gè)文件的時(shí)候往內(nèi)存的某個(gè)list或者某個(gè)文件,或者某個(gè)表寫(xiě)入當(dāng)前生成的文件名..
3、智能刷新
先說(shuō)一下,這個(gè)不好做,但是做好了很牛方便。
管理員在后臺(tái)的每個(gè)操作 增刪改查,都進(jìn)行監(jiān)聽(tīng),并在操作完成后去驗(yàn)證一下對(duì)應(yīng)的文件是否存在,存在就更新,不存在就不操作. (要想實(shí)現(xiàn)這種方式,在進(jìn)行框架設(shè)計(jì)的時(shí)候就要把這一模塊考慮好,讓后臺(tái)的每一步操作都實(shí)現(xiàn)一個(gè)已經(jīng)公共的被觀察的對(duì)象.--可以查考一下觀察者模式)原創(chuàng)文章@www.javady.com 轉(zhuǎn)載請(qǐng)標(biāo)明出處 http://www.javady.com/index.php/98.html