首先,我们需要一个html模板:

  1. <html>
  2. <head>
  3. <title>###title###</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gbk">
  5. </head>
  6.  
  7. <body>
  8. <table width="500" border="0" align="center" cellpadding="0" cellspacing="2">
  9. <tr>
  10. <td align="center">###title###</td>
  11. </tr>
  12. <tr>
  13. <td align="center">###author### </td>
  14. </tr>
  15. <tr>
  16. <td>###content###</td>
  17. </tr>
  18. <tr>
  19. <td>###html###</td>
  20. </tr>
  21.  
  22. </table>
  23. </body>
  24. </html>

其次:我们编写java代码实现模板读取,页面生成:

  1. import javax.servlet.http.HttpServletRequest;
  2. import java.util.List;
  3. import java.util.ArrayList;
  4. import java.util.Date;
  5. import java.net.URL;
  6. import java.net.URLConnection;
  7. import java.io.*;
  8.  
  9. /**
  10. * Filename: JspToHtml.java <br>
  11. * Ttitle: jsp转换成html<br>
  12. * De.ion: 把动态网页转换成静态网页<br>
  13. * Copyright: Copyright (c) 2002-2008 BocSoft,Inc.All Rights Reserved. <br>
  14. * Company: BocSoft<br>
  15. * Author: <a href="mailto:sgicer@163.com">阿汐</a> <br>
  16. * Date: 2006-6-19 <br>
  17. * Time: 16:41:09 <br>
  18. * Version: 2.0.0 <br>
  19. */
  20. public class JspToHtml {
  21.  
  22. private static String title ="标题测试";
  23. private static String context ="标题测试";
  24. private static String editer ="标题测试";
  25.  
  26. /**
  27. * 根据本地模板生成静态页面
  28. * @param JspFile jsp路经
  29. * @param HtmlFile html路经
  30. * @return
  31. */
  32. public static boolean JspToHtmlFile(String filePath, String HtmlFile) {
  33. String str = "";
  34. long beginDate = (new Date()).getTime();
  35. try {
  36. String tempStr = "";
  37.   FileInputStream is = new FileInputStream(filePath);//读取模块文件
  38. BufferedReader br = new BufferedReader(new InputStreamReader(is));
  39. while ((tempStr = br.readLine()) != null)
  40. str = str + tempStr ;
  41. is.close();
  42. } catch (IOException e) {
  43. e.printStackTrace();
  44. return false;
  45. }
  46. try {
  47.  
  48. str = str.replaceAll("###title###",title);
  49.    str = str.replaceAll("###content###",context);
  50.    str = str.replaceAll("###author###",editer);//替换掉模块中相应的地方
  51.  
  52. File f = new File(HtmlFile);
  53. BufferedWriter o = new BufferedWriter(new FileWriter(f));
  54. o.write(str);
  55. o.close();
  56. System.out.println("共用时:" + ((new Date()).getTime() - beginDate) + "ms");
  57. } catch (IOException e) {
  58. e.printStackTrace();
  59. return false;
  60. }
  61. return true;
  62. }
  63.  
  64. /**
  65. * 根据url生成静态页面
  66. *
  67. * @param u 动态文件路经 如:http://www.163.com/x.jsp
  68.  
  69. * @param path 文件存放路经如:x:\\abc\bbb.html
  70. * @return
  71. */
  72. public static boolean JspToHtmlByURL(String u, String path) {
  73. //从utl中读取html存为str
  74. String str = "";
  75. try {
  76. URL url = new URL(u);
  77. URLConnection uc = url.openConnection();
  78. InputStream is = uc.getInputStream();
  79. BufferedReader br = new BufferedReader(new InputStreamReader(is));
  80. while (br.ready()) {
  81. str += br.readLine() + "\n";
  82.  
  83. }
  84. is.close();
  85. //写入文件
  86. File f = new File(path);
  87. BufferedWriter o = new BufferedWriter(new FileWriter(f));
  88. o.write(str);
  89. o.close();
  90. str = "";
  91. return true;
  92. } catch (Exception e) {
  93. e.printStackTrace();
  94. return false;
  95. }
  96. }
  97.  
  98. /**
  99. * 根据url生成静态页面
  100. *
  101. * @param url 动态文件路经 如:http://www.163.com/x.jsp
  102.  
  103. * @return d
  104. */
  105. public static StringBuffer getHtmlTextByURL(String url) {
  106. //从utl中读取html存为str
  107. StringBuffer sb = new StringBuffer();
  108. try {
  109. URL u = new URL(url);
  110. URLConnection uc = u.openConnection();
  111. InputStream is = uc.getInputStream();
  112. BufferedReader br = new BufferedReader(new InputStreamReader(is));
  113. while (br.ready()) {
  114. sb.append(br.readLine() + "\n");
  115. }
  116. is.close();
  117. return sb;
  118. } catch (Exception e) {
  119. e.printStackTrace();
  120. return sb;
  121. }
  122. }
  123.  
  124. /**
  125. * 测试main 函数
  126. *
  127. * @param arg
  128. */
  129. public static void main(String[] arg) {
  130. long begin = System.currentTimeMillis();
  131.    //循环生成10个html文件
  132. for (int k = 0; k < 10; k++) {
  133. String url = "E:\\workspace\\oa\\golatel\\utils\\Temp\\mb.htm";//模板文件地址
  134. String savepath = "d:/" + k + ".html";//生成文件地址
  135. JspToHtmlFile(url, savepath);
  136. }
  137. System.out.println("用时:" + (System.currentTimeMillis() - begin) + "ms");
  138. }
  139. }

Java读取根据HTML模板生成HTML页面的更多相关文章

  1. html模板生成静态页面及模板分页处理

    它只让你修改页面的某一部分,当然这"某一部分"是由你来确定的.美工先做好一个页面,然后我们把这个页面当作模板(要注意的是这个模板就没必要使用EditRegion3这样的代码了,这种 ...

  2. 【Java】itext根据模板生成pdf(包括图片和表格)

    1.导入需要的jar包:itext-asian-5.2.0.jar itextpdf-5.5.11.jar. 2.新建word文档,创建模板,将文件另存为pdf,并用Adobe Acrobat DC打 ...

  3. 利用模板生成html页面(NVelocity)

    公司的网站需要有些新闻,每次的新闻格式都是一样的,而不想每次都查询操作,所以想把这些新闻的页面保存成静态的html,之后搜索了下就找到了这个模板引擎,当然其他的模板引擎可以的,例如:Razor,自己写 ...

  4. JAVA使用itext根据模板生成PDF文档

    1.制作PDF模板 网址打开:https://www.pdfescape.com/open/ 我们这里先在线上把基础的内容用word文档做好,然后转成PDF模板,直接上传到网站上,这样方便点 假设我们 ...

  5. Java Web项目--使用JSP生成一个页面

    我们使用了servlet生成了一个网页,但是可以看到使用servlet生成网页必须将网页的内容全部嵌入到Java代码当中,不是很方便.所以有没有什么办法是将Java代码嵌入到html代码中,而不是像s ...

  6. Java Web项目--使用Servlet生成一个页面

    为了生成一个servlet对应的网页.我们需要新建一个web.xml,其中将会放置servlet的相关信息.web.xml文件放置在WebContent/WEB-INF/目录下.(我们在Eclipe中 ...

  7. 第四篇:java读取Excel简单模板

    场景:对于经常需要导入Excel模板或数据来解析后加以应用的,使用频率非常之高,做了一个比较稳定的版本,体现在这些地方工具:org.apache.poi使用前必须了解这些:1.要解析,那肯定先判断是不 ...

  8. java 根据word xml模板生成word

    这里用的是poi相关jar包以及freemarker插值技术实现,poi相关jar包这里不再述说 1,编辑word并保存为xml 2,把xml后缀改为ftl文件 3,前端代码 // alert(jso ...

  9. html-webpack-plugin插件 根据模板生成多页面

    1.项目目录结构为: 2.webpack.config.js配置文件为: var htmlWebpackPlugin = require('html-webpack-plugin'); module. ...

随机推荐

  1. 【原创】大数据基础之Gobblin(2)持久化kafka到hdfs

    gobblin 0.10 想要持久化kafka到hdfs有很多种方式,比如flume.logstash.gobblin,其中flume和logstash是流式的,gobblin是批处理式的,gobbl ...

  2. warning C4819 的解决方法

    编译VC++程序的时候出现如下提示警告: warning C4819: The file contains a character that cannot be represented in the ...

  3. Intellij Idea 建立maven项目 报错 :java: 错误: 不支持发行版本 5

    百度一搜这个错误,好多人都遇到了 不计其数的人都遇到.网上大多数都是菜鸟的愚见.经过本人的测试发现,用Idea建立普通的Java项目 然后随便建立一个类运行就不会报错. 但是如果用Idea建立一个普通 ...

  4. Java注解【三、注解的分类】

    按运行机制分 源码注解 只在源码中存在 编译时注解 在class中依然存在,如@Deprecated 运行时注解 运行阶段起作用,如@Autowired 按来源分 JDK自带注解 三方注解 最常见 自 ...

  5. Java学习笔记【三、运算符、表达式、语句】

    运算符 算数运算符 /* / % ++ -- 关系运算符 == != > /< >= /<= 位运算符 &(按位与,有0是0,否则1) |(按位或,有1是1,否则0) ...

  6. c++11 移动语义move semantics

    performance, expensive object copies move semantics, temporary objects implemented with rvalue refer ...

  7. deep_learning_Function_ Matplotlib 3D 绘图函数 plot_surface 的 rstride 和 cstride 参数

    今晚开始接触 Matplotlib 的 3D 绘图函数 plot_surface,真的非常强大,图片质量可以达到出版级别,而且 3D 图像可以旋转 ,可以从不同角度来看某个 3D 立体图,但是我发现各 ...

  8. elk快速入门-filebeat

    filebeatFilebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到e ...

  9. 【icpc2019网络赛南昌站】Yukino With Subinterval

    傻b错误调一天系列 原题: 大意:给你一个数列a,字词两种操作: 1.把c[l]改成r 2.询问在区间[l,r]中,有多少个极大子区间满足子区间里的数全部一样,且在[x,y]范围内 (对于满足条件的区 ...

  10. netty-4.客户端与服务端心跳

    (原) 第四篇,客户端与服务端心跳 心跳事件有三种,读空闲,写空闲,读写空闲,定义在了IdleState枚举类中,分别为READER_IDLE,WRITER_IDLE,ALL_IDLE 服务端: ma ...