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;
}
public String getFileName() {
returnfileName;
}
/**
*将该字符串写到文件中,并保存
*/
publicvoid 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();
}
}
/**
*测试例子
*@paramarg
*/
publicstaticvoid 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了。