首先,我们需要一个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. C# WebApi日期格式化

    WebApi中日期格式化:在WebApiConfig文件中加入如下代码即可,之前遇到的问题,日期中总带有T,现在记录一下解决的方法. 代码: private static void ReturnDat ...

  2. mvc验证码图片生成

    /// <summary> ///生成验证码 /// </summary> public class VerifyCode { /// <summary> /// ...

  3. VC++ warning C4819 的解决方法(转)

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

  4. JQuery --- 第六期 (Ajax)

    欢迎访问我的个人博客,获取更多有用的东西 链接一 链接二 也可以关注我的微信订阅号:CN丶Moti 点击查看Ajax

  5. 封装好的Ajax

    /* 注意: 1.检查提交方式类型:get/post是否和后台一致(该类型接口文档会标注,若一致仍然报错,请与后台再次确认) 2.检查接口url是否写错 3.检查接口是否需要传数据到后台,若需上传,便 ...

  6. java基础4(线程)

    1.请简单描述什么是并行,什么是并发? 并行:指两个或多个事件在同一时刻发生(同时发生). 并发:指两个或多个事件在同一个时间段内发生. 通俗易懂版: 你吃饭吃到一半,电话来了,你一直到吃完了以后才去 ...

  7. Windows 10 安装FileZilla Server

    在windows 10本机安装了FileZilla Server 本机用FilleZilla Client连接localhost或者192.168.0.197  port 21  都可以连通,但是在同 ...

  8. js小功能1:全选全不选

    <form> 请选择你爱好:<br> <input type="checkbox" name="hobby" id="h ...

  9. 链接进入react二级路由,引发的子组件二次挂载

    这个问题很怪,我两个二级路由从链接进入的时候,会挂载两次子组件. 从链接进入,是因为新页面在新标签页打开的. 有子组件是因为公共组件提取 同样的操作,有一些简单的二级路由页面,就不会挂载两次. 讲道理 ...

  10. Qt设置按钮为圆形

    通过Qt 的样式表实现圆形按钮,其也可以实现圆角按钮,当然也可以使用其他的方式,比如说,通过派生按钮类使用绘图事件,进行一个图形的绘制,或者是通过自定义一个类,通过信号与槽的机制与绘图事件的配合也能实 ...