由于遇到一个特殊情况,因此有此方面的需求。
使用Servlet进行相关处理及配置方面的细节均不做详细说明。
在Servlet中的处理代码如下:String filename="E:\\index.jsp";FileInputStream fis = new FileInputStream(filename); 
InputStreamReader Inputreader = new InputStreamReader(fis,"utf-8"); //我的编码是utf-8
BufferedReader br = new BufferedReader(Inputreader);String temp=br.readLine();
StringBuffer data=new StringBuffer();
while( temp!=null){   
      data.append(temp); //接着读下一行 
      temp=br.readLine();
}
System.out.println(data); //此时发现data输出的内容完全把index.jsp的内容打乱了。
PrintWriter out=resp.getWriter();
out.println(data.toString());
out.flush();
out.close();
还有一个问题,发现data的内容字节数总是比原文件要少一些。导致输出到前台的时候发现会有问题。因为在下希望将原有的index.jsp内容保存完整,并在处理请求时在原文件内容中的<head>元素中插入一些<meta>信息。
但现在没插入都会少内容。请问如何解决此问题?
PS:
index.jsp中有java代码也有js代码等。

解决方案 »

  1.   

    晕。
    data.append(temp); //接着读下一行 加一个换行符就行了:data.append(temp+"\n"); //接着读下一行 
      

  2.   

    自己搞定。那就大家来接分吧。
    如果大家有效率更高的,希望赐教。因为index.jsp中的内容可能会比较多。
      

  3.   

    我不明白为什么要这样做?直接在 index.jsp 中把 META 写在上面不就得了?
      

  4.   

    String temp=br.readLine();
    StringBuffer data=new StringBuffer();
    while( temp!=null){   
          data.append(temp); //接着读下一行 
          temp=br.readLine();
    }
    System.out.println(data); //此时发现data输出的内容完全把index.jsp的内容打乱了。少了回车:
    while( temp!=null){   
          data.append(temp).append("\n"); //接着读下一行 
          temp=br.readLine();
    }
      

  5.   

    想在<head/>标签中插入<meta>内容,用正则表达式就可以实现。
    转http://www.99cpa.com/50330.html
      

  6.   

    晕。发现一个严重问题。尽管能够把index.jsp的内容输出。
    但到客户端看到的仍是jsp代码,而不是二次解析后的html代码。
      

  7.   


    URL的话会出现:文件找不到异常!(文件名、目录名或卷标语法不正确。)
      

  8.   

    这么做有意义吗?如果非要这么做,那写一个servlet,把你出来好的流输出去,浏览器直接请求servlet
      

  9.   

    这样刷出去应该只是纯文本了,试着把它转化一下html,在前台页面document.body.append()一下就可以了
      

  10.   

    或者在页面放置一个控件,IE的话就innerHTML加载刷出去的内容