JSP結合JavaBean產生靜態頁面樣本
1、為什麼要做:節省不停操作資料庫的開支,減少解析JSP頁面的開支
2、怎麼做:很簡單,就是利用檔案操作,把需要的內容與現成的模板相合成再寫入一個新的靜態WEB頁面就OK。
3、功能擴充:這裡只是利用檔案寫出的方式,將組合的HTML的內容寫入到一個WEB頁面裡去,但是,為了引用,讓其的頁面知道有該頁面的存在,我們還是得在資料庫或者是靜態頁面裡加上這個資訊。為了簡便,你這裡就可以採用資料庫,當然你要全部採用靜態頁面也可以,可能操作就複雜一點,不過,如果你能夠完整理解這個樣本,那其它的都不是問題。
    3.1 檔案名稱的產生:可以用隨機產生的方式,怎麼產生就看個人的喜好了,可以是全數字,也可以加字母等等。
    3.2 儲存檔案名稱及路徑到資料庫:這樣前台用一個頁顯示所有已經存在的靜態頁面,方便訪問。
 
4、下面是一個簡單的樣本:
 
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
 
publicclass JspToStaticHTMLTest {
    public JspToStaticHTMLTest() {
    }
    String midStr;//中間產生的如文章的文字等
    String fileName="demo.htm";
    /**
     *一個模板中的頭字串
     *@return
     */
    private String getHeadStr() {
        String s="<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"n" + 
        ""http://www.w3.org/TR/html4/loose.dtd">n" + 
        "<%@ page contentType="text/html;charset=GBK"%>n" + 
        "<%@ page import="palfinger.bean.GetComponentDetailListDependByID_FinishedProduct_add_in"%>n" + 
        "<html>n" + 
        " <head>n" + 
        "    <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>n" + 
        "    <title>JSP加JAVA</title>n" + 
        "    <script language="JavaScript1.2" type="text/javascript" src="function.js">n" + 
        "    </script>n" + 
        " </head>n" + 
        " <body>n" + 
        " <center>";
        return s;
    }
    /**
     *一個模板中的尾字串
     *@return
     */
    private String getTailStr() {
        String s=" </center>n" + 
        " </body>n" + 
        "</html>";
        return s;
    }
    /**
     *中間就是我們需要的、動態產生的字串,
     *@parammidStr
     */
    publicvoid setMidStr(String midStr) {
        this.midStr = midStr;
    }
    /**
     *取得中間動態產生的字串
     *@return
     */
    private String getMidStr() {
        returnmidStr;
    }
    /**
     *整個字串
     *@return
     */
    private String HTMLStr() {
        String s=getHeadStr()+getMidStr()+getTailStr();
        return s;
    }
    publicvoid setFileName(String fileName) {
        this.fileName = fileName;
    }