网页特效phttp://www.111cn.net/网页特效p.html target=_blank >jsp教程 生成静态页面代码
buildhtml.java:
import java.util.*;
import java.io.*;
public class htmlfile{
public static void main(string[] args){
try{
string title="测试";
string content="测试"
string editer="";
string filepath = "";
filepath ="template.html";
system.out.print(filepath);
string templatecontent="";
fileinputstream fileinputstream = new fileinputstream(filepath);// 读取模板文件
int lenght = fileinputstream.available();
byte bytes[] = new byte[lenght];
fileinputstream.read(bytes);
fileinputstream.close();
templatecontent = new string(bytes);
system.out.print(templatecontent);
templatecontent=templatecontent.replaceall("###title###",title);
templatecontent=templatecontent.replaceall("###content###",content);
templatecontent=templatecontent.replaceall("###author###",editer);// 替换掉模板中相应的地方
system.out.print(templatecontent);// 根据时间得文件名
calendar calendar = calendar.getinstance();
string fileame = string.valueof(calendar.gettimeinmillis()) +".html";
fileame = "/" + fileame;// 生成的html文件保存路径。
fileoutputstream fileoutputstream = new fileoutputstream(fileame);// 建立文件输出流
system.out.print("文件输出路径:");
system.out.print(fileame);
byte tag_bytes[] = templatecontent.getbytes();
fileoutputstream.write(tag_bytes);
fileoutputstream.close();
}catch(exception e){
system.out.print(e.tostring());
}
}
}
%>
模板文件<html>
<head>
<title>${title} </title>
</head>
<body>
${content}
</body>
</html>
另一种方法 freemarker
用freemarker是这样的原理:
1.获取模板:也就是你事先必须要写好模板样例。再次调用这个模板的时候,只是从缓存中去读取而已,
不会再去对这个模板进行实例化template temp = cfg.gettemplate("test.ftl");
gettemplate方法。
2.把模板与数据模型结合:数据模型+模版=输出,而我们一旦拥有数据模型(root)和一个模版
(template)那么我们就可以把他们合并获得输出。
以上这个过程是通过template 类的process 方法来实现的,该方法需要两个参数一个是
表示数据模型的root 一个表示输出的writer。它把解析过的文件输出到writer 上。简单起
见,我把输出指定到了控制台(标准输出)
writer out = new outputstreamwriter(system.out);
temp.process(root, out);
out.flush();