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

1、配置pom文件,JFinal需要添加对应的依赖

<?xml version="1.0" encoding="UTF-8"?><!-- $Id: pom.xml 642118 2008-03-28 08:04:16Z reinhard $ -->
<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><packaging>war</packaging><name>jfinal-demo</name><groupId>com.zfskkk</groupId><artifactId>jfinal-demo</artifactId><version>1.0-SNAPSHOT</version><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.encoding>UTF-8</maven.compiler.encoding></properties><!-- 使用阿里 maven 库 --><repositories><repository><id>ali-maven</id><url>http://maven.aliyun.com/nexus/content/groups/public</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy><checksumPolicy>fail</checksumPolicy></snapshots></repository></repositories><dependencies><dependency><groupId>com.jfinal</groupId><artifactId>jetty-server</artifactId><version>8.1.8</version><!--此处的 scope 值为 compile 仅为支持 IDEA 下启动项目打 war 包时需要改成 provided,以免将一些无用的 jar 打进去--><scope>compile</scope></dependency><dependency><groupId>com.jfinal</groupId><artifactId>jfinal</artifactId><version>3.3</version></dependency></dependencies><build><finalName>jfinal_demo_for_maven</finalName><plugins><plugin><groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>8.1.11.v20130520</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>80</port><maxIdleTime>60000</maxIdleTime></connector></connectors></configuration></plugin></plugins></build>
</project>

2、JFinal需要有一个配置文件,所有的配置信息都可以在该文件中进行配置,该配置文件需要继承JFinalConfig

package com.zfskkk;import com.jfinal.config.*;
import com.jfinal.core.JFinal;
import com.jfinal.render.ViewType;
import com.jfinal.template.Engine;public class MyConfig extends JFinalConfig {public void configConstant(Constants constants) {constants.setDevMode(true);constants.setEncoding("UTF-8");constants.setViewType(ViewType.JSP);}public void configRoute(Routes routes) {}public void configEngine(Engine engine) {}public void configPlugin(Plugins plugins) {}public void configInterceptor(Interceptors interceptors) {}public void configHandler(Handlers handlers) {}// 系统启动完成后回调public void afterJFinalStart() {}// 系统关闭之前回调public void beforeJFinalStop() {}}

3、在web.xml文件中配置过滤器,web项目启动后需要根据这个过滤器来找到配置文件读取相关配置信息

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><filter><filter-name>jfinal</filter-name><filter-class>com.jfinal.core.JFinalFilter</filter-class><init-param><param-name>configClass</param-name><param-value>com.zfskkk.MyConfig</param-value></init-param></filter><filter-mapping><filter-name>jfinal</filter-name><url-pattern>/*</url-pattern></filter-mapping>
</web-app>

4、启动,启动的main方法不一定需要在Controller里面,比如在MyConfig 配置文件中也是可以的

package com.zfskkk;import com.jfinal.core.Controller;
import com.jfinal.core.JFinal;public class HelloController extends Controller {public static void main(String[] args) {// 第二个参数为端口JFinal.start("src/main/webapp", 80, "/");}
}

如下图所示说明启动成功,

5、创建Controller

package com.zfskkk;import com.jfinal.aop.Before;
import com.jfinal.core.ActionKey;
import com.jfinal.core.Controller;public class MyController extends Controller {public void index() {renderText("hello world ,this is my first controller");}public void hello() {renderText("this is hello method");}@ActionKey("/my/test1/key")public void testKey() {renderText("/my/test1/key");}
}

自己创建的Controller必须要继承JFinal的Controller,然后在MyConfig 配置文件中添加路由配置,最后重启访问http://localhost/hello

    public void configRoute(Routes routes) {routes.add("/hello", MyController.class);}

JFinal入门教程相关推荐

  1. Kafka入门教程与详解

    1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...

  2. 【CV】Pytorch一小时入门教程-代码详解

    目录 一.关键部分代码分解 1.定义网络 2.损失函数(代价函数) 3.更新权值 二.训练完整的分类器 1.数据处理 2. 训练模型(代码详解) CPU训练 GPU训练 CPU版本与GPU版本代码区别 ...

  3. python tornado教程_Tornado 简单入门教程(零)——准备工作

    前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端).学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考.完 ...

  4. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  5. mysql query browswer_MySQL数据库新特性之存储过程入门教程

    MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...

  6. python tensorflow教程_TensorFlow入门教程TensorFlow 基本使用T

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TensorFlow入门教程 TensorFlow 基本使用 TensorFlow官方中文教程 TensorFlow 的特点: 使用图 (graph) 来 ...

  7. air调用java,AIR2.0入门教程:与Java应用交互

    在之前的一篇文章中,我介绍了如何使用AIR2.0新增的NativeProcess类与本地进程进行交互和通讯,在那个例子里面我们使用了C++ 的代码,实际上只要是基于命令行的标准输入输出,AIR2.0的 ...

  8. 【Arduino】开发入门教程【一】什么是Arduino

    Arduino Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).它适用于艺术家.设计师.爱好者和对于"互动 ...

  9. python 三分钟入门_Cython 三分钟入门教程

    作者:perrygeo 译者:赖勇浩(http://laiyonghao.com) 原文:http://www.perrygeo.net/wordpress/?p=116 我最喜欢的是Python,它 ...

最新文章

  1. 深度学习已经触底?这篇文章的观点令人信服吗?
  2. 定制你的敏捷方法:以结果为导向
  3. 数字信号处理中的自相关和互相关计算和物理意义(二)
  4. HDU 4619 Warm up 2 最大独立集
  5. 信号处理之DFT、IDFT
  6. 抚州虚拟服务器,南通虚拟主机_南通云虚机_南通主机申请_南通网站空间_爱名网(www.22.cn)...
  7. 8-Qt6 智能指针QPointer
  8. RPM包管理命令rpm
  9. pacs系统服务器配置,pacs系统服务器配置
  10. ANSI颜色字体一篇通
  11. 算法(第四版)C# 习题题解——1.2
  12. 【机器学习】MATLAB读取mnist数据库
  13. 如何自动升级php数据库,php – 如何在现实世界中“升级”数据库?
  14. 64位CentOS 6.4下安装wine
  15. Ubuntu配置 PPTP 服务器端
  16. Python使用Regular入门
  17. 书中自有黄金屋系列4:读《一课经济学》
  18. Android N for Developers(API概览)
  19. 如何修改微信公众号内部网页的头部标签内容
  20. wxj项目的开发一点记录

热门文章

  1. 微信小程序,Eror代码包大小为12497kb,上限为 2048 kb,请删除文件后重试?微信小程序分包加载
  2. 错误:Could not decode “.cpp“with “UTF-8“-encoding.Editing not possible.
  3. SQL Server的索引碎片
  4. python接入讯代理_python实现简单的TCP代理服务器
  5. Hexo yilia 主题一揽子使用方案
  6. 20 时序图图形含义
  7. Windows平台 常用开发工具下载
  8. python毕业设计作品基于django框架 电影院购票选座系统毕设成品(7)中期检查报告
  9. Google Earth Engine(GEE)——利用Landsat 5 每一期影像制作动画时序并附带时间属性
  10. I.MX6 FFmpeg 录制视频