從JSP,ASP等動態頁面生成靜態頁面的實現方式



在網站應用中,為了提高頁面的訪問速度,經常需要將動態頁面靜態化以提高頁面的訪問速度,因為動態頁面一般要從數據庫檢索信息,頻繁訪問動態頁面會大大提高數據庫的負載,並且訪問速度也比靜態頁面慢.本文通過在程序裡建立一個http請求,將返回的輸出流存儲為html文件的方式來生成靜態頁面.在CMS類的應用中,信息發佈完可直接調用這段代碼,給定一個動態連接地址如http://www.QQView.com/cms/info.jsp?infoid=001,生成一個靜態頁面,代碼如下:

 

package org.apache.easframework.common;

import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;


/**
 * 將信息發佈為靜態頁面
 * @author bzwang
 *
 */
 
public class DynInfo2Html
{
 /**
  * 將信息轉化為靜態html
  * @param sSourceUrl 動態信息訪問URL
  * @param sDestDir  存儲為靜態文件的目錄
  * @param sHtmlFile 生成的靜態文件名,可以按信息的唯一ID+.html命名
  * @throws IOException
  */
 public static void convert2Html(String sSourceUrl,String sDestDir,String sHtmlFile) throws IOException
 {
       int HttpResult; 
        URL url=new URL(sSourceUrl); 
        URLConnection urlconn=url.openConnection(); 
        urlconn.connect(); 
        HttpURLConnection httpconn=(HttpURLConnection)urlconn; 
        HttpResult=httpconn.getResponseCode(); 
        if(HttpResult!=HttpURLConnection.HTTP_OK) 
        { 
               
          
        } 
        else 
        {  
         InputStreamReader isr =
          new InputStreamReader(httpconn.getInputStream());
          BufferedReader in = new BufferedReader(isr);
         
          String inputLine;
          if(!sDestDir.endsWith("/"))sDestDir+="/";
          FileOutputStream fout = new FileOutputStream(sDestDir+sHtmlFile);
          while ((inputLine = in.readLine()) != null)
          {
           fout.write(inputLine.getBytes());
          }
          in.close();
          fout.close();
        }
 }
 
 public static void main(String[] args) throws IOException
 {
  
  convert2Html("http://www.QQView.com/system/show.jsp?infoid=b3cd5cf4082a4bbebe70e332cb43fcb2","D:/projects/myproject/Src/b2c_front/Jsp/module/bzhzx/html","aaaa.html");
 
 }

}





文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:

评论: 0 | 引用: 0 | 查看次数: 4471
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭