我們?cè)趯?duì)提升網(wǎng)站性能方面的方法有很多種,比如有效的使用緩存,生成靜態(tài)頁(yè)面等等。今天要說(shuō)的就是生成靜態(tài)頁(yè)面的方式。這個(gè)也是我近期一直在搞的一個(gè)問(wèn)題,近期在做使用html + servlet做個(gè)人網(wǎng)站,為什么是這2個(gè)東西呢?
1、直接用servlet是為了保證網(wǎng)站能以最快的速度執(zhí)行命令個(gè)人總感覺(jué)像Struts hibernate spring之類的雖然方便但是效能帶來(lái)的損耗不太能接收。
2、使用html同樣是為了保證最快的反應(yīng)速度,畢竟html 比jsp少了一層服務(wù)器執(zhí)行。速度上要快的多。
一、在這里要先說(shuō)一下什么是頁(yè)面靜態(tài)化:
簡(jiǎn)單的說(shuō),我們?nèi)绻L問(wèn)一個(gè)鏈接http://abc.com/test.do,服務(wù)器對(duì)應(yīng)的模塊會(huì)處理這個(gè)請(qǐng)求,轉(zhuǎn)到對(duì)應(yīng)的jsp界面,最后生成我們想要看到的數(shù)據(jù)。這其中的缺點(diǎn)是顯而易見(jiàn)的:因?yàn)槊看握?qǐng)求服務(wù)器都會(huì)進(jìn)行處理,如果有太多的高并發(fā)請(qǐng)求,那么就會(huì)加重應(yīng)用服務(wù)器的壓力,弄不好就把服務(wù)器 搞down 掉了。那么如何去避免呢?如果我們把對(duì)test.do 請(qǐng)求后的結(jié)果保存成一個(gè)html 文件,然后每次用戶都去訪問(wèn)http://abc.com/test.html ,這樣應(yīng)用服務(wù)器的壓力不就減少了?
那么靜態(tài)頁(yè)面從哪里來(lái)呢?總不能讓我們每個(gè)頁(yè)面都手動(dòng)處理吧?這里就牽涉到我們要講解的內(nèi)容了,靜態(tài)頁(yè)面生成方案… 我們需要的是自動(dòng)的生成靜態(tài)頁(yè)面,當(dāng)用戶訪問(wèn)http://abc.com/test.do,會(huì)自動(dòng)生成test.html ,然后顯示給用戶。
二、下面我們?cè)诤?jiǎn)單介紹一下要想掌握頁(yè)面靜態(tài)化方案應(yīng)該掌握的知識(shí)點(diǎn)
1、 基礎(chǔ)-URL Rewrite
什么是URL Rewrite 呢? URL 重寫。用一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明問(wèn)題:輸入網(wǎng)址http://www.abc.com/test.do ,但是實(shí)際上訪問(wèn)的卻是http://www.abc.com/test.action,那我們就可以說(shuō)URL 被重寫了。這項(xiàng)技術(shù)應(yīng)用廣泛,有許多開(kāi)源的工具可以實(shí)現(xiàn)這個(gè)功能。
2、 基礎(chǔ)-Servlet web.xml
如果你還不知道web.xml 中一個(gè)請(qǐng)求和一個(gè)servlet 是如何匹配到一起的,那么請(qǐng)搜索一下servlet 的文檔。這可不是亂說(shuō)呀,有很多人就認(rèn)為/xyz/*.do 這樣的匹配方式能有效。如果你還不知道怎么編寫一個(gè)servlet ,那么請(qǐng)搜索一下如何編寫servlet.這可不是說(shuō)笑呀,在各種集成工具漫天飛舞的今天,很多人都不會(huì)去從零編寫一個(gè)servlet了。