最近在做微信开发,于是用到了jfinal。

做一下解释:

JFinal 是基于 Java 语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速、代
码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有 Java 语言所有优势的同时
再拥有 ruby、python、php 等动态语言的开发效率

这些你都可以在百度上找到,我主要是看中了开发快的优点。

1 创建项目
以最常用的 Eclipse 为例,推荐使用 Eclipse IDE for Java EE Developers 版本。
创建 Dynamic Web Project

填入项目基本信息

注意:Target runtime 一定要选择<None>
修改 Default Output Folder,推荐输入 WebRoot\WEB-INF\classes

特别注意:此处的 Default out folder 必须要与 WebRoot\WEB-INF\classes 目录完全一致才可
以使用 JFinal 集成的 Jetty 来启动项目。
修改 Content directory,推荐输入 WebRoot

注意:此处也可以使用默认值 WebContent, 但上一步中的 WebRoot\WEB-INF\classes 则需要
改成 WebContent\WEB-INF\classes 才能对应上。

2 放入 JFinal 库文件

将 jfinal-xxx.jar 与 jetty-server-8.1.8.jar 拷贝至项目 WEB-INF\lib 下即可。注意:
jetty-server-8.1.8.jar 是开发时使用的运行环境,生产环境不需要此文件。

3 修改 web.xml

将如下内容添加至 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>

4 添加 java 文件

在项目 src 目录下创建 demo 包,并在 demo 包下创建 DemoConfig 文件, 内容如下:

package demo;

import com.jfinal.config.*;
import com.jfinal.template.Engine; public class DemoConfig extends JFinalConfig {
public void configConstant(Constants me) {
me.setDevMode(true);
} public void configRoute(Routes me) {
me.add("/hello", HelloController.class);
} public void configEngine(Engine me) {
} public void configPlugin(Plugins me) {
} public void configInterceptor(Interceptors me) {
} public void configHandler(Handlers me) {}
}

注意:DemoConfig.java 文件所在的包以及自身文件名必须与 web.xml 中的 param-value 标

签内的配置相一致(在本例中该配置为 demo.DemoConfig)。

在 demo 包下创建 HelloController 类文件, 内容如下:

 

package demo;

import com.jfinal.core.Controller;

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

5 启动项目

创建启动项如下图所示:

鼠标右键点击 Java Application 并选择 New 菜单项,新建 Java Application 启动项,如下图
所示:

在右侧窗口中的 Main class 输入框中填入: com.jfinal.core.JFinal 并点击 Debug 按钮启动项
目,如下图所示:

上面的启动配置也可以使用一个任意的 main 方法代替。在任意一个类文件中添加一个
main 启动集成的 jetty 如下图所示:

package demo;

import com.jfinal.core.JFinal;

public class DemoMain {

    public static void main(String[] args) {
JFinal.start("WebRoot",80,"/");
} }

6 开启浏览器看效果

打开浏览器在地址栏中输入: http://localhost/hello,输出内容为 Hello JFinal World 证明项目
框架搭建完成。如需完整 demo 示例可在 JFinal 官方网站下载:http://www.jfinal.com

注意:在 tomcat 下开发或运行项目时,需要先删除 jetty-server-xxx.jar 这个包,否则会引起冲
突。Tomcat 启动项目不能使用上面介绍的启动方式,因为上面的启动方式需要用到
jetty-server-xxx.jar。

创建一个jFinal项目的更多相关文章

  1. 快速创建一个springboot项目

    创建一个maven项目(springboot.mybatis-plus) 目标:可以访问ftl页面.对象(json字符串),可以进行单元测试 1.新建一个maven项目,选择模板maven-arche ...

  2. eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)

    在eclipse中创建一个Web项目的时候,虽然有web.xml生成,但是再添加Servlet类文件的时候总是看不见web.xml的更新,所以异常的郁闷!上网查了查,原来我们在创建Web项目的时候,会 ...

  3. 【Android Developers Training】 1. 创建一个Android项目工程

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  4. 创建一个vue项目的过程

    创建一个vue项目: 1.首先从UI手上拿到PSD设计图,然后看设计搞的内容,需要做个大概的页面布局 2.做vue之前不许安装node,因为做vue项目要和node结合使用 3.然后安装vue脚手架: ...

  5. eclipse中创建一个maven项目

    1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...

  6. Python框架学习之用Flask创建一个简单项目

    在前面一篇讲了如何创建一个虚拟环境,今天这一篇就来说说如何创建一个简单的Flask项目.关于Flask的具体介绍就不详细叙述了,我们只要知道它非常简洁.灵活和扩展性强就够了.它不像Django那样集成 ...

  7. 用maven创建一个web项目

    下面所使用的Eclipse开发工具为Eclipse Java EE IDE 版本. 1.创建一个maven项目,如图所示: 选择“maven-archetype-webapp”,如图所示: 后面几步按 ...

  8. Django之真正创建一个django项目

    真正创建一个django项目 1 创建Django项目     :new-project 2 创建APP :  python manager.py startapp app01 3 setting 配 ...

  9. Vue Create 创建一个新项目 命令行创建和视图创建

    Vue Create 创建一个新项目 命令行创建和视图创建 开始之前 你可以先 >>:cd desktop[将安装目录切换到桌面] >>:vue -V :Vue CLI 3.0 ...

随机推荐

  1. Java Array数组 遍历 四种方式(包含 Lambda 表达式遍历)

    示例代码如下: package com.miracle.luna.lambda; import java.util.Arrays; /** * @Author Miracle Luna * @Date ...

  2. asp.net mvc model attribute and razor and form and jquery validate 完美结合

    1.创建Model,添加标注. [Serializable] public class BaseUserModel:BaseModel { [StringLength(100)] [Required( ...

  3. 封装cookie,自定义过期时间,domain,path

    在使用Cookie进行存储的时候,遇到了许多不可思议的bug,特地标识出来,以作总结. 是这样一个项目,登录是放在官网进行操作的,而登录进入的是后台,后台和官网属于同一域名的不同目录,那么常规进行co ...

  4. python__005

    一.字符串格式化 #字符串的拼接#msg='i am a best boy'+'非常帅'print(msg)name=input('name:')hobby=input(('hobby:'))age= ...

  5. 华为HCNA乱学Round 2:路由基础

  6. 模板中用url_for的好处

    from flask import Flask,render_template app = Flask(__name__) @app.route('/') def index(): return re ...

  7. c++自定义时间输出

    #include <time.h> time_t timep; struct tm *p; time(&timep); p=localtime(&timep); int l ...

  8. Mybatis 1.原理流程图

    仅用来做个人笔记记录. 总流程: 根据配置文件(全局配置文件和sql映射文件)初始化configuration对象. 创建一个defaultSqlSession对象,包含Configuration及E ...

  9. 2019ICPC徐州游记

    裂开QAQ 热身赛听隔壁电科的猛男们说赛前别做题,结果我们3个憨憨还是跑到网吧打哈尔滨的重现赛.结果真的炸裂了,队友D被E题卡哭了,我和队友Z被I题搞炸. 回宾馆的路上都害怕明天裂开. 果然想什么坏事 ...

  10. 高效编程之 concurrent.future

    背景 我们知道 Python 中有多线程threading 和多进程multiprocessing 实现并发, 但是这两个东西开销很大,一是开启线程/进程的开销,二是主程序和子程序之间的通信需要 序列 ...