Java读取根据HTML模板生成HTML页面

JAVA用.ftl模板文件生成PDF(含生成代码) 场景:产品提了个需求,要求按照他给的原型格式生成一个PDF文件。 (这是产品给的原型) 解决思路:可以先写一个.ftl模板文件(其实也就是一个html页面),然后预留对应的字段放入map中进行替换(其中data11....都是要替换的) 注: Freemarker是一个模板框架,主要是为了加快染速度而产生的。它与web容器无关,只要是关于模板生成一些代码的都可以使用它完成。 比如xml,Java代码的生成等。 其他类似的模板框架还有velocity。 贴出部分map代码: Map&l 阅读详情
首先,我们需要一个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模板生成新的html,很简单可以运行 立即下载

相关推荐

完整版java后台管理html模板

完整版java后台管理html模板,可以直接拿来用,样式很华丽!!

java 根据html模板生成html文件

1.代码部分 import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java....

云下的你 5922

PRIDE数据库20年:2025更新

PRoteomics IDEntifications (PRIDE)数据库(https://www.ebi.ac.uk/pride/)是全球领先的基于质谱(MS)的蛋白质组学数据存储库,也是ProteomeXchange联盟的创始成员之一。本文总结了过去3年中PRIDE资源及相关工具的发展情况。提交到PRIDE存档的数据集数量平均每月达到约534个。主要得益于基础设施的持续改进,如用于超大数据集的新文件传输协议(Globus)、新的数据重新提交流程以及自动数据集验证过程。

多组・学・多组学 2063

JavaWeb之HTML标签介绍及使用

JavaWeb之HTML简介及常用标签的使用方式~

weixin_67659262的博客 1461

Zenoh:统一数据平面协议,重塑物联网与边缘计算架构

在分布式系统与物联网领域,数据通信与处理常面临协议割裂的挑战。传统方案如MQTT、Kafka、gRPC等,分别针对发布/订阅、流处理和RPC等不同场景,导致架构复杂、集成成本高。其核心问题在于未能统一处理“运动中数据”(Data in Motion)与“静止中数据”(Data at Rest)。Zenoh协议通过创新的“Key-Value”寻址与“Selector”查询语言,将发布/订阅、存储、查询和计算四种核心操作融合进单一协议,构建了统一的抽象层。这种设计实现了极低的协议开销(仅5字节头部)和地理分布式

weixin_29597551的博客 290

为什么你的SSE连接总断?深入对比EventSource与fetch-event-source的5大差异点

本文深入对比了原生EventSource与@microsoft/fetch-event-source库在SSE连接稳定性上的五大关键差异。重点剖析了后者在请求能力、连接控制、错误处理、数据解析及性能优化方面的优势,特别是其支持POST请求、自定义Header、精细化的重连策略与生命周期管理,为解决生产环境中SSE连接频繁断开的问题提供了专业方案。

weixin_28077113的博客 494

java springCloud控制层访问https下的html文件并以流显示到页面

目标:java controller访问https://xxxx/xxxx.html,以流的形式直接返回该页面 1.添加信任管理器类 public class MyX509TrustManager implements X509TrustManager { // 检查客户端证书 public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {

小乌龟 1675

马尔可夫网络和贝叶斯网络的一些总结

马尔可夫网络和贝叶斯网络的一些总结 最近学习了一些关于概率逻辑的知识图谱推理方法,主要就是贝叶斯网络和马尔可夫网络,在此总结一下,内容都来自网络资料,这里加入了一下个人的理解,尽量为大家避雷! 这篇文章是我目前在网络上找到的关于贝叶斯网络最清晰的介绍,大家有兴趣可以去看看 贝叶斯网络中比较重要的两部分就是贝叶斯网络的结构和条件概率表。 贝叶斯网络的结构 下面通过一个例子来介绍: 贝叶斯网的网络结...

qq_43654303的博客 4374

Java动态插入数据到html模板并下载为html解决方案

Java动态插入数据到html模板并下载为html解决方案

qq_45454550的博客 3246

ADS入门学习笔记——射频振荡器的设计

振荡器是射频系统中的基本部件之一,可以将直流功率转换为射频功率,在特定的频率点建立起稳定的正弦振荡,成为所需的射频信号源。

weixin_42126696的博客 8949

逆向工具:一文讲述 Ghidra 的详细使用

Ghidra是由NSA开源的一款功能强大的逆向工程框架,支持多平台、多架构和多种文件格式分析。本文详细介绍了Ghidra的核心优势、安装配置方法、主界面功能模块,并通过一个CrackMe示例演示了完整的逆向分析流程。文章还讲解了高级功能如交叉引用、控制流图分析、数据类型重建和脚本自动化等,最后提供了常见文件格式的分析技巧。作为IDA Pro的免费替代方案,Ghidra适合个人学习、教学和中小项目使用。(149字)

数据知道的博客 4345

htmlunit 示例

htmlunit 示例 先下载依赖的相关JAR包:http://sourceforge.net/projects/htmlunit/files/ 示例1:获取javaeye网站的title import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; import com.gargoylesoftware.html

七两雨 6188

详解Pytorch求导

本文主要详解Pytorch求导,希望能对学习Pytorch的同学有所帮助。 文章目录 1. pytorch求导问题 2. pytorch三大类求导代码示例 2.1 标量求导 2.2 向量求导&矩阵求导

weixin_43178406的博客 3074

java html页面_Java读取根据HTML模板生成HTML页面

首先,我们需要一个html模板:###title######title######author######content######html###其次:我们编写java代码实现模板读取,页面生成:import javax.servlet.http.HttpServletRequest;import java.util.List;import java.util.ArrayList;import j...

weixin_36271649的博客 1189

24、无人机能耗模型与上下文质量管理的研究

本文系统介绍了无人机能耗模型与上下文质量管理的研究进展。详细阐述了Dorling、Stolaroff、Kirchstein和Tseng等经典能耗模型的原理及特点,并基于LSTM架构构建了数据驱动的能耗预测模型,实验表明其预测精度显著优于传统模型。此外,还探讨了物联网环境中的上下文质量管理问题,引入了conQeng框架,以提升上下文选择、测量和验证的效率与可靠性。研究为无人机能耗优化和物联网上下文管理提供了理论支持和技术方案。

palm99的专栏 344

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java实现预览静态html,Java 读取模板并生成HTML静态文件实例

原理都很简单,主要是对模板的解析.so,我们先准备一个html模板mb.html,做个文件其中的###title###之类的标签用于程序进行查询替换.HTML code复制代码###title######title######author### ###content######html###下面是具体的代码:JspToHtml.javaJava code复制代码import javax.serv...

weixin_29912207的博客 1360

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jsp生成html静态页面代码

%@page import="java.util.*"%>%@page import="java.io.*" %>//在这里如果写成“WEB-INF/templates/template.htm”程序会报错 String filePath = request.getRealPath("/")+"WEB-INF/templates/template.htm";      out.print(fi

JavaEE高级工程师的专栏 1557

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java发送html文件_Java生成HTML文件

实例HTML文件###title######title######author### ###content######html###Java代码:package com.util;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.Fil...

weixin_42438410的博客 263

java freemarker 模版_Java+freemarker生成HTML模板页

Java+freemarker生成HTML模板页需求有多个样式板式结构不一样模板页:用户选择自己喜欢的样式结构页面,然后就渲染出改html页面。不选择就显示默认的样式结构HTML页面package com.school.web.controller;import java.io.BufferedReader;import java.io.ByteArrayOutputStream;import j...

weixin_42390525的博客 436

java 生成 静态页面_java开发如何将动态页面转化为静态页面发布

展开全部java生成静态页面无需特殊配置,非常简单的,下面有各种输出32313133353236313431303231363533e58685e5aeb931333332613637需求,看你要哪种就拿去用吧import javax.servlet.http.HttpServletRequest;import java.util.List;import java.util.ArrayList;i...

weixin_33870147的博客 788

Java使用FreeMarker模板引擎动态生成html页面

因一个功能需要动态生成HTML文件,所以接触了下FreeMarker模板引擎。一般可以使用该模板引擎来生成月报,日报,单据报表等等。我们都知道预先生成静态HTML文件,当访问时可以提高效率的。 Freemarker简单介绍 Freemarker是一款模板引擎,基于模板用来生成文本(任何来自HTML格式的文本用来生成源代码)的通用工具。FreeMarker实际上是被设计生成HTML页面的,尤其是...

田野上的风筝 1万+

Java 动态根据模板创建 html

作者官方网站:http://www.wxl568.cn Java 动态根据模板创建 html import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Date; import java.util.HashMap; import java.util....

wanglei It的专栏 1412
上一篇: merge处理oracle关联修改表信息
下一篇: 一个基于jQuery的多选树形结构
异常的昵称
博客等级 码龄10年 18粉丝 17原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值