import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class GenerateHtml extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
Configuration cfg = new Configuration();
cfg.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/templates");
cfg.setEncoding(Locale.getDefault(), "UTF-8");
try {
Map root = new HashMap();
List<User> users = new ArrayList<User>();
User u1 = new User();
u1.setId("123");
u1.setName("王五");
users.add(u1);
User u2 = new User();
u2.setId("2345");
u2.setName("张三");
User u3 = new User();
u3.setId("fgh");
u3.setName("王八");
users.add(u2);
users.add(u3);
root.put("userList", users);
Map product = new HashMap();
root.put("lastProduct", product);
product.put("url", "http://www.google.com");
product.put("name", "green hose");
Template template = cfg.getTemplate("test.ftl", "UTF-8");
template.setEncoding("UTF-8");
String htmlPath = this.getServletContext().getRealPath("/html")+"/"+"form.html";
File htmlFile = new File(htmlPath);
if(!htmlFile.exists()){
//System.out.println("file exist");
htmlFile.createNewFile();
}
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFile),"UTF-8"));
template.process(root, out);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TemplateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String url = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+req.getContextPath()+"/html/form.html";
resp.sendRedirect(url);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
@Override
public void init() throws ServletException {
}
}
分享到:
相关推荐
俗话说万事开头难,这句话对于我们程序员来说非常的适用,刚接触一门新的东西,...FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序
本篇将深入探讨如何使用`JFinal`、`Maven`和`FreeMarker`构建一个入门级的Web应用程序。首先,我们要理解这三个关键组件的作用和它们之间的协同工作方式。 **JFinal** 是一个基于Java的轻量级Web开发框架,其核心...
本示例“一个意义深刻的FreeMarker入门例子之HelloWord”旨在帮助初学者理解并掌握FreeMarker的基本用法。 在Java Web开发中,FreeMarker与后端控制器如Servlet或Spring MVC中的Controller协同工作,允许开发者将...
在这个项目中,我们将深入探讨如何在IntelliJ IDEA(IDEA)环境中,结合Maven构建工具,利用SpringBoot来创建一个Web入门应用,其中包括对Freemarker模板引擎和JSP(JavaServer Pages)的支持。 首先,IDEA作为一款...
在上述的Freemarker入门实例中,我们看到一个简单的`product.ftl`模板文件,其中包含HTML结构以及`${...}`包围的Freemarker表达式。这些表达式在运行时会被对应的数据模型中的值替换。例如,`${user}`和`${...
### FreeMarker 快速入门与上手教程 #### 一、FreeMarker 概览 **FreeMarker** 是一款强大的模板引擎,主要用于生成文本输出。它适用于多种用途,如生成 HTML 页面、XML 数据、电子邮件等。FreeMarker 的一大特点...
在这个“FreeMarker入门之一:say hello world”中,我们将探讨如何使用FreeMarker来创建一个简单的“Hello, World!”程序,了解其基本语法和工作原理。 1. **FreeMarker简介** FreeMarker是一个开源项目,由...
总结来说,"Servlet + Freemarker 入门练习"涉及以下几个关键知识点: 1. **Servlet**:Java 服务器端编程,处理 HTTP 请求,实现业务逻辑。 2. **Freemarker**:模板引擎,分离视图和逻辑,生成动态 HTML。 3. **...
本实例将引导你入门Freemarker,解决在Eclipse环境下使用Java编译时可能出现的乱码问题,并确保使用UTF-8编码方式进行处理。 **1. Freemarker简介** Freemarker是一个基于模板的开源Java库,它与Spring MVC、Struts...
本教程旨在帮助初学者快速掌握FreeMarker的基本概念和使用方法,通过详实的讲解与实例相结合的方式,让你能够轻松上手。 1. **FreeMarker基础** - **定义**:FreeMarker是一个Java模板语言,它将数据模型与视图...
**入门FreeMarker:** 1. **安装与配置**:FreeMarker是一个轻量级库,可以通过Maven或Gradle等构建工具引入到Java项目中。配置主要涉及设置模板目录和配置文件`freemarker.properties`,其中定义了FreeMarker的行为...
本教程将通过一个基础的"freemarker入门demo",帮助你理解Freemarker的工作原理和基本用法。 首先,让我们了解一下Freemarker模板语言(FTL)。FTL是Freemarker Template Language的缩写,它是一种声明式的标记语言...
在这个例子中,`${user}`、`${latestProduct.url}`和`${latestProduct.name}`是FreeMarker指令,它们将被数据模型提供的具体值所替换。数据模型是由程序员创建的,它可以包含来自数据库、文件或者程序内部生成的数据...
本指南主要针对FreeMarker 2.3.23版本,提供详细的API文档和入门教程。 在开始之前,你需要了解FreeMarker的基本概念:模板(Template)和数据模型(Data Model)。模板是包含静态文本和变量的文件,变量会被数据...
这个入门例子是为初学者设计的,旨在帮助他们快速理解和上手Spring MVC。 首先,我们需要理解Spring MVC的基本组件: 1. **DispatcherServlet**:这是Spring MVC的核心组件,作为前端控制器接收所有的HTTP请求,并...
### FreeMarker实例教程知识点详解 #### 一、FreeMarker简介 **FreeMarker**是一款功能强大的模板引擎,主要用于生成文本输出,如HTML页面、电子邮件、配置文件等。它被广泛应用于Web开发领域,能够帮助开发者轻松...
Spring MVC 是一个基于 Java 的模型-视图-控制器(MVC)架构,是 Spring 框架的一部分,用于构建Web应用程序。它提供了丰富的功能,如请求处理、数据绑定、异常处理等,使得开发者能够更高效地开发企业级Web应用。...
这份教程可能以实例驱动的方式,通过实际的Web项目场景来教授Freemarker的用法。它可能会涵盖如何在Spring MVC或其它框架中集成Freemarker,以及如何在模板中进行复杂逻辑处理。此外,还可能讲解Freemarker的模板...
Freemarker是一款强大的模板引擎,主要用于生成动态HTML或其他文本格式的输出,尤其在Web开发中广泛应用。它与Java紧密集成,常被...通过深入学习提供的入门资料,你将能够熟练地掌握并运用Freemarker进行高效开发。
我们的入门实例名为 "HelloWeb",它将展示如何创建一个简单的 "Hello, World!" 页面。 1. 创建一个名为 `HelloController` 的 Java 类,使用 `@Controller` 注解标记为 Spring MVC 控制器,并定义一个返回 "Hello, ...