生成静态页面的技术是如何实现的
2018-05-26 · 百度知道合伙人官方认证企业
不一定是生成html,也可能是地址栏重写,urlrewrite,可以看下http://wenku.baidu.com/view/f0f89972f242336c1eb95ed7.html
不过一般生成静态页面有两种方式,一种就是采用模板,例如freemaker或Velocity,
另一种是Mapping方式生成静态页面,
给你点代码看看
freemaker生成静态页面
/**
* 生成静态页面主方法
* @param contextServletContext
* @param data一个Map的数据结果集
* @param templatePathftl模版路径
* @param targetHtmlPath生成静态页面的路径
*/
static final String templatePath = "/WEB-INF/freemaker/"; //模板存放的路径
//指定ServletContext生成静态页面
public static void crateHTML(ServletContext context,Map data,String htmlPath,String filename,String ftlname,String bianma){
Configuration freemarkerCfg = new Configuration();
// 加载模版
freemarkerCfg.setServletContextForTemplateLoading(context, "/");
freemarkerCfg.setEncoding(Locale.getDefault(), "UTf-8");
try {
// 指定模版路径
ftlname = templatePath+ftlname;
Template template = freemarkerCfg.getTemplate(ftlname,"UTf-8");
template.setEncoding("UTf-8");
// 静态页面路径
htmlPath = context.getRealPath(htmlPath)+"/"+filename;;
File htmlFile = new File(htmlPath);
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFile), bianma));
// 处理模版
template.process(data, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}