 
     
       
      JFinal 是国产的、基于 Java 语言的极速 WEB MVC + ORM 框架,由 Handler、Interceptor、Controller、Render、Plugin 五大部分组成。其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。
JFinal是基于Java语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有 Java语言所有优势的同时 再拥有 ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋 友...
JFinal 有如下主要特点:
摘至官方JFinal 极速开发框架
项目源码地址:Jfinal-demo 使用eclipse创建Dynamic Web Project, 注意:Target runtime 一定要选择< None>: 
下一步,此处的 Default out folder 必须要与 WebRoot\WEB-INF\classes 目录完全一致才可 以使用 JFinal 集成的 Jetty 来启动项目。 
下一步,修改 Content directory,输入 WebRoot:  注意:此处也可以使用默认值 WebContent, 但上一步中的 WebRoot\WEB-INF\classes 则需要 改成 WebContent\WEB-INF\classes 才能对应上。之后,Finish。
 注意:此处也可以使用默认值 WebContent, 但上一步中的 WebRoot\WEB-INF\classes 则需要 改成 WebContent\WEB-INF\classes 才能对应上。之后,Finish。
将jfinal-xxx-xxx.jar 与jetty-server-xxx.jar 拷贝至项目 WEB-INF\lib下即可。下载地址jfinal-download  注意:jetty-server-xxx.jar是开发时使用的运行环境,生产环境不需要此文件。
 注意:jetty-server-xxx.jar是开发时使用的运行环境,生产环境不需要此文件。
配置入口 添加如下内容:
<filter>
	<filter-name>jfinal</filter-name>
	<filter-class>com.jfinal.core.JFinalFilter</filter-class>
	<init-param>
		<param-name>configClass</param-name>
		<param-value>demo.DemoConfig</param-value>
	</init-param>
  </filter>
  <filter-mapping>
	<filter-name>jfinal</filter-name>
	<url-pattern>/*</url-pattern>
  </filter-mapping>
完整web.xml一览:
<?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" 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">
  <display-name>Jfinal-demo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <filter>
	<filter-name>jfinal</filter-name>
	<filter-class>com.jfinal.core.JFinalFilter</filter-class>
	<init-param>
		<param-name>configClass</param-name>
		<param-value>demo.DemoConfig</param-value>
	</init-param>
  </filter>
  <filter-mapping>
	<filter-name>jfinal</filter-name>
	<url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>
新建demo包及DemoConfig类并集成JFinalConfig:
package demo;
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.template.Engine;
public class DemoConfig extends JFinalConfig {
	@Override
	public void configConstant(Constants me) {
		//开启开发模式
		me.setDevMode(true);
	}
	@Override
	public void configEngine(Engine me) {
	}
	@Override
	public void configHandler(Handlers me) {
	}
	@Override
	public void configInterceptor(Interceptors me) {
	}
	@Override
	public void configPlugin(Plugins me) {
	}
	@Override
	public void configRoute(Routes me) {
		//配置/hello访问到HelloController的index()方法,这是约定,不要问为啥...
		me.add("/hello",HelloController.class);
	}
}
注意:DemoConfig.java 文件所在的包以及自身文件名必须与 web.xml 中的 param-value 标签内的配置相一致(在本例中该配置为 demo.DemoConfig)。
在 demo 包下创建 HelloController 类文件并继承Controller:
package demo;
import com.jfinal.core.Controller;
public class HelloController extends Controller {
	public void index() {
		renderText("Hello JFinal~~");
	}
}
按图示操作,选择Debug Configurations... 
鼠标右键点击 Java Application 并选择 New 菜单项,新建 Java Application 启动项,如下图: 
在右侧窗口中的 Main class 输入框中填入: com.jfinal.core.JFinal 并点击 Debug 按钮启动项目 
启动成功截图: 
浏览器输入http://localhost/hello 进行访问:  ok,访问成功~这个时候eclipse控制台会打印如下信息,千万不要认为它是报错......这是正常的
 ok,访问成功~这个时候eclipse控制台会打印如下信息,千万不要认为它是报错......这是正常的 
注意:在 tomcat 下开发或运行项目时,需要先删除 jetty-server-xxx.jar 这个包,否则会引起冲突。 Tomcat启动项目不能使用上面介绍的启动方式,因为上面的启动方式需要用到jetty-server-xxx.jar。
在demo包下创建JFinalStart,类名无所谓,书写main方法如下:
package demo;
import com.jfinal.core.JFinal;
public class JFinalStrat {
	public static void main(String[] args) {
	    JFinal.start("WebRoot", 80, "/", 5);
	}
}
最终项目一览: 
之后我们运行main方法: 
ok,启动成功,打开浏览器进行访问: 
ok,访问成功,简单的JFinal第一个入门程序完成~