在某些应用中,将本该由动态页面每次获取客户端请求时去调用数据的过程转换为在添加数据时即生成为静态页面,对服务器的压力,数据库检索的压力,以及搜索引擎收录,包括防止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模板引擎有FreeMarker、Thymeleaf和Velocity等。这些引擎允许开发者将业务逻辑与视图层分离,提高代码的可读性和可维护性。 3. **Java_静态页面**:Java可以用于生成静态HTML页面,通常是通过后端处理...
Java CMS是一个基于Java技术开发的系统,用于管理网站内容,如文章、图片、视频等。它通常包含一套完善的权限控制、内容编辑、模板设计和发布功能。用户可以通过友好的后台界面进行内容的添加、修改和删除,而无需...
在Java中生成静态HTML,我们可以使用模板引擎(如FreeMarker或Thymeleaf)或直接操作字符串来构建HTML内容。这些方法在构建静态站点、生成报告或者构建API文档时特别有用。下面,我们将深入探讨这两种方法: 1. **...
Java 生成静态页是一种常见的优化网站性能的技术,它将原本由服务器动态生成的网页内容转换为静态HTML文件,然后提供给客户端直接下载和浏览。这种技术可以显著减少服务器的负载,提高页面加载速度,尤其在高并发...
iText支持直接在PDF文档中添加内容,同时也支持根据模板生成PDF。你可以预先创建一个PDF模板,然后在运行时填充数据。iText的优点在于其灵活性和丰富的API,但可能需要更多的代码来实现复杂的功能。 五、Apache FOP...
### 使用Java代码生成静态页面的知识点 在当前的网络环境中,很多开发者会遇到需要通过程序自动生成静态HTML页面的需求。这种需求通常出现在博客系统、新闻网站或是任何需要定期更新大量内容且希望减轻服务器动态...
在这个特定的场景中,"java解决网站静态页面生成方案(源码)" 提供了一个利用Java实现的解决方案,旨在提高网站性能和用户体验。静态页面通常加载更快,对搜索引擎友好,且在高并发访问时能更好地处理负载。 生成...
在Java编程领域,生成静态页面是一项常见的任务,尤其在构建网站、文档系统或者API文档时。这个过程通常涉及将动态内容转化为HTML格式的静态文件,以便于提高网站的加载速度和减少服务器负担。本篇文章将深入探讨...
Java提供了一些强大的库来实现这个功能,其中就包括利用Word模板生成自定义内容。在这个案例中,我们将探讨如何使用Java,结合XML、Freemarker等技术,来实现这一目标。 首先,让我们了解一下核心的Java库Apache ...
网站生成静态页面是一种常见的优化策略,它通过将动态内容转换为HTML文件,使得用户在访问时无需与数据库交互,从而减轻服务器压力,提高网站加载速度和用户体验。在本篇文章中,我们将探讨几种主流的静态页面生成...
在IT行业中,生成静态页面是一种常见的优化网站性能和提高用户体验的方法。它涉及到将动态内容转换为HTML文件,这些文件可以直接由Web服务器提供,无需每次都执行服务器端的脚本。在这个场景下,我们主要关注的是...
网站后台管理静态模板是网页设计领域中一个重要的组成部分,它主要负责提供网站管理员进行内容更新、数据管理和系统设置的工作环境。这种模板通常不包含动态服务器端脚本,而是由HTML、CSS和JavaScript等前端技术...
总结来说,使用Java和Apache POI生成PPT文件涉及理解PPT文件结构、掌握POI API、创建模板、数据绑定和错误处理等多个步骤。在给定的代码中,可能有两个不同的迭代实现,分别对应两种不同的处理方式或优化策略。通过...
它可能利用了NVelocity模板引擎,这是一款开源的Java模板语言,尽管这里提及的“NVelocityMVCToHtml”在ASP.NET MVC3中可能是一个非标准的解决方案,但其原理是将MVC视图渲染为HTML字符串,然后保存为静态文件。...
描述 "java生成静态html代码 一个简单的实例 自己去扩展" 提到这是一个基础的实现,用于生成静态HTML页面。这意味着生成的HTML文件不会包含任何服务器端的脚本,例如JSP(JavaServer Pages)。此实例提供了一个起点...
生成静态页面技术解决方案是指通过某种技术手段将动态网页转换为静态网页,从而提高网站的访问速度和减少服务器的负载量。本文将对生成静态页面技术解决方案进行详细的介绍。 生成静态页面技术解决方案的优点: 1....
Java 自动生成静态页面技术是一种将动态网站内容转化为静态HTML页面的方法,这有助于提高网站的访问速度和搜索引擎优化。在本示例中,"java自动生成静态页面Demo源码" 提供了一个完整的实现,包括源代码和可能使用的...
* 根据本地模板生成静态页面 * @param JspFile jsp 路径 * @param HtmlFile html 路径 * @return */ public static boolean JspToHtmlFile(String filePath, String HtmlFile) { String str = ""; long ...
在Java Web应用中,静态页面通常是指不依赖服务器动态生成内容的网页,如HTML、图片、CSS样式表和JavaScript脚本等。 在Java中,开发静态页面主要使用Tomcat或Jetty等Web服务器,这些服务器可以托管静态资源。当...
这款系统的核心特点在于支持静态页面生成,这是一个关键的技术特性,对提升网站性能和SEO优化具有显著作用。 1. **企业网站管理**:企业网站管理系统是企业进行线上业务展示、宣传和运营的重要平台。它包括内容管理...