Java读取根据HTML模板生成HTML页面
首先,我们需要一个html模板:
- <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>
其次:我们编写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>
- * 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();
- //循环生成10个html文件
- for (int k = 0; k < 10; 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读取根据HTML模板生成HTML页面的更多相关文章
- html模板生成静态页面及模板分页处理
它只让你修改页面的某一部分,当然这"某一部分"是由你来确定的.美工先做好一个页面,然后我们把这个页面当作模板(要注意的是这个模板就没必要使用EditRegion3这样的代码了,这种 ...
- 【Java】itext根据模板生成pdf(包括图片和表格)
1.导入需要的jar包:itext-asian-5.2.0.jar itextpdf-5.5.11.jar. 2.新建word文档,创建模板,将文件另存为pdf,并用Adobe Acrobat DC打 ...
- 利用模板生成html页面(NVelocity)
公司的网站需要有些新闻,每次的新闻格式都是一样的,而不想每次都查询操作,所以想把这些新闻的页面保存成静态的html,之后搜索了下就找到了这个模板引擎,当然其他的模板引擎可以的,例如:Razor,自己写 ...
- JAVA使用itext根据模板生成PDF文档
1.制作PDF模板 网址打开:https://www.pdfescape.com/open/ 我们这里先在线上把基础的内容用word文档做好,然后转成PDF模板,直接上传到网站上,这样方便点 假设我们 ...
- Java Web项目--使用JSP生成一个页面
我们使用了servlet生成了一个网页,但是可以看到使用servlet生成网页必须将网页的内容全部嵌入到Java代码当中,不是很方便.所以有没有什么办法是将Java代码嵌入到html代码中,而不是像s ...
- Java Web项目--使用Servlet生成一个页面
为了生成一个servlet对应的网页.我们需要新建一个web.xml,其中将会放置servlet的相关信息.web.xml文件放置在WebContent/WEB-INF/目录下.(我们在Eclipe中 ...
- 第四篇:java读取Excel简单模板
场景:对于经常需要导入Excel模板或数据来解析后加以应用的,使用频率非常之高,做了一个比较稳定的版本,体现在这些地方工具:org.apache.poi使用前必须了解这些:1.要解析,那肯定先判断是不 ...
- java 根据word xml模板生成word
这里用的是poi相关jar包以及freemarker插值技术实现,poi相关jar包这里不再述说 1,编辑word并保存为xml 2,把xml后缀改为ftl文件 3,前端代码 // alert(jso ...
- html-webpack-plugin插件 根据模板生成多页面
1.项目目录结构为: 2.webpack.config.js配置文件为: var htmlWebpackPlugin = require('html-webpack-plugin'); module. ...
随机推荐
- JS基础_打印出1-100之间所有的质数
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 异常-try...catch的方式处理异常2
package cn.itcast_02; /* * A:一个异常 * B:二个异常的处理 * a:每一个写一个try...catch * b:写一个try,多个catch * try{ * ... ...
- SSE笔记
1.8位加: *(__m128i*)(dest + i * 16) = _mm_add_epi8(*(__m128i*)(srcA + i * 16), *(__m128i*)(srcB + i * ...
- JAVA语言程序设计课后习题----第五单元解析(仅供参考)
1 本题是水题,题目要求你求最大值.最小值,建议你用Arrays.sort函数进行排序,最大值.最小值就可以确定了 import java.util.Arrays; import java.util. ...
- TCP超时与重传
TCP提供可靠的传输层.它使用的方法之一就是确认从另一端收到的数据.但数据和确认都有可能丢失.TCP通过在发送时设置一个定时器来解决这种问题.如果当定时器溢出时还没收到确认,他就重传数该数据.对任何实 ...
- 《python解释器源码剖析》第10章--python虚拟机中的一般表达式
10.0 序 上一章中,我们通过PyEval_EvalFrameEx看到了python虚拟机的整体框架,那么这一章我们将深入到PyEval_EvalFrameEx的各个细节当中,深入剖析python的 ...
- 理解函数声明--signal函数的声明
1.显示调用首地址为0的例程:(*(void(*)())0)() 显示调用首地址为0的例程的表达式为:(*(void(*)())0)() 分两步分析: 假定变量fp是一个函数指针,调用方法如下:(*f ...
- python常用模块:logging、hashlib、re
今日内容主要有:一.logging模块二.logging模块的使用三.hashlib模块四.re模块 一.logging模块 import logging # 1 日志的级别 logging.debu ...
- java-面试题为什么redis这么快
文章:为什么说Redis是单线程的以及Redis为什么这么快! 文章比较详细,有些细节可能需要注意. 1,比如CPU不是redis的瓶颈 2,随着连接数的增加,并发会降低等.
- PLSQL功能一览(1/2)
用了Oracle几年了,除了PLSQL几乎就没用过别的工具.临时起义想看看PLSQL有哪些功能是我平时没注意的,别是一直有好办法,我却用着笨办法. 本文针对PLSQL12.0.7 1.登录以后使用My ...