有一种生成静态页面的方法是这样的:它通过访问这个jsp,然后在编译的时候捕获到servlet生成的代码,然后输出来,就是最后得到的页面,代码如下:java.io.InputStream in;
            URL url = new java.net.URL(httpUrl);
            HttpURLConnection connection = (HttpURLConnection) url
                    .openConnection();
            //connection = (HttpURLConnection) url.openConnection();
            connection.setRequestProperty("User-Agent", "Mozilla/4.0");
            connection.connect();
            in = connection.getInputStream();
            java.io.BufferedReader breader = new BufferedReader(
                    new InputStreamReader(in, charset));
            String currentLine;
            while ((currentLine = breader.readLine()) != null) {
                htmlCode += currentLine;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 得到生成html的时间差
            Date after = new Date();
            end = after.getTime();
            ttime = end - star;
            // System.out.println("执行时间:" + ttime / 1000 + "秒");
        }
        return htmlCode;
现在有个问题是这样的:
in = connection.getInputStream();就是捕获的内容,直接用main方法运行这个类时可以正常执行。
但现在我做的网站要求这样做:在网站后台上加一个按钮,点击按钮,进入到action层,然后在action层调用这个类来生成静态页面,这时候就乱了in = connection.getInputStream();获取不到内容了。
我猜想原因是因为:程序进入action的时候,也产生了connection流,这个流跟生成静态页面中建立的connection在一起,因此in = connection.getInputStream();获取不到了
请问有没有一个方法能把以前的connection流都清空了。?

解决方案 »

  1.   

    你的需求是
    你有个http://aa.com/aa.html 的静态页面
    然后通过http:/aa.com/show.jsp?httpUrl=http://aa.com/aa.html显示这个静态页面是吗?            URL url = new java.net.URL(httpUrl);
                HttpURLConnection connection = (HttpURLConnection) url
                        .openConnection();
                //connection = (HttpURLConnection) url.openConnection();
                connection.setRequestProperty("User-Agent", "Mozilla/4.0");
                connection.connect();
                in = connection.getInputStream();
    你这个in是通过httpUrl参数来的
    跟你进这个action的流没关系
    主要还是看一下你的httpUrl这个参数对不对吧
      

  2.   

    你好,不是这样个意思!
    我做的是一个网站,网站首页是用jsp写的。。因为jsp是动态的,所以每次访问都会再动态生成,速度可能会慢点!
    现在我通过这个方法访问这个jsp可以生成一个静态页面,这个静态页面跟直接访问我的这个jsp效果是一样的,
    现在我用定时器每小时生成一次,这种情况下你访问首页时只是在访问这个静态页面,并不是最新,最大延时是1个小时(这个页面每小自动更新)!
    现在客户需求给一个功能,让你能马上生成这个静态页面,因为有时候可能会有紧急信息要发布