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

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

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

    posts - 2, comments - 27, trackbacks - 0, articles - 60
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    JSP靜態(tài)化HTML筆記

    Posted on 2012-07-23 19:37 ZhouFeng 閱讀(1891) 評(píng)論(0)  編輯  收藏 所屬分類: 轉(zhuǎn)載Web開發(fā)JAVA
    至于將JSP頁面靜態(tài)化為HTML的好處,想必不用我在此解釋了。之前用過一種偽處理的方式,用urlrewrite地址重定向偽裝了訪問路徑,每次訪問頁面的時(shí)候還是會(huì)讀取數(shù)據(jù)庫,其實(shí)每次讀取的數(shù)據(jù)都一樣,特別是如新聞內(nèi)容這種類型的頁面,還是不太完美,今天在網(wǎng)上找了一些資料,也發(fā)現(xiàn)用urlrewrite的不少,我希望是能生成html文件那樣的處理,還好找到一個(gè)博客,寫的這樣的處理方法,才發(fā)現(xiàn),人家早就寫了,只是當(dāng)時(shí)沒有下功夫去學(xué)習(xí),今天按照上面的步驟做出來了,順便記在這里

    創(chuàng)建一個(gè)Servlet,主要內(nèi)容如下
     1 String url = "";
     2 String name = "";
     3 
     4 Charset charset = Charset.forName("UTF-8");  //設(shè)置生成文件的字符集
     5 ServletContext servletContext = getServletContext();
     6 
     7 String file_name = request.getParameter("file_name");
     8 url = "/" + file_name + ".jsp";    // 你要生成的頁面動(dòng)態(tài)頁面來源
     9 name = servletContext.getRealPath("/")+"\\"+ file_name + ".html";
    10 // 這是生成的html文件名,如index.html文件名字與源文件名相同
    11 
    12 RequestDispatcher requestDispatcher = servletContext.getRequestDispatcher(url);
    13 
    14 final ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    15 
    16 final ServletOutputStream stream = new ServletOutputStream() {
    17     public void write(byte[] data, int offset, int length) {
    18         outStream.write(data, offset, length);
    19     }
    20 
    21     public void write(int b) throws IOException {
    22         outStream.write(b);
    23     }
    24 };
    25 
    26 final PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(outStream,charset));
    27 
    28 HttpServletResponse rep = new HttpServletResponseWrapper(response) {
    29     public ServletOutputStream getOutputStream() {
    30         return stream;
    31     }
    32 
    33     public PrintWriter getWriter() {
    34         return printWriter;
    35     }
    36 };
    37 requestDispatcher.include(request, rep);
    38 printWriter.flush();
    39 FileOutputStream fos = new FileOutputStream(name); // 把jsp輸出的內(nèi)容寫到html文件中去
    40 outStream.writeTo(fos);
    41 fos.close();
    42 out.print("<p align=center>OK</p>");
    我是想把page.jsp這個(gè)文件轉(zhuǎn)換成page.html,所以只傳了一個(gè)參數(shù),如果想把show.jsp?id=123轉(zhuǎn)換成123.html,相信這也難不到大家,只不過得注意引用CSS或圖片的路徑
    這是在網(wǎng)上那位仁兄貼出來的代碼,并做了些修改,他還介紹了其它的些,其它的還沒來得及學(xué)習(xí),先把這些記錄下來。
    我在轉(zhuǎn)換的時(shí)候,碰到中文問題,更改request和response的字符集都搞不定,還好參考了http://www.tkk7.com/zphab/articles/295631.html,把字符編碼加過來了,中文才算搞定了,簡單的測(cè)試通過后,放在應(yīng)用里就好辦了。人家寫出來這么多年了,才發(fā)現(xiàn),慚愧呀

    以上方案參考:http://blog.csdn.net/noove_001/article/details/1953682
    主站蜘蛛池模板: 亚洲精品无码久久久久| 亚洲黄色网址在线观看| 久久久久亚洲AV无码专区首JN | free哆拍拍免费永久视频| 久草视频免费在线观看| 亚洲国产精品无码成人片久久 | j8又粗又长又硬又爽免费视频| 国产偷国产偷亚洲清高动态图| 亚洲综合国产成人丁香五月激情| 国产精品青草视频免费播放| 18亚洲男同志videos网站| 日韩黄色免费观看| 亚洲午夜免费视频| 免费网站观看WWW在线观看| 一级毛片直播亚洲| 亚洲乱亚洲乱妇无码| 成人永久免费高清| 华人在线精品免费观看| 亚洲av日韩av高潮潮喷无码| 午夜精品射精入后重之免费观看| 国产亚洲av片在线观看播放| 成熟女人特级毛片www免费| 麻豆狠色伊人亚洲综合网站| 亚洲精品免费网站| 亚洲熟妇AV乱码在线观看| 亚洲av中文无码乱人伦在线播放| 无码午夜成人1000部免费视频| 亚洲成熟丰满熟妇高潮XXXXX| 免费a级毛片永久免费| 一级一级一级毛片免费毛片| 亚洲自偷自偷图片| 国产成人无码a区在线观看视频免费 | 亚洲日本在线免费观看| 中国china体内裑精亚洲日本| 国产资源免费观看| 久久久久久久免费视频| 一级毛片免费毛片一级毛片免费| 一级午夜免费视频| 美女视频黄.免费网址| 亚洲一区二区三区无码中文字幕| 国产免费无码AV片在线观看不卡|