原创 在一个jsp页面中显示另外一个页面

2008-3-12 20:21 3462 3 3 分类: 软件与OS

下面这个类具有如下作用:


读取指定页面文件,转换文件编码,并且对指定的页面文件中的相对路径进行修改,以保证其引用内容正确显示。


 


class StringFuncs{
 public String InsertPageBody(String strFileName){
  File objFile="null"; //文件对象
  FileReader objFileReader="null"; //读文件对象
  BufferedReader  bufReader="null"; //缓冲对象
  //char[] chrBuffer = new char[10]; //缓冲
  //int intLength; //实际读出的字符数(一个中文为一个字符)
  String str = "";
  String tmp_str=null;
  
  //创建文件对象
  objFile = new File(strFileName);
  
  if(objFile!=null){
  
   //判断文件是否存在
   if( objFile.exists() ){//文件存在
    //创建读文件对象
    try{
     objFileReader = new FileReader(objFile);
     
     if(objFileReader!=null){      
     
      //创建缓冲对象
      bufReader=new BufferedReader(objFileReader);
      
      if(bufReader!=null){
       //读文件内容
       //while((intLength=objFileReader.read(chrBuffer))!=-1){
       while( ( tmp_str =  bufReader.readLine()
         ) != null ){
        tmp_str=new String(tmp_str.getBytes(objFileReader.getEncoding()),"UTF-8");
        
        str+=trimStr(tmp_str, "include", ".gif");
        
        //str=objFileReader.getEncoding();
        //str=new String("我的问题".getBytes("UTF-8"));
       }
       
       //关闭缓冲对象
       bufReader.close();
      }
     }
         
     //关闭读文件对象
     objFileReader.close();
    }
    catch (IOException ex) {
     ex.printStackTrace();
    }
   }
  }
  
  return str;
 }
 
 private String trimStr(String str, String insert_str, String ext_str){
  //String str = "this is an example = sss =\"tss/oum.img\" ";
  //String insert_str="Insert Me";
  String tmp_str="";
  int index="0", ori_index=0;
  char tmp_char=0;
  boolean finished="false";
  
  while(finished==false){
   index=str.indexOf(ext_str, ori_index);
   if(index!=-1){
    ori_index=index;
    //System.out.print("Index at img: ");
    //System.out.println(index);
    while(index>0){
     index--;
     if('='==str.charAt(index)){
      break;
     }
    }
   }
   
   if(index==-1){
    finished=true;
   }
   
   if(index!=-1){
    //System.out.print("Index at =: ");
    //System.out.println(index);
    while(index<ori_index){
     index++;
     tmp_char=str.charAt(index);
     if( ('\"'!=tmp_char) && (' '!=tmp_char) ){
      break;
     }
    }
    
    //System.out.print("Index before path: ");
    //System.out.println(index);
    
    String pre_str=str.substring(0, index);
    String pos_str=str.substring(index);
    
    tmp_char=pos_str.charAt(0);
    if( ('/'!=tmp_char) && ('\\'!=tmp_char) ){
     tmp_str=str.substring(index, ori_index);
     if(-1!=tmp_str.indexOf('\\')){
      tmp_str="\\";
     }
     else{
      tmp_str="/";
     }
    }
    else{
     tmp_str="";
    }
    
    str=pre_str+insert_str;
    str+=tmp_str;
    str+=pos_str;
    
    //System.out.print("Pre str: ");
    //System.out.println(pre_str);
    //System.out.print("Insert str: ");
    //System.out.println(insert_str);
    //System.out.print("Post str: ");
    //System.out.println(pos_str);
    //System.out.print("Result str: ");
    //System.out.println(str);
    //System.out.println();
    //System.out.println();
    //System.out.println();
   }
   
   if(finished==false){
    ori_index+=insert_str.length()+ext_str.length();
   }
  }
  
  return str;
 }
}

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /2 下一条