想使jsp变成静态html文件,从网上找到一个,可是没有注释,无从下手,希望高手帮忙看一下。文件来自于:http://www.klstudio.com/post/103.htmlimport java.io.*;
import java.net.*;public class Tools {
    final static Object lock = new Object();
    public static void makeHtml(String page, String filePath){
        makeHtml(page,filePath,"UTF-8");
    }    public static void makeHtml(String page, String filePath,String chartset) {
        synchronized (lock) {
            HttpURLConnection huc = null;
            BufferedReader br = null;
            BufferedWriter bw = null;
            try {
                huc = (HttpURLConnection)new URL(page).openConnection();
                System.setProperty("sun.net.client.defaultConnectTimeout", "30000");
                System.setProperty("sun.net.client.defaultReadTimeout", "30000"); 
                huc.connect();
                InputStream stream = huc.getInputStream();
                bw = new BufferedWriter(new OutputStreamWriter (new FileOutputStream(filePath),chartset));
                br = new BufferedReader(new InputStreamReader(stream, chartset));
                String line;
                while((line = br.readLine())!= null){
                   if(line.trim().length() > 0){
                        bw.write(line);
                        bw.newLine();
                   }
                }
            }catch (Exception e) {
                e.printStackTrace();
            }finally {
                try {
                    br.close();
                    bw.close();
                    huc.disconnect();
                }catch (Exception e) {
                    e.printStackTrace();
                }
            } 
        }
}

解决方案 »

  1.   

    public static void makeHtml(String page, String filePath,String chartset)
    传参
    page = 访问的URL地址,例如http://xxx.xxx.xxx/xxx.jsp
    filePath = 生成的文件存放的文件夹上下文路径,例如/htmls
    chartset = 字符集编码,例如GB2312
      

  2.   

    那生成的html的文件名是什么啊?
      

  3.   

    文件名写在filePath里的.例如/htmls/test1.html
    建议好好看一看JAVA的IO包API文档.
      

  4.   

    哦,我刚才试了一下,大概明白了,可是报异常了。
    这是在servlet中的一段代码
       BusinessBean bb = new BusinessBean(); //业务逻辑类
       ArrayList arr = bb.getAll();          //调用方法,在方法体中从数据库里返回结果集,并把结果集封装到对象中放到ArrayList中
       HttpSession session = request.getSession();
       session.setAttribute("arr",arr);      //向会话中添加属性,使jsp页面接收并显示结果集
        
       Tools.makeHtml("http://localhost:8080/WebSqlTest/ShowAll.jsp","/ShowAll.html", "GB2312");  //调用生成html的方法
        response.sendRedirect("ShowAll.html");   //跳转到ShowAll.html显示
    可是报异常严重: Servlet.service() for servlet jsp threw exception
    java.lang.NullPointerException
    at org.apache.jsp.ShowAll_jsp._jspService(ShowAll_jsp.java:85)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
    java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:8080/WebSqlTest/ShowAll.jsp
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at JspToHtml.Tools.makeHtml(Tools.java:22)
    at Servlet.ServletBean.doPost(ServletBean.java:91)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
    java.lang.NullPointerException
    at JspToHtml.Tools.makeHtml(Tools.java:36)
    at Servlet.ServletBean.doPost(ServletBean.java:91)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)