查看完整版本: [-- [转]使用servlet把JSP生成html --]

风信Java论坛 ›› J2EE/Java Web 讨论交流中心 ›› [转]使用servlet把JSP生成html 登录 -> 注册

1F [转]使用servlet把JSP生成html   唧唧 Post by : 2009-04-23 12:38:47.0

1、ToHtml.java(不用修改,直接用),注意包名即可

   java代码
  1. package com.jetsum.mystatic;  
  2.  
  3. import java.io.ByteArrayOutputStream;  
  4. import java.io.FileOutputStream;  
  5. import java.io.IOException;  
  6. import java.io.OutputStreamWriter;  
  7. import java.io.PrintWriter;  
  8. import javax.servlet.RequestDispatcher;  
  9. import javax.servlet.ServletContext;  
  10. import javax.servlet.ServletException;  
  11. import javax.servlet.ServletOutputStream;  
  12. import javax.servlet.http.HttpServlet;  
  13. import javax.servlet.http.HttpServletRequest;  
  14. import javax.servlet.http.HttpServletResponse;  
  15. import javax.servlet.http.HttpServletResponseWrapper;  
  16.  
  17. public class ToHtml extends HttpServlet {  
  18.  
  19.     public void service(HttpServletRequest request, HttpServletResponse response)  
  20.             throws ServletException, IOException {  
  21.         String url = request.getParameter("urls") != null ? request.getParameter("urls") : "";  
  22.         // url是要生成htm的jsp页面  
  23.         String name = "";  
  24.         response.setContentType("text/html;charset=gb2312");  
  25.         ServletContext sc = getServletContext();  
  26.         System.out.println("request.getRealPath" + request.getRealPath(""));  
  27.         name = request.getRealPath("") + "/index.htm";  
  28.  
  29.         RequestDispatcher rd = sc.getRequestDispatcher(url);  
  30.  
  31.         final ByteArrayOutputStream os = new ByteArrayOutputStream();  
  32.  
  33.         final ServletOutputStream stream = new ServletOutputStream() {  
  34.             public void write(byte[] data, int offset, int length) {  
  35.                 os.write(data, offset, length);  
  36.             }  
  37.  
  38.             public void write(int b) throws IOException {  
  39.                 os.write(b);  
  40.             }  
  41.         };  
  42.  
  43.         final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));  
  44.  
  45.         HttpServletResponse rep = new HttpServletResponseWrapper(response) {  
  46.             public ServletOutputStream getOutputStream() {  
  47.                 return stream;  
  48.             }  
  49.  
  50.             public PrintWriter getWriter() {  
  51.                 return pw;  
  52.             }  
  53.         };  
  54.         rd.include(request, rep);  
  55.         pw.flush();  
  56.         FileOutputStream fos = new FileOutputStream(name); // 把jsp输出的内容写到xxx.htm  
  57.         os.writeTo(fos);  
  58.         fos.close();  
  59.         PrintWriter out = response.getWriter();  
  60.         out.print("<p align=center><font size=3 color=red>首页已经成功生成!</font></p>");  
  61.     }  

2、web.xml
中添加
<servlet>
<servlet-name>tohtml</servlet-name>
<servlet-class>com.jetsum.mystatic.ToHtml</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>tohtml</servlet-name>
<url-pattern>/web/tohtml</url-pattern>
</servlet-mapping>

3、使用方法很简单 mytest.jsp(wwwroot下)
<a href="web/tohtml?urls=/kszx/kszx.jsp">生成静态页</a> kszx.jsp为要生成htm的动态页

如果不在wwwroot下,在wwwroot/pp下,就要写成
<a href="../web/tohtml?urls=/kszx/kszx.jsp">生成静态页</a>


风信Java论坛 ›› J2EE/Java Web 讨论交流中心 ›› [转]使用servlet把JSP生成html 登录 -> 注册

查看完整版本: [-- [转]使用servlet把JSP生成html --]
CopyRight © 2008-2009 JavaWind.Net Studio All Rights Reserved
Powered By JWind.BBS Vesion 1.0.0 Beta1 Processed in 9 ms,0 (Queries)  Gzip enabled
粤ICP备07511478号