同一個目標,同一個夢想

          One Target,One Dream
          posts - 25, comments - 11, trackbacks - 0, articles - 37

          JSP生成html

          Posted on 2008-11-07 23:41 J2EE Home工作室 閱讀(831) 評論(1)  編輯  收藏 所屬分類: 代碼
          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>

          Feedback

          # re: JSP生成html  回復  更多評論   

          2014-06-04 11:13 by 5555
          jjkhkjhlk

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


          網站導航:
           
          主站蜘蛛池模板: 深水埗区| 邵阳市| 文山县| 大兴区| 洮南市| 开封县| 商城县| 铜川市| 永德县| 澳门| 龙陵县| 右玉县| 太仓市| 新河县| 麻阳| 从化市| 登封市| 庆阳市| 醴陵市| 浮山县| 肥城市| 富顺县| 古交市| 怀宁县| 安陆市| 伊吾县| 阿图什市| 余干县| 潢川县| 亚东县| 宜兰市| 长子县| 五原县| 西峡县| 水富县| 乐昌市| 上饶县| 丹阳市| 石家庄市| 镶黄旗| 荃湾区|