好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > jsp實現將動態網頁轉換成靜態頁面的方法

jsp實現將動態網頁轉換成靜態頁面的方法

熱門標簽:高德地圖標注樣式 商洛電銷 杭州ai語音電銷機器人功能 杭州語音電銷機器人軟件 北票市地圖標注 電銷機器人是有一些什么技術 電銷機器人好賣么 四川保險智能外呼系統商家 地圖標注線上教程

本文實例講述了jsp實現將動態網頁轉換成靜態頁面的方法。分享給大家供大家參考。具體如下:

如果我可以將jsp動態網頁轉換成靜態頁面,那么訪問的時候就不需要頻繁的訪問數據庫了。

jsp 顯示內容緩存技巧

前段時間做自己社區的論壇,在jive 的基礎上做一個頁面顯示所有論壇的帖子,可以稱之為總版,模仿forum 類的接口做個superforum 并且實現cachable,不過因為這個頁面刷新量比較大,雖然被cache 了,我還是想辦法進行頁面的緩存,感覺用jsp 產生的html靜態內容當緩存,頁面訪問速度應該有所提高。

首先想到的一種辦法,是采用java.net 的urlconnection 把服務器上的jsp 抓過來做緩存,不過我覺得這樣做太見外了,自己服務器上的東西,為何要用http 去訪問.于是想另外一個辦法,把jsp 的out 對象的輸出控制到自己希望的地方.比如輸出到靜態文件,又或者保存成全局的字符串變量.這樣的話,瀏覽就不需要執行jsp,只是瀏覽該html 了.僅僅在數據有更新的時候進行一次update 操作,把jsp 重新輸出為html.

我覺得,瀏覽事件比數據插入或更新發生的次數多的時候.不妨試試這個辦法來提高頁面訪問速度.

整件事情有點像把jsp 當作模板,生成靜態的html 頁面.

將如下代碼寫入web-xml:

filter> 
filter-name>filecapturefilter/filter-name> 
filter-class>com.junjing.filter.filecapturefilter/filter-class> 
/filter> 
filter-mapping> 
filter-name>filecapturefilter/filter-name> 
url-pattern>/latest.jsp/url-pattern> 
/filter-mapping> 

latest.jsp 是我要cache 的頁面

java 源碼代碼如下:

/** * start file filecapturefilter.java */ 
package com.junjing.filter; 
import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.*; 
public class filecapturefilter implements filter 
{ 
private string protdirpath; 
public void init(filterconfig filterconfig) 
throws servletexception 
{ 
protdirpath = filterconfig.getservletcontext().getrealpath("/"); 
} 
public void dofilter(servletrequest request,servletresponse response,filterchain 
chain) 
throws ioexception, servletexception 
{ 
string filename = protdirpath + "forum/lastest.html"; 
printwriter out = response.getwriter(); 
filecaptureresponsewrapper responsewrapper = new 
filecaptureresponsewrapper((httpservletresponse)response); 
chain.dofilter(request, responsewrapper); 
// fill responsewrapper up 
string html = responsewrapper.tostring(); 
//得到的html 頁面結果字符串 
// responsewrapper.writefile(filename); 
// dump the contents 寫成html 文件,也可以保存在內存 
//responsewrapper.writeresponse( out ); 
// back to browser 
//responsewrapper.sendredirect("lastestthread.jsp"); 
} 
public void destroy() {} 
} 
/** * end file filecapturefilter.java */ 

/** * start file filecaptureresponsewrapper.java */ 
package com.junjing.filter; 
import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.*; 
public class filecaptureresponsewrapper 
extends httpservletresponsewrapper 
{ 
private chararraywriter output; 
public string tostring() 
{ 
return output.tostring(); 
} 
public filecaptureresponsewrapper(httpservletresponse response) 
{ 
super(response); 
output = new chararraywriter(); 
} 
public printwriter getwriter() 
{ 
return new printwriter(output); 
} 
public void writefile(string filename) 
throws ioexception 
{ 
filewriter fw = new filewriter(filename); 
fw.write( output.tochararray() ); 
fw.close(); 
} 
public void writeresponse(printwriter out) 
{ 
out.print( output.tochararray() ); 
} 
} 
/** * end file filecaptureresponsewrapper.java */ 

附件源代碼:

不過采用resin 服務器的話,以上代碼會失效。因為resin 沒有實現getwriter 方法,而是采用getoutputstream 取而代之,所以必須修改些代碼來迎合resin 運行環境:

/** * start file filecaptureresponsewrapper.java */ 
package com.junjing.filter; 
import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.*; 
public class filecaptureresponsewrapper 
extends httpservletresponsewrapper 
{ 
private chararraywriter output; 
public string tostring() 
{ 
return output.tostring(); 
} 
public filecaptureresponsewrapper(httpservletresponse response) 
{ 
super(response); 
output = new chararraywriter(); 
} 
public printwriter getwriter() 
{ 
return new printwriter(output); 
} 
public void writefile(string filename) 
throws ioexception 
{ 
filewriter fw = new filewriter(filename); 
fw.write( output.tostring()); 
fw.close(); 
} 
public servletoutputstream getoutputstream() 
throws java.io.ioexception 
{ 
return new servletoutputstream(); 
} 
public void write(int b) 
throws ioexception 
{ 
output.write(b); 
} 
public void write(byte b[]) 
throws ioexception 
{ 
output.write(new string(b,"gbk")); 
} 
public void write(byte b[], int off, int len) 
throws ioexception 
{ 
output.write(new string(b, off, len)); 
} 
}; 
} 
public void writeresponse(printwriter out) 
{ 
out.print(output.tochararray()); 
} 
} 
/** * end file filecaptureresponsewrapper.java */

希望本文所述對大家的JSP程序設計有所幫助。

您可能感興趣的文章:
  • JSP動態網頁開發技術概述
  • JSP動態網頁開發原理詳解

標簽:丹東 宿州 西藏 青島 紅河 云浮 江西 貴州

巨人網絡通訊聲明:本文標題《jsp實現將動態網頁轉換成靜態頁面的方法》,本文關鍵詞  jsp,實,現將,動態,網頁,轉,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《jsp實現將動態網頁轉換成靜態頁面的方法》相關的同類信息!
  • 本頁收集關于jsp實現將動態網頁轉換成靜態頁面的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产一级特黄aa大片免费视频| 中文字幕一区精品欧美| 国产又黄又爽又湿的免费网站| 草莓视频18岁| 97久久碰国产精品2023| 无码免费人妻A片AAA毛片西瓜| 99精品久久亚洲中文无码四川| 污污的动态图| 国产婬妇高潮久久久久久免费AV | 黃色A片三級三級三級桃花岛 | 年轻女学生HD3| 日韩成人一区二区三区在线观看| 欧美国产成人亚洲精品无码久久网 | 久久精品国产99国产精2019 | 韩国理伦色情理论片在线观看| 军人的粗大(h)拔不出来| 青青青亚洲精品国产| 爱情岛路线一路线二路线三| 国产精品亚洲一区二区三区在线 | 国产性猛交?XX?乱动漫| 韩国三级《瑜伽教练》电影| 福利入口在线观看| 欧美激情在线观看一区二区三区| 女生喷水网站| 拔插拔插海外华人免费| 一二三四在线播放免费| 美国禁1一4集无删减版百度云资源| 国外成品网站1688入口在哪| 喜欢老头吃我奶躁我的动图| 久久久久久精品免费自在自线 | 亚洲+国产+图片| 可播放男同志一级69片| 业余性自由色xxxx视频| 快穿被各种姿势C翻H| 欧美18Ⅴdeσsex性欧美| 村乱1一11小说| 韩国朴恩率跳舞露下毛| 美女隐私黄| 成人免费看黄20分钟| 99国产精品欲AV????天美| 又大又粗又长又硬又硬啪啪|