JFinal-快速开发框架之HelloWorld(一)

JFinal 是国产的、基于 Java 语言的极速 WEB MVC + ORM 框架,由 Handler、Interceptor、Controller、Render、Plugin 五大部分组成。其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。


JFinal是基于Java语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有 Java语言所有优势的同时 再拥有 ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋 友...


JFinal 有如下主要特点:

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

摘至官方JFinal 极速开发框架

创建项目

项目源码地址:Jfinal-demo
使用eclipse创建Dynamic Web Project, 注意:Target runtime 一定要选择< None>:

下一步,此处的 Default out folder 必须要与 WebRootWEB-INFclasses 目录完全一致才可 以使用 JFinal 集成的 Jetty 来启动项目。

下一步,修改 Content directory,输入 WebRoot:

注意:此处也可以使用默认值 WebContent, 但上一步中的 WebRootWEB-INFclasses 则需要 改成 WebContentWEB-INFclasses 才能对应上。之后,Finish。

添加jar包

将jfinal-xxx-xxx.jar 与jetty-server-xxx.jar 拷贝至项目 WEB-INFlib下即可。下载地址jfinal-download

注意:jetty-server-xxx.jar是开发时使用的运行环境,生产环境不需要此文件。

web.xml修改

配置入口
添加如下内容:

<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>

config类

新建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)。

HelloController

在 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控制台会打印如下信息,千万不要认为它是报错......这是正常的

注意:在 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第一个入门程序完成~

Last modification:February 24th, 2019 at 04:01 pm
If you think my article is useful to you, please feel free to appreciate

3 comments

  1. aka

    Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/jetty/webapp/WebAppClassLoader : Unsupported major.minor version 52.0
    启动项目后报如下错误,这是什么原因?

    1. perfree
      @aka

      检查jdk版本是否一致,启动项目的话建议使用第二种方式,比较简单

      1. aka
        @perfree

        我用的JDK1.6和1.7都试过,还是报上面的错。是不是跟我操作系统的位数有关?我电脑是32位的

Leave a Comment