1、新建一个WEB工程,
下载(我使用的是freemarker-2.3.20)freemarker并导入freemarker.jar,在WEB-INF下新建文件夹templates用于存放模版文件
在templates下新建test.ftl,这是示例模版文件。内容就是HTML内容,里面带有一个标记符,用于将来进行变量替换,内容如下:
Html代码
<html>
<head>
<title>freemarker测试</title>
</head>
<body>
<h1>${message},${name}</h1>
</body>
</html>
2、新建一个Servlet,用于请求设置变量,并处理模版的输出:
Java代码
package com.cloud.wyscha.servlet;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
/**
* freemarker测试
*
* @author charlin
* @create 2017-09-27 10:07
**/
public class HelloFreeMarkerServlet extends HttpServlet{
// 负责管理FreeMarker模板的Configuration实例
private Configuration cfg = null;
@Override
public void init() throws ServletException {
super.init();
cfg = Configuration.getDefaultConfiguration();
cfg.setServletContextForTemplateLoading(getServletContext(), "/WEB-INF/templates");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
try {
// 建立数据模型
Map root = new HashMap();
root.put("message", "hello world");
root.put("name", "java小强");
// 获取模板文件
Template template = cfg.getTemplate("test.ftl");
// 使用模板文件的Charset作为本页面的charset
// 使用text/html MIME-type
resp.setContentType("text/html;charset=" + template.getEncoding());
PrintWriter writer = resp.getWriter();
// 往模板里写数据
template.process(root, writer);
} catch (TemplateException e) {
e.printStackTrace();
}
}
}
3、注意要在你的web.xml中配置该Servlet:
Xml代码
<?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">
<!-- freemarker测试 -->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>
com.cloud.wyscha.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>
4、为了方便测试,访问工程直接跳转到Servlet,对主页index.jsp做一个简单修改:
Html代码
<%@ 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>
5、部署工程到Tomcat
启动并访问http://localhost:8080/freemarker ,这里我建立的工程名称就是 freemarker 。
—————————————————————————————————————————————————–
java架构师项目实战,高并发集群分布式,大数据高可用视频教程,共760G
下载地址:
https://item.taobao.com/item.htm?id=555888526201
01.高级架构师四十二个阶段高
02.Java高级系统培训架构课程148课时
03.Java高级互联网架构师课程
04.Java互联网架构Netty、Nio、Mina等-视频教程
05.Java高级架构设计2016整理-视频教程
06.架构师基础、高级片
07.Java架构师必修linux运维系列课程
08.Java高级系统培训架构课程116课时
+
hadoop系列教程,java设计模式与数据结构, Spring Cloud微服务, SpringBoot入门
来源:CSDN
作者:LovooGod
链接:https://blog.csdn.net/lovoo/article/details/78110705