JFinal(1)JFinal helloworld

** java的极速开放框架:Final 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful

MVC架构,设计精巧,使用简单
遵循COC原则,零配置,无xml
独创Db + Record模式,灵活便利
ActiveRecord支持,使数据库开发极致快速
自动加载修改后的java文件,开发过程中无需重启web server
AOP支持,拦截器配置灵活,功能强大
Plugin体系结构,扩展性强
多视图支持,支持FreeMarker、JSP、Velocity
强大的Validator后端校验功能
功能齐全,拥有struts2的绝大部分功能
体积小仅632K,且无第三方依赖

JFinal 官网http://www.jfinal.com/

1、新建Eclipse 下新建动态web项目

2、直接在WebRoot>WEB-INF>lib下 引入如下包:jfinal-3.3-bin-with-src.jar 和jetty-server-8.1.8.jar(如果你要在Tomcat下运行项目,请不要加这个jar包,也就是只要前面一个,你就能使用这个框架了)

3、新建这个2个java文件,如图

DemoConfig.java内容入下

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.core.JFinal;
import com.jfinal.template.Engine;

public class DemoConfig extends JFinalConfig{

	@Override
	public void configConstant(Constants arg0) {
		arg0.setDevMode(true);
	}

	@Override
	public void configEngine(Engine arg0) {}

	@Override
	public void configHandler(Handlers arg0) {}
	@Override
	public void configInterceptor(Interceptors arg0) {}

	@Override
	public void configPlugin(Plugins arg0) {}

	@Override
	public void configRoute(Routes arg0) {
		arg0.add("/hello", HelloController.class);
	}

	public static void main(String[] args) {
//		JFinal.start("WebRoot/jfinal/demo", 8080, "/", 5);src/main/webapp
		
		JFinal.start("WebRoot", 80, "/", 5);
		}

}

HelloController.java内容入下

package demo;

import com.jfinal.core.Controller;

public class HelloController extends Controller {
	public void index() {
		renderText("Hello JFinal World.");
	}
}

4、然后改下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</display-name>
  <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>

5、问题与总结:

  • 感谢开源社区,感谢jfinal社区,全球有1850万程序员,但是占比世界人口20%的天朝,程序员占比不到10%,开源项目多半来自美国,而Google公司拥有很多开源项目。作为一个90后年代的程序员我觉得自己有义务开源,一路走过来感谢开源已经开源的精神。扯远了有些观点纯属个人看法!

  • 搭建环境过程多多少少遇到坑,运行报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Connector
    at com.jfinal.server.ServerFactory.getServer(ServerFactory.java:44)

    解决办法就是eclipse创建web项目是默认结构是这样,去掉红框部分

  • 运行报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Connector

    原因是因为这里的eclipse默认生成了WebContent,启动的时候请保持一致JFinal.start("WebContent", 80, "/", 5);或者JFinal.start("WebRoot", 80, "/", 5);

  • 打成war包发布到Tomcat->webapps,打包请注意是否去掉了 jettry-server-*.jarjar包


最总效果:简单的hello world ,然后我的这次毕设打算就使用jfinal来做,设计开源,博客边学习边写。

posted @ 2017-12-11 18:02  言非言  阅读(718)  评论(0编辑  收藏  举报