Chinaunix首页 | 论坛 | 博客
  • 博客访问: 506539
  • 博文数量: 694
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 4840
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-16 19:30
文章分类

全部博文(694)

文章存档

2011年(1)

2008年(693)

我的朋友

分类:

2008-10-16 19:51:21

    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("

首页已经成功生成!

");
            }
    }
    web.xml
    中添加
      
        tohtm
        com.jetsum.mystatic.toHtml
   

     
        tohtm
        /web/tohtm
     

    使用方法很简单  mytest.jsp(wwwroot下)
    生成静态页    kszx.jsp为要生成htm的动态页
    如果不在wwwroot下,在wwwroot/pp下
    就要写成
    生成静态页

 

【责编:Ken】

--------------------next---------------------

阅读(185) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~