Java學習

          java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進步

           

          用JSP生成HTM網頁,減輕數據庫操作(2)!

          大家跟著做就可以了,這個代碼還可以在修改讓他傳遞個文件名稱,生成文件,按照傳遞的參數實現文件名稱,大家自己修改下

          1 toHtml.java(不用修改,直接用)

          package com.jetsum.mystatic;
          import java.io.ByteArrayOutputStream;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.OutputStreamWriter;
          import java.io.PrintWriter;
          import javax.servlet.RequestDispatcher;
          import javax.servlet.ServletContext;
          import javax.servlet.ServletException;
          import javax.servlet.ServletOutputStream;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import javax.servlet.http.HttpServletResponseWrapper;

          public class toHtml extends HttpServlet {

          public void service(HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException {
          String url = request.getParameter("urls")!=null?request.getParameter("urls"):"";
          //url是要生成htm的jsp頁面
          String name = "";
          response.setContentType("text/html;charset=gb2312");
          ServletContext sc = getServletContext();
          System.out.println("request.getRealPath"+request.getRealPath(""));
          name = request.getRealPath("") + "/index.htm"; /*生成htm頁 位置在%服務器的根目錄%/工程名/index.htm 例如:d:/tomcat5.0/webapp/studyteach/index.htm ,注意這里是在根目錄生成,你可以生成后放到你想放的文件夾里,保證其它東西如圖片的路徑正確 這里就寫成name = request.getRealPath("") + "/kszx/kszx.htm"; */

          RequestDispatcher rd = sc.getRequestDispatcher(url);

          final ByteArrayOutputStream os = new ByteArrayOutputStream();

          final ServletOutputStream stream = new ServletOutputStream()
          {
          public void write(byte[] data, int offset, int length) {
          os.write(data, offset, length);
          }

          public void write(int b) throws IOException {
          os.write(b);
          }
          };

          final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));

          HttpServletResponse rep = new HttpServletResponseWrapper(response)
          {
          public ServletOutputStream getOutputStream() {
          return stream;
          }

          public PrintWriter getWriter() {
          return pw;
          }
          };
          rd.include(request, rep);
          pw.flush();
          FileOutputStream fos = new FileOutputStream(name); // 把jsp輸出的內容寫到xxx.htm
          os.writeTo(fos);
          fos.close();
          PrintWriter out = response.getWriter();
          out.print("<p align=center><font size=3 color=red>首頁已經成功生成!</font></p>");
          }
          }
          web.xml
          中添加
          <servlet>
          <servlet-name>tohtm</servlet-name>
          <servlet-class>com.jetsum.mystatic.toHtml</servlet-class>
          </servlet>

          <servlet-mapping>
          <servlet-name>tohtm</servlet-name>
          <url-pattern>/web/tohtm</url-pattern>
          </servlet-mapping>
          使用方法很簡單 mytest.jsp(wwwroot下)
          <a href="web/tohtm?urls=/kszx/kszx.jsp">生成靜態頁</a> kszx.jsp為要生成htm的動態頁
          如果不在wwwroot下,在wwwroot/pp下
          就要寫成
          <a href="../web/tohtm?urls=/kszx/kszx.jsp">生成靜態頁</a>

          posted on 2009-04-29 16:03 找個美女做老婆 閱讀(597) 評論(2)  編輯  收藏

          評論

          # re: 用JSP生成HTM網頁,減輕數據庫操作(2)! 2009-04-29 19:00 fl1429

          沒用過,有什么好的優勢嗎?  回復  更多評論   

          # re: 用JSP生成HTM網頁,減輕數據庫操作(2)! 2009-04-30 11:16 找個美女做老婆

          當然有,這樣能大大的提高訪問速度, 根本不用去編譯,所以節省了大量的時間,同時也減輕了 服務器的壓力
            回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          本blog已經搬到新家了, 新家:www.javaly.cn
           http://www.javaly.cn

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 镇江市| 手机| 石楼县| 即墨市| 青海省| 新乡市| 正宁县| 鹰潭市| 孟津县| 惠水县| 临泽县| 久治县| 土默特右旗| 马尔康县| 饶河县| 交口县| 朝阳县| 深圳市| 察雅县| 荥阳市| 樟树市| 梨树县| 扶风县| 阳西县| 平陆县| 鲁甸县| 滨海县| 民丰县| 陆河县| 阿克| 崇义县| 工布江达县| 乐业县| 巴马| 翼城县| 全南县| 玉山县| 米林县| 拉萨市| 囊谦县| 惠水县|