http://cuisuqiang.iteye.com/blog/2031768

************************************

初步学习freemarker ,先做一个简单的HelloWord程序!

新建一个WEB工程,下载(我使用的是freemarker-2.3.20)freemarker并导入freemarker.jar,在WEB-INF下新建文件夹templates用于存放模版文件
在templates下新建test.ftl,这是示例模版文件。内容就是HTML内容,里面带有一个标记符,用于将来进行变量替换,内容如下:

  1. <html>
  2. <head>
  3. <title>freemarker测试</title>
  4. </head>
  5. <body>
  6. <h1>${message},${name}</h1>
  7. </body>
  8. </html>

新建一个Servlet,用于请求设置变量,并处理模版的输出:

  1. package com.test.servlet;
  2. import java.io.IOException;
  3. import java.io.Writer;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import freemarker.template.Configuration;
  11. import freemarker.template.Template;
  12. import freemarker.template.TemplateException;
  13. @SuppressWarnings("serial")
  14. public class HelloFreeMarkerServlet extends HttpServlet {
  15. // 负责管理FreeMarker模板的Configuration实例
  16. private Configuration cfg = null;
  17. public void init() throws ServletException {
  18. // 创建一个FreeMarker实例
  19. cfg = new Configuration();
  20. // 指定FreeMarker模板文件的位置
  21. cfg.setServletContextForTemplateLoading(getServletContext(),
  22. "/WEB-INF/templates");
  23. }
  24. @SuppressWarnings("unchecked")
  25. public void doPost(HttpServletRequest request, HttpServletResponse response)
  26. throws ServletException, IOException {
  27. // 建立数据模型
  28. Map root = new HashMap();
  29. root.put("message", "hello world");
  30. root.put("name", "java小强");
  31. // 获取模板文件
  32. Template t = cfg.getTemplate("test.ftl");
  33. // 使用模板文件的Charset作为本页面的charset
  34. // 使用text/html MIME-type
  35. response.setContentType("text/html; charset=" + t.getEncoding());
  36. Writer out = response.getWriter();
  37. // 合并数据模型和模板,并将结果输出到out中
  38. try {
  39. t.process(root, out); // 往模板里写数据
  40. } catch (TemplateException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. public void doGet(HttpServletRequest request, HttpServletResponse response)
  45. throws ServletException, IOException {
  46. doPost(request, response);
  47. }
  48. public void destroy() {
  49. super.destroy();
  50. }
  51. }

注意要在你的web.xml中配置该Servlet:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  6. <servlet>
  7. <servlet-name>hello</servlet-name>
  8. <servlet-class>
  9. com.test.servlet.HelloFreeMarkerServlet
  10. </servlet-class>
  11. </servlet>
  12. <servlet-mapping>
  13. <servlet-name>hello</servlet-name>
  14. <url-pattern>/hello</url-pattern>
  15. </servlet-mapping>
  16. <welcome-file-list>
  17. <welcome-file>index.jsp</welcome-file>
  18. </welcome-file-list>
  19. </web-app>

为了方便测试,访问工程直接跳转到Servlet,对主页index.jsp做一个简单修改:

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()
  5. +":"+request.getServerPort()+path+"/";
  6. %>
  7. <html>
  8. <body>
  9. <%
  10. String mypath = "hello";
  11. response.sendRedirect(basePath + mypath);
  12. %>
  13. </body>
  14. </html>

部署工程到Tomcat,启动并访问http://localhost:8080/f ,这里我建立的工程名称就是 f 。

请您到ITEYE网站看 java小强 原创,谢谢!

http://cuisuqiang.iteye.com/ !

自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!

 
 

Freemarker 入门示例(zhuan)的更多相关文章

  1. Freemarker 入门示例

    初步学习freemarker ,先做一个简单的HelloWord程序! 新建一个WEB工程,下载(我使用的是freemarker-2.3.20)freemarker并导入freemarker.jar, ...

  2. freeMarker入门示例

    1.创建Web项目freeMarkerDemo. 2.添加jar包---freemarker-2.3.9.jar. 3.在WebContent目录下新建templates文件夹,用于放置模板文件ftl ...

  3. 1.【转】spring MVC入门示例(hello world demo)

    1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于 ...

  4. 【转】spring MVC入门示例(hello world demo)

    部分内容来自网络:<第二章 Spring MVC入门 —— 跟开涛学SpringMVC > 1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web M ...

  5. [WCF编程]1.WCF入门示例

    一.WCF是什么? Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remotin ...

  6. Maven入门示例(3):自动部署至外部Tomcat

    Maven入门示例(3):自动部署至外部Tomcat 博客分类:  maven 2012原创   Maven入门示例(3):自动部署至外部Tomcat 上一篇,介绍了如何创建Maven项目以及如何在内 ...

  7. 【java开发系列】—— spring简单入门示例

    1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...

  8. Spring MVC 入门示例讲解

    在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...

  9. Couchbase之个人描述及入门示例

    本文不打算抄袭官方或者引用他人对Couchbase的各种描述,仅仅是自己对它的一点理解(错误之处,敬请指出),并附上一个入门示例. ASP.NET Web项目(其他web开发平台也一样)应用规模小的时 ...

随机推荐

  1. In Action(SPFA+01背包)

    In Action Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  2. Improving the GPA 分类: 贪心 HDU 比赛 2015-08-08 16:12 11人阅读 评论(0) 收藏

    Improving the GPA Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...

  3. PostgreSql安装

    官网:http://www.postgresql.org/download/linux/redhat/ 一.安装 由于我的机子是centos6.2,所以选择RedHat的. 按照官网所说的进行安装: ...

  4. 制作动画效果:《CSS3 Animation》

    在开始介绍Animation之前我们有必要先来了解一个特殊的东西,那就是"Keyframes",我们把他叫做“关键帧”,玩过flash的朋友可能对这个东西并不会陌生.下面我们就一起 ...

  5. codevs1297 硬币

    1297 硬币   题目描述 Description 我们知道即使是同一种面值的硬币,它们的重量也有可能不一样,因为它受到许多因素的影响,包括制造工艺和流程上的.但是任何一种面值的硬币的重量总是处于某 ...

  6. Undefined symbols for architectureIOS

    IOS问题解决. 现在进行老项目的编译,发现不能编译. 经过各种盲目查询,找个几个方案. 1.builde setting修改编译方式. 2.Builde Phases(修改). 2.1.库. 2.1 ...

  7. 模块"xxxx.dll"已加载,但对DllRegisterServer的调用失败,错误代码为 XXXXXXXXX

    WIN7.WIN8  注册 卸载dll  报错: 模块"xxxx.dll"已加载,但对DllRegisterServer的调用失败,错误代码为 XXXXXXXXX 解决方法: 若为 ...

  8. okhttp3教程(1)如何引入库

    官网: https://github.com/square/okhttp https://github.com/square/okio 1,使用okhttp3需要两个库 在build.gradle c ...

  9. Spring中MultipartHttpServletRequest实现文件上传

    Spring中MultipartHttpServletRequest实现文件上传 转贴自:http://my.oschina.net/nyniuch/blog/185266 实现图片上传  用户必须能 ...

  10. 单片机特殊功能寄存器(SFR)

    单片机如8051有21个SFR,地址为80H~0FFH的128个字节中,可以直接用寻址方式来操作SFR.(类似于sbit) 为了能直接访问这些SFR,keil提供饿了一种自汉族形式的定义方法.这种方法 ...