Java 读取模板并生成HTML静态文件实例
时间:2019-08-30
本文章向大家介绍Java 读取模板并生成HTML静态文件实例,主要包括Java 读取模板并生成HTML静态文件实例使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
原理都很简单,主要是对模板的解析.so,我们先准备一个html模板
mb.html,做个文件其中的###title###之类的标签用于程序进行查询替换.
- HTML code复制代码
-
<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
- Java code复制代码
-
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> * Copyright: Copyright (c) 2002-2008 BocSoft,Inc.All Rights Reserved. <br> * Company: BocSoft<br> * Author: <a href="mailto:sgicer@163.com">阿汐</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"); } }
原文地址:https://www.cnblogs.com/zhuyeshen/p/11435473.html
- 《Redis设计与实现》读书笔记(二十三) ——Redis服务器初始化
- 警惕:Oracle中删除的分区不会进入回收站(Recyclebin)
- 《Redis设计与实现》读书笔记(二十五) ——Redis主从复制具体过程
- 基于input子系统的sensor驱动调试(一)
- 《Redis设计与实现》读书笔记(二十六) ——Redis哨兵(sentinel)启动与建立监听机制
- 《Redis设计与实现》读书笔记(二十七) ——Redis哨兵(sentinel)主服务器下线判断与故障转移
- 基于input子系统的sensor驱动调试(二)
- 编程语言中的闭包
- 《Redis设计与实现》读书笔记(二十八) ——Redis集群节点结构与槽分配
- Linux RCU 机制详解
- 《Redis设计与实现》读书笔记(二十九) ——Redis集群执行命令与重新分片
- 如何使用C语言的面向对象
- 《Redis设计与实现》读书笔记(三十) ——Redis集群节点复制与故障转移
- 掌握一点儿统计学
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- Mybatis中模糊查询like语句的使用方法
- win10暴力查看wifi密码
- 再也不怕面试官问java中的goto关键字了?
- 死磕Java之分析short类型
- 死磕Java之Java数据类型的来龙去脉
- 请不要再使用判断进行参数校验了
- 检测假新闻:比较不同的分类方法的准确率
- SpringBoot下载xlsx模板,导出excel数据
- 如何利用机器学习和Gatsby.js创建假新闻网站
- Spring Security 实战干货: 401和403状态
- Spring Data R2DBC响应式操作MySQL
- 项目端口可以设置为 6666 吗?
- 【JS】666- window.reqeustIdleCallback方法详解
- 一个无聊的宏定义
- windows的Ubuntu子系统ssh和ftp