使用FreeMarker的Web Project例子
2016-03-17 21:31
447 查看
1创建一个名为FreemarkerDemo的Web Project
2删除index.jsp,新建index.html,index.html中的内容为:
<html>
<head>
<title>Hello
FreeMarker Example</title>
<metahttp-equiv="Content-type"content="text/html;
charset=utf-8">
</head>
<body>
点击下面链接看看效果:
<hr>
<ahref="hello.do">调用Hello模板</a>
</body>
</html>
3把web.xml中的index.jsp改为index.html,改完后的内容为:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="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">
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
4把FreemarkerDemo部署到tomcat服务器中
5运行FreemarkerDemo程序
6在浏览器中输入http://localhost:8080/FreemakerDemo
7点击上图中的“调用Hello模板”,报错
下面要利用FreeMarker来实现这个点击事件。
1在WebRoot下创建lib目录,将freemarker包放到lib目录下并刷新
2在WebRoot下新建templates目录,在此目录下新建hello.ftl文件,其内容为
<html>
<head>
<title>hello</title>
</head>
<body>
<h1>Hello${user}!</h1>
</body>
</html>
3在src下创建example包,在example包下创建Hello.java,其内容为:
package example;
importjava.io.*;
importjava.util.*;
importjavax.servlet.ServletException;
importjavax.servlet.http.*;
importfreemarker.template.*;
publicclass
HelloextendsHttpServlet {
privatestaticfinallongserialVersionUID
= 1L;
privateConfigurationcfg;
publicvoid
init()
{
//初始化FreeMarker配置
//创建一个Configuration实例
cfg =newConfiguration();
//设置FreeMarker的模版文件位置
cfg.setServletContextForTemplateLoading(getServletContext(),"templates");
}
publicvoid
doGet(HttpServletRequestrequest,HttpServletResponse response)throwsServletException,IOException
{
//建立数据模型
Map<String, String> map=
new HashMap<String, String>();
//放入对应数据key value
map.put("user","Zheng");
//取得模版文件
Template t =cfg.getTemplate("hello.ftl");
//开始准备生成输出
//使用模版文件的charset作为本页面的charset
//使用text/html MIME-type
response.setContentType("text/html; charset="
+ t.getEncoding());
PrintWriter out =response.getWriter();
//合并数据模型和模版,并将结果输出到out中
try
{
t.process(map,out);//用模板来开发servlet可以只在代码里面加入动态的数据
}
catch(TemplateExceptione)
{
thrownew
ServletException("处理Template模版中出现错误",
e);
}
}
}
4在web.xml中添加
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>example.Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
添加完之后的web.xml内容为:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="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>example.Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
5重新运行项目,并且在浏览器中输入http://localhost:8080/FreemakerDemo
点击“调用Hello模板”超链接,跳转到另一个界面
1创建一个名为FreemarkerDemo的Web Project
2删除index.jsp,新建index.html,index.html中的内容为:
<html>
<head>
<title>Hello
FreeMarker Example</title>
<metahttp-equiv="Content-type"content="text/html;
charset=utf-8">
</head>
<body>
点击下面链接看看效果:
<hr>
<ahref="hello.do">调用Hello模板</a>
</body>
</html>
3把web.xml中的index.jsp改为index.html,改完后的内容为:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="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">
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
4把FreemarkerDemo部署到tomcat服务器中
5运行FreemarkerDemo程序
6在浏览器中输入http://localhost:8080/FreemakerDemo
7点击上图中的“调用Hello模板”,报错
下面要利用FreeMarker来实现这个点击事件。
1在WebRoot下创建lib目录,将freemarker包放到lib目录下并刷新
2在WebRoot下新建templates目录,在此目录下新建hello.ftl文件,其内容为
<html>
<head>
<title>hello</title>
</head>
<body>
<h1>Hello${user}!</h1>
</body>
</html>
3在src下创建example包,在example包下创建Hello.java,其内容为:
package example;
importjava.io.*;
importjava.util.*;
importjavax.servlet.ServletException;
importjavax.servlet.http.*;
importfreemarker.template.*;
publicclass
HelloextendsHttpServlet {
privatestaticfinallongserialVersionUID
= 1L;
privateConfigurationcfg;
publicvoid
init()
{
//初始化FreeMarker配置
//创建一个Configuration实例
cfg =newConfiguration();
//设置FreeMarker的模版文件位置
cfg.setServletContextForTemplateLoading(getServletContext(),"templates");
}
publicvoid
doGet(HttpServletRequestrequest,HttpServletResponse response)throwsServletException,IOException
{
//建立数据模型
Map<String, String> map=
new HashMap<String, String>();
//放入对应数据key value
map.put("user","Zheng");
//取得模版文件
Template t =cfg.getTemplate("hello.ftl");
//开始准备生成输出
//使用模版文件的charset作为本页面的charset
//使用text/html MIME-type
response.setContentType("text/html; charset="
+ t.getEncoding());
PrintWriter out =response.getWriter();
//合并数据模型和模版,并将结果输出到out中
try
{
t.process(map,out);//用模板来开发servlet可以只在代码里面加入动态的数据
}
catch(TemplateExceptione)
{
thrownew
ServletException("处理Template模版中出现错误",
e);
}
}
}
4在web.xml中添加
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>example.Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
添加完之后的web.xml内容为:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="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>example.Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
5重新运行项目,并且在浏览器中输入http://localhost:8080/FreemakerDemo
点击“调用Hello模板”超链接,跳转到另一个界面
相关文章推荐
- Reverse Linked List II
- PB事件:pbm_enupdate
- python标准库学习1-SYS
- 从客户端中检测到有潜在危险的 Request.Form 值 设置 ValidateRequest="false" 不管用
- IBM Bluemix试用到期后绑定信用卡继续免费使用
- PowerDesigner 学习笔记
- noip2011普及组:统计单词
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法----细节决定成败 (sort用法)
- ListView与RecyclerView的区别
- 3招搞定android内存泄漏
- iOS 根据自己项目 说说对xml解析的理解
- Linux常用指令
- 编程之美-买书问题
- Caffe + Ubuntu 15.04 + CUDA 7.5 新手安装配置指南
- NSURLConnect的使用
- c++复习要点总结之三 ——构造函数
- cssAndHtml
- 收集的java面试题
- SAS集成Hadoop途径几何?
- 提防向量迭代器变成野指针