背景:
对实时性要求不高的网站需要静态化操作,那么我们基于freemarker做静态化处理
环境:
<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.20</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency>
代码实现:
模板文件:news.ftl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title> ${article.title!} </title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <h2> ${article.title!} </h2> <hr/> <pre> ${article.content} </pre> </body> </html>
Java封装类Article:
public class Article implements Serializable{ private static final long serialVersionUID = 554206256994693476L; private String title; private String content; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
注意:此类必须为public否则报freemarker.core.InvalidReferenceException
测试实现:
public static void main(String[] ar) throws Exception, TemplateException { Configuration configuration = new Configuration(); configuration.setEncoding(Locale.getDefault(), "UTF-8"); TemplateLoader templateLoader = new FileTemplateLoader(new File("d:/")); configuration.setTemplateLoader(templateLoader); Template template = configuration.getTemplate("news.ftl"); template.setEncoding("UTF-8"); File file = new File("d:/news.html"); Map<String, Article> rootMap = new HashMap<String, Article>(); Article article = new Article(); article.setTitle("关于小网客"); article.setContent("解决方案咨询<br>大数据处理<br>系统架构<br>企业信息化咨询<br>Email:smallnetvisitor@qq.com<br>来自北京"); rootMap.put("article", article); Writer out = new OutputStreamWriter(new FileOutputStream(file), "UTF-8"); template.process(rootMap, out); }
说明:
此处采用了FileTemplateLoader,以D盘为根,写的html页面采用utf-8的编码
结果如下图:
相关推荐
在登录成功页面的实现中,我们利用Freemarker的特性来实现静态化。首先,创建一个名为`loginSuccess.ftl`的Freemarker模板,其中包含登录成功后要显示的信息。例如: ```html <html> 登录成功 ${username},...
【SpringBoot2 整合FreeMarker模板,完成页面静态化处理】 在Web开发中,页面静态化是一种提高网站性能和用户体验的技术。它涉及到将原本动态生成的页面转换为静态HTML文件,减少对服务器的依赖,加快页面加载速度...
总的来说,`httpclient`与`freemarker`在页面静态化分页中的结合使用,既保证了数据的动态获取,又实现了静态文件的高效生成,是Web开发中一种实用的优化手段。通过合理的代码组织和设计,可以构建出高效且易于维护...
本教程将介绍如何在Java Web项目中利用FreeMarker进行JSP页面的静态化,适合初学者入门学习。 1. **FreeMarker基本概念** FreeMarker是一个基于模板的语言,它与编程语言不同,不包含任何控制结构或函数调用。它的...
标题“使用FreeMarker生成Html静态文件”暗示了我们将探讨如何利用FreeMarker将动态数据转化为静态的HTML页面。这一过程通常涉及以下几个步骤: 1. **配置FreeMarker**: 首先,我们需要在Java项目中引入FreeMarker...
在Java Web开发中,页面静态化通常涉及到将动态生成的HTML页面转化为纯HTML文件,以便用户请求时无需通过服务器执行复杂的脚本逻辑,直接由Web服务器发送静态页面,从而减少服务器负载并加快页面加载速度。...
动态页面静态化是一种提高网站性能和搜索引擎友好度的技术手段,主要通过将原本由服务器动态生成的HTML页面转换为预先生成的静态HTML文件。这样,用户请求时,服务器无需执行数据库查询和其他复杂操作,而是直接返回...
4. 使用第三方工具:有一些开源工具如SiteMesh、FreeMarker等可以帮助实现JSP页面静态化。这些工具通常提供了更完善的管理界面和配置选项,简化了静态化过程。 5. 混合模式:结合动态和静态页面,对于不常变化的...
本实例源码是关于如何利用Freemarker进行网站静态化的具体实践,主要涉及到以下几个核心知识点: 1. **Freemarker模板语言**:Freemarker使用简单的文本模板语言,将数据模型与HTML模板结合,生成最终的HTML页面。...
本篇文章将详细讲解如何利用FreeMarker来生成静态页面。 首先,我们需要理解FreeMarker的基本工作原理。在FreeMarker模板文件中,我们可以编写HTML结构,同时嵌入特定的FreeMarker语法,如`<#if>`、`<#foreach>`等...
这通常通过在Action中触发静态化逻辑,将Freemarker渲染后的HTML保存到磁盘,然后直接返回这些静态页面。 9. **错误和异常处理**:Struts2和Freemarker都有自己的错误处理机制。当模板或Action执行出错时,可以通过...
在本项目中,“struts2+freemarker 生成静态页面”意味着利用这两个工具将动态网页转化为静态HTML页面,以提高网站性能和用户体验。 1. **Struts2框架**:Struts2提供了全面的MVC架构支持,包括动作(Action)类、...
在Java开发中,页面静态化是一种常见的优化技术,它可以提高网站的访问速度和用户体验。本篇文章将深入探讨如何使用Freemarker这一强大的模板引擎进行页面静态化。Freemarker是一个独立于Web容器的Java模板引擎,...
Freemarker是一个强大的模板引擎,常用于Web应用中动态生成HTML或其他类型的静态页面。它采用声明式编程方式,使得开发者可以专注于数据模型,而不用关心如何呈现这些数据。本篇文章将深入探讨Freemarker的工作原理...
本话题主要探讨的是如何利用可视化div布局来生成FreeMarker模板,并结合Spring MVC 3框架进行应用。下面将详细阐述这些概念及其相关知识点。 1. **FreeMarker模板引擎**:FreeMarker是一个开源的Java模板引擎,它...
FreeMarker模板文件通常以`.ftl`扩展名,其中包含变量和控制结构,这些变量由后台Java代码提供,模板引擎负责解析并替换这些变量,生成最终的HTML页面。 在SSH框架中集成FreeMarker,首先需要在项目中添加...
在本文中,我们将深入探讨如何实现一个简单的网页静态化过程,以"网页静态化例程 网站静态化学习的第一步"为例,结合开发环境MyEclipse和MySQL数据库。 首先,我们要理解静态化的基本概念。静态化是指将动态生成的...
Freemarker是一个强大的模板...在实际项目中,还可以利用Freemarker的条件语句、循环结构、宏等高级特性,实现更复杂的逻辑和布局。总的来说,Freemarker提供了一种强大且灵活的方式,让开发者可以高效地生成静态内容。
通过学习FreeMarker的使用、轮播图DataUrl接口开发、GridFS文件管理以及页面预览功能的开发等内容,可以帮助开发者深入理解并掌握页面静态化的关键技术。此外,通过实际案例的学习,还能够帮助读者更好地理解和应用...