<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    軟件藝術思考者  
    混沌,彷徨,立志,蓄勢...
    公告
    日歷
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    隨筆分類(86)

    隨筆檔案(85)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     

    引子:
    我們以兩個大型網站為例作比較:
    51job和智聯招聘(先聲明我不是為他們作廣告,僅以他們為例作技術上的比較)
    51job采用的是比較“先進”的php技術,而智聯用的是比較落后的asp.但我們可能會明顯的感覺到51job的反應速度相比智聯招聘實在是太慢了,為什么會這樣?細心的人可能會察覺到了。智聯雖然用的是asp,但他采用了另一種更巧妙的技術--asp生成靜態頁技術。所有的動態頁基本上都轉換成了html靜態頁,不用訪問數據庫,當然反應快了。
    下面我們討論一下jsp怎么轉換成html??
    首先要做一個模板。后綴不限,但一般都用*.template例子
    <html>
    <head>
    <title>#title#</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <LINK href="../css.css" rel=stylesheet type=text/css>
    </head>

    <body>
    <P align="center">
    #title#<BR><BR><BR>
    作者:#author#<BR><BR>
    <BR>
    #content#<BR><BR><BR><BR>
    </P>
    </body>
    </html>
    做一個處理模板的類或者jsp文件、(為說明問題我們從簡單入手以一個jsp文件為例)
    ?filePath = request.getRealPath("/")+"WEB-INF/templates/template.htm";
    ?out.print(filePath);
    ?String templateContent="";
    ?FileInputStream fileinputstream = new FileInputStream(filePath);//讀取模塊文件
    ?int lenght = fileinputstream.available();
    ?byte bytes[] = new byte[lenght];
    ?fileinputstream.read(bytes);
    ?fileinputstream.close();
    ?templateContent = new String(bytes);
    ?out.print("以下是模板內容:<br>"+templateContent+"<br> 以下是置換以后的html內容<br><hr>");
    ?templateContent=templateContent.replaceAll("#title#",title);
    ?templateContent=templateContent.replaceAll("#author#",editer);//替換掉模塊中相應的地方
    ?templateContent=templateContent.replaceAll("#content#",content);
    ?// 根據時間得文件名
    ?Calendar calendar = Calendar.getInstance();
    ?String fileame = String.valueOf(calendar.getTimeInMillis()) +".html";
    ?fileame = request.getRealPath("/")+fileame;//生成的html文件保存路徑

    ?out.print(templateContent);
    ?FileOutputStream fileoutputstream = new FileOutputStream(fileame);//建立文件輸出流
    ?byte tag_bytes[] = templateContent.getBytes();
    ?fileoutputstream.write(tag_bytes);
    ?fileoutputstream.close();
    嗯,核心技術就是這樣了,如果大家要求的性能更高,可以改用freemarker做模板。freemarker的使用方法可以參閱我的另一篇文章《Freemarker 模板工具的作用及使用

    posted on 2006-07-28 14:42 智者無疆 閱讀(3353) 評論(16)  編輯  收藏 所屬分類: about java
    評論:
    • # re: JSP生成靜態頁實踐及其設計思想   白白 Posted @ 2006-07-28 15:59
      哇...又有新內容出來了,累了休息會兒!  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   lalala Posted @ 2006-07-28 18:35
      你用網通的吧?上海電信打開51job速度嗖嗖的,北京網通連個美國代理服務器訪問51job的速度比直接訪問還快。  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   Harry Posted @ 2006-07-31 09:29
      templateContent=templateContent.replaceAll("#title#",title);
      templateContent=templateContent.replaceAll("#author#",editer);//替換掉模塊中相應的地方
      templateContent=templateContent.replaceAll("#content#",content);

      以上這些代碼中, title, editor(不是editer), content從哪里來呢? 不是一樣要訪問數據庫? 所以, 能否解釋一下這句話? "智聯雖然用的是asp,但他采用了另一種更巧妙的技術--asp生成靜態頁技術。所有的動態頁基本上都轉換成了html靜態頁,不用訪問數據庫,當然反應快了。"
        回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   智者無 Posted @ 2006-07-31 14:17
      我不認為訪問51job速度很慢是因為我用了網通。這么大的網站就沒有個網通的服務器?顯然是不可能的。
      至于用美國的代理服務器訪問51為什么比直接訪問還快:我可以告訴你,這是因為代理訪問器通常都設置一個很大的cache,訪問它的時候根本不用再中轉到國內服務器了。
      實際上,cache和我們的靜態頁技術的原則是一樣的。  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   白白 Posted @ 2006-07-31 15:41
      哦,是嗎?我還是聽不懂你在說什么!還是頂一下吧.  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   jspark Posted @ 2006-08-01 10:54
      templateContent=templateContent.replaceAll("#title#",title);
      templateContent=templateContent.replaceAll("#author#",editer);//替換掉模塊中相應的地方
      templateContent=templateContent.replaceAll("#content#",content);

      請問title、editor、content從那來的?不用訪問數據嗎  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   CPlayer Posted @ 2006-08-01 18:32
      不錯呀  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   ljt Posted @ 2006-08-09 11:40
      感謝 一直在尋找 終于開竅  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   一農 Posted @ 2006-08-10 22:51
      還有一種生成靜態頁面的方法,你在網上搜
      extends HttpServletResponseWrapper
      就可以了解到了.  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   智者無疆 Posted @ 2006-08-11 09:27
      謝謝一農的留言。  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   白白 Posted @ 2006-08-11 14:57
      very good!!  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   壞男孩 Posted @ 2006-09-15 15:26
      拿走了,你要是不愿意我就刪除了。  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   xiaobai Posted @ 2006-09-15 15:37
      拿走可以,但請尊重我的勞動果實,注明出處。謝謝  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   后學者 Posted @ 2006-10-13 18:06

      要是 內容有幾個段落呢?

      怎么保證依然保持這些段落的樣子,而不是搞成了一整段???  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   **智者無疆 Posted @ 2006-10-19 15:23
      內容最終是什么樣子的,除了用模板控制之外,還與替換內容的樣式有關。  回復  更多評論   

    • # re: JSP生成靜態頁實踐及其設計思想   嘿嘿 Posted @ 2006-12-27 17:50
      謝謝樓主無私的貢獻  回復  更多評論   

     
    Copyright © 智者無疆 Powered by: 博客園 模板提供:滬江博客


       觀音菩薩贊

    主站蜘蛛池模板: 欧美亚洲精品一区二区| 久久精品国产99国产精品亚洲 | 亚洲Av熟妇高潮30p| 成人嫩草影院免费观看| 亚洲人成影院在线观看| 一区二区免费电影| 亚洲午夜无码AV毛片久久| 免费看黄福利app导航看一下黄色录像| 蜜桃精品免费久久久久影院| 亚洲午夜精品久久久久久app| 91在线视频免费播放| 亚洲综合色丁香婷婷六月图片| 成人性生交大片免费看无遮挡| 亚洲av永久无码天堂网| 男女啪啪永久免费观看网站| 亚洲av永久中文无码精品| 午夜亚洲av永久无码精品| 国产99久久久久久免费看| 亚洲αv在线精品糸列| 久99久精品免费视频热77| 亚洲视屏在线观看| 成人毛片18女人毛片免费视频未 | 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 在线观看成人免费视频| 特级毛片免费播放| 亚洲成av人片天堂网| 2021国内精品久久久久精免费| 亚洲综合一区二区| 女人被男人躁的女爽免费视频 | 欧洲亚洲国产精华液| 亚洲中文字幕丝袜制服一区| 免费精品一区二区三区第35| 亚洲人成黄网在线观看| 免费观看日本污污ww网站一区| kk4kk免费视频毛片| 香蕉视频在线观看亚洲| 午夜时刻免费入口| 日韩a级无码免费视频| 亚洲性无码AV中文字幕| 中文字幕第13亚洲另类| 一色屋成人免费精品网站|