JSP结合JavaBean生成静态页面示例

时间:2022-11-12 23:51:54
 
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;
 
public class 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;
    }
    /**
     * 中间就是我们需要的、动态生成的字符串,
     * @param midStr
     */
     public void setMidStr(String midStr) {
        this . midStr = midStr;
    }
    /**
     * 取得中间动态生成的字符串
     * @return
     */
    private String getMidStr() {
        return midStr ;
    }
    /**
     * 整个字符串
     * @return
     */
    private String HTMLStr() {
        String s=getHeadStr()+getMidStr()+getTailStr();
        return s;
    }
    public void setFileName(String fileName) {
        this . fileName = fileName;
    }
 
    public String getFileName() {
        return fileName ;
    }
    /**
     * 将该字符串写到文件中,并保存
     */
    public void writeStaticHTML() {
        File file= new File( "" );        ;       
        File f= new File(getFileName());
        FileWriter fw;
        try {
            //f.createNewFile();
            fw = new FileWriter(f);
           BufferedWriter bw= new BufferedWriter(fw);
            bw.write(HTMLStr());
            bw.flush();
            bw.close();
            fw.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 测试例子
     * @param arg
     */
    public static void main(String[] arg) {
        JspToStaticHTMLTest test= new JspToStaticHTMLTest();
        test.setMidStr( "Hello" );
        test.writeStaticHTML();
    }
}
5、如果想在 JSP 页面里引用该 BEAN ,那也方便,采用
<jsp:useBean id="test" class=" JspToStaticHTMLTest"/>
<%
test.setMidStr(“ 内容 ”);
test.writeStaticHTML();
%>
OK 了。