diff --git a/freemarker-tutorial/pom.xml b/freemarker-tutorial/pom.xml
new file mode 100644
index 0000000..6e968d6
--- /dev/null
+++ b/freemarker-tutorial/pom.xml
@@ -0,0 +1,56 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.ekingstar</groupId>
+  <artifactId>freemarker-quickstart</artifactId>
+  <packaging>war</packaging>
+  <version>0.0.1-SNAPSHOT</version>
+  <name>Freemarker Quickstart Webapp</name>
+  <url>http://maven.apache.org</url>
+  <dependencies>
+    <dependency>
+    	<groupId>com.jfinal</groupId>
+    	<artifactId>jfinal</artifactId>
+    	<version>1.6</version>
+    </dependency>
+    <dependency>
+    	<groupId>org.freemarker</groupId>
+    	<artifactId>freemarker</artifactId>
+    	<version>2.3.20</version>
+    </dependency>
+    <dependency>
+    	<groupId>com.jfinal</groupId>
+    	<artifactId>jetty-server</artifactId>
+    	<version>8.1.8</version>
+    </dependency>
+    <dependency>
+    	<groupId>log4j</groupId>
+    	<artifactId>log4j</artifactId>
+    	<version>1.2.16</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <finalName>freemarker_demo</finalName>
+	    <plugins>
+		  <plugin>
+		    <groupId>org.mortbay.jetty</groupId>
+		    <artifactId>jetty-maven-plugin</artifactId>
+		    <version>8.1.8.v20121106</version>
+		    <configuration>
+		        <stopKey>stop</stopKey>
+		        <stopPort>5599</stopPort>
+		        <webAppConfig>
+		            <contextPath>/</contextPath>
+		        </webAppConfig>
+		        <scanIntervalSeconds>5</scanIntervalSeconds>
+		        <connectors>
+		            <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
+		                <port>8080</port>
+		                <maxIdleTime>60000</maxIdleTime>
+		            </connector>
+		        </connectors>
+		    </configuration>
+		  </plugin>
+	  </plugins>
+  </build>
+</project>
diff --git a/freemarker-tutorial/src/main/java/com/ekingstar/common/DefaultConfig.java b/freemarker-tutorial/src/main/java/com/ekingstar/common/DefaultConfig.java
new file mode 100644
index 0000000..fb43d17
--- /dev/null
+++ b/freemarker-tutorial/src/main/java/com/ekingstar/common/DefaultConfig.java
@@ -0,0 +1,56 @@
+package com.ekingstar.common;
+
+import com.jfinal.config.Constants;
+import com.jfinal.config.Handlers;
+import com.jfinal.config.Interceptors;
+import com.jfinal.config.JFinalConfig;
+import com.jfinal.config.Plugins;
+import com.jfinal.config.Routes;
+import com.jfinal.core.JFinal;
+
+/**
+ * API引导式配置
+ */
+public class DefaultConfig extends JFinalConfig {
+
+	/**
+	 * 配置路由
+	 */
+	public void configRoute(Routes me) {
+		me.add("/", DefaultController.class);
+	}
+
+	/**
+	 * 配置插件
+	 */
+	public void configPlugin(Plugins me) {
+	}
+
+	/**
+	 * 配置全局拦截器
+	 */
+	public void configInterceptor(Interceptors me) {
+
+	}
+
+	/**
+	 * 配置处理器
+	 */
+	public void configHandler(Handlers me) {
+
+	}
+
+	/**
+	 * 建议使用 JFinal 手册推荐的方式启动项目 运行此 main
+	 * 方法可以启动项目，此main方法可以放置在任意的Class类定义中，不一定要放于此
+	 * 
+	 * @throws Exception
+	 */
+	public static void main(String[] args) throws Exception {
+		JFinal.start("src/main/webapp", 8080, "/", 5);
+	}
+
+	@Override
+	public void configConstant(Constants me) {
+	}
+}
diff --git a/freemarker-tutorial/src/main/java/com/ekingstar/common/DefaultController.java b/freemarker-tutorial/src/main/java/com/ekingstar/common/DefaultController.java
new file mode 100644
index 0000000..d63ad07
--- /dev/null
+++ b/freemarker-tutorial/src/main/java/com/ekingstar/common/DefaultController.java
@@ -0,0 +1,11 @@
+package com.ekingstar.common;
+
+import com.jfinal.core.Controller;
+
+public class DefaultController extends Controller {
+	
+	public void index() {
+		setAttr("welcome", "Hello World!");
+		render("index.ftl");
+	}
+}
diff --git a/freemarker-tutorial/src/main/resources/log4j.properties b/freemarker-tutorial/src/main/resources/log4j.properties
new file mode 100644
index 0000000..a84025a
--- /dev/null
+++ b/freemarker-tutorial/src/main/resources/log4j.properties
@@ -0,0 +1,10 @@
+log4j.rootLogger=WARN, stdout, file
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n
+
+# Output to the File
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.File=./console
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n
\ No newline at end of file
diff --git a/freemarker-tutorial/src/main/webapp/WEB-INF/web.xml b/freemarker-tutorial/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..69687b6
--- /dev/null
+++ b/freemarker-tutorial/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
+	<filter>
+		<filter-name>jfinal</filter-name>
+		<filter-class>com.jfinal.core.JFinalFilter</filter-class>
+		<init-param>
+			<param-name>configClass</param-name>
+			<param-value>com.ekingstar.common.DefaultConfig</param-value>
+		</init-param>
+	</filter>
+	<filter-mapping>
+		<filter-name>jfinal</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+</web-app>
\ No newline at end of file
diff --git a/freemarker-tutorial/src/main/webapp/index.ftl b/freemarker-tutorial/src/main/webapp/index.ftl
new file mode 100644
index 0000000..ba28695
--- /dev/null
+++ b/freemarker-tutorial/src/main/webapp/index.ftl
@@ -0,0 +1,5 @@
+<html>
+<body>
+<h1>${welcome}</h1>
+</body>
+</html>
\ No newline at end of file
