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 找個美女做老婆 閱讀(592) 評論(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)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 安宁市| 周宁县| 溧阳市| 通山县| 固安县| 且末县| 阳高县| 易门县| 宁阳县| 澄迈县| 乡城县| 清水县| 阳高县| 镇坪县| 琼结县| 田林县| 渑池县| 兴国县| 大洼县| 普兰县| 武城县| 广昌县| 吉木萨尔县| 翁牛特旗| 沙湾县| 古蔺县| 漳平市| 陈巴尔虎旗| 广宗县| 大邑县| 巴马| 卓资县| 惠东县| 吴旗县| 通化县| 新昌县| 阳新县| 唐河县| 应城市| 武陟县| 沅江市|