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
了。