初步学习freemarker ,先做一个简单的HelloWord程序!
新建一个WEB工程,下载(我使用的是freemarker-2.3.20)freemarker并导入freemarker.jar,在WEB-INF下新建文件夹templates用于存放模版文件
在templates下新建test.ftl,这是示例模版文件。内容就是HTML内容,里面带有一个标记符,用于将来进行变量替换,内容如下:
<html> <head> <title>freemarker测试</title> </head> <body> <h1>${message},${name}</h1> </body> </html>
新建一个Servlet,用于请求设置变量,并处理模版的输出:
package com.test.servlet; import java.io.IOException; import java.io.Writer; import java.util.HashMap; 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; @SuppressWarnings("serial") public class HelloFreeMarkerServlet extends HttpServlet { // 负责管理FreeMarker模板的Configuration实例 private Configuration cfg = null; public void init() throws ServletException { // 创建一个FreeMarker实例 cfg = new Configuration(); // 指定FreeMarker模板文件的位置 cfg.setServletContextForTemplateLoading(getServletContext(), "/WEB-INF/templates"); } @SuppressWarnings("unchecked") public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 建立数据模型 Map root = new HashMap(); root.put("message", "hello world"); root.put("name", "java小强"); // 获取模板文件 Template t = cfg.getTemplate("test.ftl"); // 使用模板文件的Charset作为本页面的charset // 使用text/html MIME-type response.setContentType("text/html; charset=" + t.getEncoding()); Writer out = response.getWriter(); // 合并数据模型和模板,并将结果输出到out中 try { t.process(root, out); // 往模板里写数据 } catch (TemplateException e) { e.printStackTrace(); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void destroy() { super.destroy(); } }
注意要在你的web.xml中配置该Servlet:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>hello</servlet-name> <servlet-class> com.test.servlet.HelloFreeMarkerServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
为了方便测试,访问工程直接跳转到Servlet,对主页index.jsp做一个简单修改:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName() +":"+request.getServerPort()+path+"/"; %> <html> <body> <% String mypath = "hello"; response.sendRedirect(basePath + mypath); %> </body> </html>
部署工程到Tomcat,启动并访问http://localhost:8080/f ,这里我建立的工程名称就是 f 。
请您到ITEYE网站看 java小强 原创,谢谢!
http://cuisuqiang.iteye.com/ !
自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!
相关推荐
总结来说,"Servlet + Freemarker 入门练习"涉及以下几个关键知识点: 1. **Servlet**:Java 服务器端编程,处理 HTTP 请求,实现业务逻辑。 2. **Freemarker**:模板引擎,分离视图和逻辑,生成动态 HTML。 3. **...
本示例“一个意义深刻的FreeMarker入门例子之HelloWord”旨在帮助初学者理解并掌握FreeMarker的基本用法。 在Java Web开发中,FreeMarker与后端控制器如Servlet或Spring MVC中的Controller协同工作,允许开发者将...
在"JFinal+Maven+FreeMarker入门实例"中,我们将看到如何配置和使用这些工具。首先,我们需要在项目根目录下创建一个`pom.xml`文件,这是Maven项目的配置文件。在这里,我们需要列出所有依赖项,包括JFinal和...
### FreeMarker入门知识详解 #### 一、FreeMarker概述 FreeMarker是一款强大的模板引擎,它以Java语言编写,主要用于生成动态HTML网页,特别是在MVC(Model-View-Controller)架构中,作为视图组件,负责将模型...
Freemarker是一个强大的模板引擎,常用于Java Web开发中生成...自学过程中,建议动手实践,尝试编写简单的模板和Java代码,结合官方文档和示例,逐步掌握这个强大的模板引擎。祝你在学习FreeMarker的过程中取得成功!
以下是对`freemarker入门Demo`相关知识点的详细说明: 1. **严格的MVC分离**: Freemarker模板引擎不支持编写Java代码,这意味着开发者可以在模板文件中专注于展示逻辑,而将数据处理和业务逻辑保留在控制器和服务...
本入门手册将帮助你了解FreeMarker的基本概念、语法以及如何在实际项目中运用。 1. **基本概念** - **模板语言**:FreeMarker是模板驱动的,它不直接处理数据,而是通过模板和数据模型结合来生成最终输出。 - **...
这篇《FreeMarker入门指南》将深入介绍其基本概念、语法以及在实际项目中的应用。 一、FreeMarker简介 FreeMarker是一个基于模板的Java库,用于生成文本输出。它的主要工作原理是将模板(template)与数据模型...
### Freemarker 入门详解 #### 一、Freemarker 概述 Freemarker 是一款功能强大的模板引擎,主要用于生成动态的 HTML 页面以及其他格式的文档。它将模板设计与后端逻辑分离,使得前端设计师可以专注于页面布局与...
6. ViewResolver(视图解析器)根据视图名找到具体的视图,如JSP、FreeMarker等。 7. 视图渲染Model中的数据,并将结果显示回给用户。 学习Spring MVC时,你需要掌握以下关键概念和技术: 1. **配置**:包括web.xml...
本入门文档将带你走进Freemarker的世界,帮助你掌握其基本概念和核心功能。 1. **模板语法** Freemarker模板语言(FML)主要由变量、控制结构(如条件语句和循环)、文本、注释等组成。例如,`${expression}`用于...
### FreeMarker 快速入门与上手教程 #### 一、FreeMarker 概览 **FreeMarker** 是一款强大的模板引擎,主要用于生成文本输出。它适用于多种用途,如生成 HTML 页面、XML 数据、电子邮件等。FreeMarker 的一大特点...
`freemarker.doc`可能包含了Freemarker的基本概念、语法和示例,适合初学者快速上手。`freemarker中文手册.doc`则是更详尽的指南,涵盖了高级特性、最佳实践和解决常见问题的方法,对深入理解和使用Freemarker非常有...
### FreeMarker 快速入门详解 #### 一、FreeMarker 概述 FreeMarker 是一个用 Java 编写的模板引擎,它支持动态网页的生成,同时也适用于任何纯文本格式的输出生成,例如 XML 和电子邮件等。FreeMarker 的设计初衷...
2. **freemarker.rar**:这个压缩包可能包含了Freemarker的API文档、示例模板或其他辅助学习材料,解压后可以深入研究。 学习Freemarker的过程中,实践是非常重要的。尝试创建自己的模板,结合实际项目的数据模型,...
在本入门示例中,我们将深入理解 Spring MVC 的核心概念和关键组件,以便初学者能够快速上手。 1. **MVC 模式** MVC 模式是一种软件设计模式,用于分离应用程序的数据模型、用户界面和业务逻辑。Model(模型)处理...
这个入门示例旨在帮助开发者了解如何使用Struts1.2进行基本的Web开发。 在Struts1.2框架中,控制器由ActionServlet实现,它负责接收HTTP请求,并根据配置文件(struts-config.xml)来决定哪个Action类来处理该请求...
本入门指南示例程序旨在帮助初学者快速理解和掌握WebX的基本用法。通过结合提供的博客文章和代码,我们将深入探讨以下几个核心知识点: 1. **WebX框架概述**: WebX是一个组件化的MVC(Model-View-Controller)...