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