在某些应用中,将本该由动态页面每次获取客户端请求时去调用数据的过程转换为在添加数据时即生成为静态页面,对服务器的压力,数据库检索的压力,以及搜索引擎收录,包括防止SQL注入都是由极大的好处的。常见的做法有很多种,包括web服务器启用rewrite,io操作生成文件等等,我正好有一段以前做j2ee开发时保留的一段io操作的方式生成html.
原理都很简单,主要是对模板的解析.so,我们先准备一个html模板
mb.html,做个文件其中的###title###之类的标签用于程序进行查询替换.
<html>
<head>
<title>###title###</title>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
</head>
<body>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td align="center">###title###</td>
</tr>
<tr>
<td align="center">###author### </td>
</tr>
<tr>
<td>###content###</td>
</tr>
<tr>
<td>###html###</td>
</tr>
</table>
</body>
</html>
下面是具体的代码:JspToHtml.java
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.ArrayList;
import java.util.Date;
import java.net.URL;
import java.net.URLConnection;
import java.io.*;
/**
* Filename: JspToHtml.java <br>
* Ttitle: jsp转换成html<br>
* De.ion: 把动态网页转换成静态网页<br>
* Author: <a href="mailto:343269876@qq.com">shaobo</a> <br>
* Date: 2006-6-19 <br>
* Time: 16:41:09 <br>
* Version: 2.0.0 <br>
*/
public class JspToHtml {
private static String title ="标题测试";
private static String context ="标题测试";
private static String editer ="标题测试";
/**
* 根据本地模板生成静态页面
* @param JspFile jsp路经
* @param HtmlFile html路经
* @return
*/
public static boolean JspToHtmlFile(String filePath, String HtmlFile) {
String str = "";
long beginDate = (new Date()).getTime();
try {
String tempStr = "";
FileInputStream is = new FileInputStream(filePath);//读取模块文件
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while ((tempStr = br.readLine()) != null)
str = str + tempStr ;
is.close();
} catch (IOException e) {
e.printStackTrace();
return false;
}
try {
str = str.replaceAll("###title###",
title);
str = str.replaceAll("###content###",
context);
str = str.replaceAll("###author###",
editer);//替换掉模块中相应的地方
File f = new File(HtmlFile);
BufferedWriter o = new BufferedWriter(new FileWriter(f));
o.write(str);
o.close();
System.out.println("共用时:" + ((new Date()).getTime() - beginDate) + "ms");
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
/**
* 根据url生成静态页面
*
* @param u 动态文件路经 如:http://www.163.com/x.jsp
* @param path 文件存放路经如:x:\\abc\bbb.html
* @return
*/
public static boolean JspToHtmlByURL(String u, String path) {
//从utl中读取html存为str
String str = "";
try {
URL url = new URL(u);
URLConnection uc = url.openConnection();
InputStream is = uc.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while (br.ready()) {
str += br.readLine() + "\n";
}
is.close();
//写入文件
File f = new File(path);
BufferedWriter o = new BufferedWriter(new FileWriter(f));
o.write(str);
o.close();
str = "";
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 根据url生成静态页面
*
* @param url 动态文件路经 如:http://www.163.com/x.jsp
* @return d
*/
public static StringBuffer getHtmlTextByURL(String url) {
//从utl中读取html存为str
StringBuffer sb = new StringBuffer();
try {
URL u = new URL(url);
URLConnection uc = u.openConnection();
InputStream is = uc.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while (br.ready()) {
sb.append(br.readLine() + "\n");
}
is.close();
return sb;
} catch (Exception e) {
e.printStackTrace();
return sb;
}
}
/**
* 测试main 函数
*
* @param arg
*/
public static void main(String[] arg) {
long begin = System.currentTimeMillis();
//循环生成20个html文件
for (int k = 0; k < 20; k++) {
String url = "E:\\workspace\\oa\\golatel\\utils\\Temp\\mb.htm";//模板文件地址
String savepath = "d:/" + k + ".html";//生成文件地址
JspToHtmlFile(url, savepath);
}
System.out.println("用时:" + (System.currentTimeMillis() - begin) + "ms");
}
}
分享到:
相关推荐
JAVA根据HTML模板生成静态页面静态页面静态页面
java:html生成图片,所有生成方法的优缺点。
JAVA操作EXCEL模板生成EXCEL方法: 可以和JSTL一样用,方便,快捷,简单] Java操作EXCEL (xls)模板生成EXCEL(xls)方法已经所需要的包
主要介绍了JAVA集成Freemarker生成静态html过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
springboot整合freemarker生成静态html的demo 主要讲解了通过模板生成html和通过字符串生成html
Engineer系统可与目前98%以上文章管理系统进行无缝结合,2%特例系统,也可通过二次编码进行整合,系统根据模板生成静态页,时刻保持网站的新鲜感。 Engineer系统是企业低成本、高负载量网站运营完美解决方案...
根据word生成模板,图片动态切割等代码工具类。
jsp 通过模板生成 shtml 可生成静态shtml首页页面 列表页即时生成[信息添加/删除/更新时,列表页自动更新] 静态分页功能* 按当前日期生成对应目录[方便管理和日后维护]
JAVA静态页面制作DW制作网页前端 一、HTML概述 二、表格与列表 三、表单与表元素 四、框架集与框架 五、CSS样式 六、 七、 …… 十三、HTML DOM
门户系统采用的 静态模板生成技术,直接生成的静态 html 模板,js + jQuery 作相应的辅助。 部署服务 采用 nginx 门户系统和 后台 管理系统 采用正向代理正常部署,服务端采用反向代理暴露接口。ThinkItCMS 的...
你可以直接写一个java main方法来调用它,我的代码生成器就是这么做的. 2.freemarker 写出来的页面一般都是xml格式友好的,也就是说你可以写出很规范的xhtml,而且还可以直接使用一些xml的代码格式化工具直接美化.而且...
CMS模块:频道管理,新闻栏目分类管理,模板管理,生成静态,文章管理,自助建站,网站设计,标签调用 商城模块:产品分类,产品管理,订单管理,定价套餐管理,产品留言,产品点评,生成静态,商城模板管理 下载...
Jspxcms是基于Java、JSP技术开发的国产开源CMS,是制作、维护网站的利器。国内CMS主要以PHP技术为主,基于Java、Jsp的CMS数量不多,功能和易用性也有一定差距。Jspxcms致力于做最好的Java CMS,依托Java的开源精神和...
工作分享:一个生成HTML页面的Java项目工程,工程是Java的Maven工程,可以直接运行使用。也可以根据您的需求改造,是基于Freemarker技术框架及模板来生成静态页面的,适合网站页面生成,便于搜索引擎收录。
ZL-B2B是贞龙公司的门户型B2B行业网站系统,采用先进的标签技术和静态生成技术,通过网站后台管理轻松实现网站前台多种风格和会员网站多风格,让每一个只要懂得简单网页制作常识的网友,轻松制作出精美专业的的行业...
JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签...
CMS模块:频道管理,新闻栏目分类管理,模板管理,生成静态,文章管理,自助建站,网站设计,标签调用 商城模块:产品分类,产品管理,订单管理,定价套餐管理,产品留言,产品点评,生成静态,商城模板管理 下载...
2、怎么做:很简单,就是利用文件操作,把需要的内容与现成的模板相合成再写入一个新的静态WEB页面就OK。 3、功能扩展:这里只是利用文件写出的方式,将组合的HTML的内容写入到一个WEB页面里去,但是,为了引用,...
又一个 JEE CMS,基于 Java 开发 的 cms 系统 java cms,ThinkItCMS 是一款面向模板开发,支持静态生成的CMS 系统,其支持前后端分离部署,是一款好用的 cms 系统
2014-5-11日,广州JUULUU发布KgcmsV5.0.2,Kgcms是国内一款JAVA开源新闻系统,新版Kgcm更加模块化,...核心功能:CMS模块:频道管理,新闻栏目分类管理,模板管理,生成静态,文章管理,自助建站,网站设计,标签调用下载模