Freemarker与Servlet
1.导入jar包(freemarker.jar)
2.web.xml配置一个普通servlet
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
3.建立一个模板文件WEB-INF/templates/test.ftl
<html>
<head>
<title>FreeMarker Example Web Application</title>
</head>
<body>
<h3 style="color:red">${message}</h3>
</body>
</html>
4.Servlet控制器HelloServlet.java
package example; import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import freemarker.template.*; /**
* This Servlet does not do anything useful, just prints "Hello World!". The
* intent is to help you to get started if you want to build your own Controller
* servlet that uses FreeMarker for the View. For more advanced example, see the
* 2nd Web application example.
*/
public class HelloServlet extends HttpServlet {
private Configuration cfg; public void init() {
// Initialize the FreeMarker configuration;
// - Create a configuration instance
cfg = new Configuration();
// - Templates are stoted in the WEB-INF/templates directory of the Web app.
cfg.setServletContextForTemplateLoading(
getServletContext(), "WEB-INF/templates");
// In a real-world application various other settings should be explicitly
// set here, but for the sake of brevity we leave it out now. See the
// "webapp2" example for them.
} protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException { // Build the data-model
Map root = new HashMap();
root.put("message", "测试Hello World!"); // Get the templat object
Template t = cfg.getTemplate("test.ftl"); // Prepare the HTTP response:
// - Use the charset of template for the output
// - Use text/html MIME-type
resp.setContentType("text/html; charset=" + t.getEncoding());
Writer out = resp.getWriter(); // Merge the data-model and the template
try {
t.process(root, out);
} catch (TemplateException e) {
throw new ServletException(
"Error while processing FreeMarker template", e);
}
}
}
Freemarker与Servlet的更多相关文章
- FreeMarker与Servlet结合示例
一.最原始示例 1.引入POM依赖 <!-- https://mvnrepository.com/artifact/org.freemarker/freemarker --> <de ...
- freemarker学习 (servlet + freemarker -> Struts2+freemarker -> springMVC+freemarker)
什么是freemarker? freemarker类似于jsp,但不是jsp!怎么说呢?freemarker文件后缀是.ftl,它不像jsp本质是servlet,它将构建模板.解析模板.使用模板分离开 ...
- 【学习笔记】FreeMarker 之于Servlet与Stuts2的应用
FreeMarker应用在Servlet(0配置web.xml形式): 准备环境: tomcat7.eclipse最新版.jdk1.8.freemarker v2.3.20.jar 举例项目结构图: ...
- spring源码分析之freemarker整合
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源代码等)的通用工具. 它不是面向最终用户的,而是一个Java类库,是一款程 ...
- FreeMarker的基础语法
FreeMarker语言 FreeMarker语言概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写. FreeMarker被设计用来生成HTML Web ...
- freemarker IllegalAccessError 错误
java.lang.IllegalAccessError: tried to access method freemarker.ext.servlet.AllHttpScopesHashModel.& ...
- Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...
- 利用freemarker 静态化网页
1.介绍-FreeMarker是什么 模板引擎:一种基于模板的.用来生成输出文本的通用工具 基于Java的开发包和类库 2.介绍-FreeMarker能做什么 MVC框架中的View层组件 Html页 ...
- freemarker springmvc配置异常
异常信息 java.lang.IllegalAccessError: tried to access method freemarker.ext.servlet.AllHttpScopesHashMo ...
随机推荐
- 【Java每日一题】20161209
package Dec2016; public class Ques1209 { public static void main(String[] args){ People g = new Peop ...
- html中<radio>单选按钮控件标签用法解析及如何设置默认选中
<input type="radio" name="radio" value="1">单选1 <input type=&q ...
- 第 1 章 jQuery EasyUI 入门
学习要点: 1.什么是 jQuery EasyUI 2.学习 jQuery EasyUI 的条件 3.jQuery EasyUI 的功能和优势 4.其他的 UI 插件 5.是否兼容低版本 IE 6.下 ...
- B-Tree索引在sqlserver和mysql中的应用
在谈论数据库性能优化的时候,通常都会提到“索引”,但很多人其实并没有真正理解索引,也没有搞清楚索引为什么就能加快检索速度,以至于在实践中并不能很好的应用索引.事实上,索引是一种廉价而且十分有效的优化手 ...
- 改善SQL语句(转)
二.改善SQL语句 很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from ta ...
- cocos2d-x3.3 以前版本 工程Xcode6编译时的问题
Undefined symbols for architecture i386: "_fwrite$UNIX2003", referenced from: _unixErrorHa ...
- Windows8.1下安装NoSQL-- mongodb安装使用
1. 官方下载monodb:http://www.mongodb.org/downloads 现在最新版本3.0 2. 以下载Windows 64-bit为例官方最新版的没有分开, 32位和64位是应 ...
- 编写可维护的CSS
在参与规模庞大.历时漫长且参与人数众多的项目时,所有开发者遵守如下规则极为重要: 保持 CSS 便于维护 保持代码清晰易懂 保持代码的可拓展性 为了实现这一目标,我们要采用诸多方法. 本文档第一部分将 ...
- jQuery静态方法noop,camelCase,nodeName,trim使用和源码分析
noop方法 jQuery.noop()函数是一个空函数,它什么也不做. 当某些时候你需要传入函数参数,而且希望它什么也不做的时候,你可以使用该函数,也无需再新建一个空的函数. 示例: // 传入一个 ...
- Object.prototype和Function.prototype一些常用方法
Object.prototype 方法: hasOwnProperty 概念:用来判断一个对象中的某一个属性是否是自己提供的(主要是判断属性是原型继承还是自己提供的) 语法:对象.hasOwnProp ...