首先,我们需要一个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. python之uWSGI和WSGI

    WSGI协议 首先弄清下面几个概念:WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web ...

  2. vue项目使用qrcodejs2生成二维码

    最近写项目遇到一个需求,根据后台给的地址生成二维码,在网上找了下,qrcodejs2使用还是比较多,试了下也能实现需求,就整理下使用方法,方便以后使用   1. 安装包 cnpm i qrcodejs ...

  3. 退居三线iOS开发的自主开发历程

    忙前忙后,一切终将步入正轨,在忙也要抽出时间思考自己的事情 推荐一篇简书(https://www.jianshu.com/u/8367278ff6cf)讲解很官方 Metal体验 学习了一些基础的视频 ...

  4. fastadmin 随笔 刷新表格数据 获取当前登录人信息 服务端导出Excel

    table.bootstrapTable('refresh',{url:'你的url'}); 获取当前登录人信息 $this->auth就能获取当前用户信息,比如$this->auth-& ...

  5. mtd介绍

    转:http://blog.csdn.net/lwj103862095/article/details/21545791 MTD,Memory Technology Device即内存技术设备 字符设 ...

  6. SQL语句复习【专题六】

    SQL语句复习[专题六] 用户 + 创建表  --创建一个新的用户,然后给新的用户创建一张表,然后给表中添加一些数据.查询表中的数据 --创建用户需要比较大的权限 DBA create user di ...

  7. PAT Basic 1092 最好吃的月饼 (20 分)

    月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种. 若想评比出一种“最好吃”的月饼,那势必在吃货界引发一场腥风血雨…… 在这里我们用数字说话,给出全国各地各种月饼的销量,要求你从中找出 ...

  8. 更新对象sql语句

    可以这么理解,我们以0为临界值,控制  OR 前 或者  OR后面部分的执行,为啥不是大于0作为临界值,因为这是int型主键. 之前我觉得这不就是炫酷嘛,这么些实际场景在哪里?下面来介绍一下实际的应用 ...

  9. 下载好的vue项目如何在自己电脑环境上运行,步骤!!

    本文链接:https://blog.csdn.net/qq_39309900/article/details/84837659首先第一步,需要安装node.js 下载地址:https://nodejs ...

  10. MyBatis Demo

    什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBat ...