如何将动态页面转化为静态页面发布


  其实利于SEO搜索的可以有伪静态和纯动态。下面就分两种情况介绍:
  1、如果是伪静态只要想办法包装一下url,让他看起来像个静态地址就行。
 
  如果想要真静态,可以通过io,把页面写到一个真实的html文件中,以后可以直接访问这个这个文件地址。
 
  2、java生成静态页面无需特殊配置,非常简单的,下面有各种输出需求,看你要哪种就拿去用吧
 
  importjavax.servlet.http.HttpServletRequest;
 
  importjava.util.List;
 
  importjava.util.ArrayList;
 
  importjava.util.Date;
 
  importjava.net.URL;
 
  importjava.net.URLConnection;
 
  importjava.io.*;
 
  publicclassJspToHtml{
 
  privatestaticStringtitle="标题测试";
 
  privatestaticStringcontext="标题测试";
 
  privatestaticStringediter="标题测试";
 
  /**
 
  *根据本地模板生成静态页面
 
  *@paramJspFilejsp路经
 
  *@paramHtmlFilehtml路经
 
  *@return
 
  */
 
  publicstaticbooleanJspToHtmlFile(StringfilePath,StringHtmlFile){
 
  Stringstr="";
 
  longbeginDate=(newDate()).getTime();
 
  try{
 
  StringtempStr="";
 
  FileInputStreamis=newFileInputStream(filePath);//读取模块文件
 
  BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
 
  while((tempStr=br.readLine())!=null)
 
  str=str+tempStr;
 
  is.close();
 
  }catch(IOExceptione){
 
  e.printStackTrace();
 
  returnfalse;
 
  }
 
  try{
 
  str=str.replaceAll("###title###",
 
  title);
 
  str=str.replaceAll("###content###",
 
  context);
 
  str=str.replaceAll("###author###",
 
  editer);//替换掉模块中相应的地方
 
  Filef=newFile(HtmlFile);
 
  BufferedWritero=newBufferedWriter(newFileWriter(f));
 
  o.write(str);
 
  o.close();
 
  System.out.println("共用时:"+((newDate()).getTime()-beginDate)+"ms");
 
  }catch(IOExceptione){
 
  e.printStackTrace();
 
  returnfalse;
 
  }
 
  returntrue;
 
  }
 
  /**
 
  *根据url生成静态页面
 
  *
 
  *@paramu动态文件路经如:http://www.163.com/x.jsp
 
  *@parampath文件存放路经如:x:\\abc\bbb.html
 
  *@return
 
  */
 
  publicstaticbooleanJspToHtmlByURL(Stringu,Stringpath){
 
  //从utl中读取html存为str
 
  Stringstr="";
 
  try{
 
  URLurl=newURL(u);
 
  URLConnectionuc=url.openConnection();
 
  InputStreamis=uc.getInputStream();
 
  BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
 
  while(br.ready()){
 
  str+=br.readLine()+"\n";
 
  }
 
  is.close();
 
  //写入文件
 
  Filef=newFile(path);
 
  BufferedWritero=newBufferedWriter(newFileWriter(f));
 
  o.write(str);
 
  o.close();
 
  str="";
 
  returntrue;
 
  }catch(Exceptione){
 
  e.printStackTrace();
 
  returnfalse;
 
  }
 
  }
 
  /**
 
  *根据url生成静态页面
 
  *
 
  *@paramurl动态文件路经如:http://www.163.com/x.jsp
 
  *@returnd
 
  */
 
  publicstaticStringBuffergetHtmlTextByURL(Stringurl){
 
  //从utl中读取html存为str
 
  StringBuffersb=newStringBuffer();
 
  try{
 
  URLu=newURL(url);
 
  URLConnectionuc=u.openConnection();
 
  InputStreamis=uc.getInputStream();
 
  BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
 
  while(br.ready()){
 
  sb.append(br.readLine()+"\n");
 
  }
 
  is.close();
 
  returnsb;
 
  }catch(Exceptione){
 
  e.printStackTrace();
 
  returnsb;
 
  }
 
  }
 
  /**
 
  *测试main函数
 
  *
 
  *@paramarg
 
  */
 
  publicstaticvoidmain(String[]arg){
 
  longbegin=System.currentTimeMillis();
 
  //循环生成20个html文件
 
  for(intk=0;k<20;k++){
 
  Stringurl="E:\\workspace\\oa\\golatel\\utils\\Temp\\mb.htm";//模板文件地址
 
  Stringsavepath="d:/"+k+".html";//生成文件地址
 
  JspToHtmlFile(url,savepath);
 
  }
 
  System.out.println("用时:"+(System.currentTimeMillis()-begin)+"ms");
 
  }
 
  }
 
  //模板文件名称leon.html