介绍开始:

编辑器:MyEclipse;

数据库:MySQL;

服务器:tomcat;

1 首先新建web项目

要强调的是Target runtime必须选择为None。然后点击两次Next,选中创建web.xml。finish~~~

2 导入支撑项目的jar包(包括JFinal、Mysql、JDBC)

必须导入这四个jar包。其中:(1) c3p0是支撑JDBC的;(2)jfina是支撑jfinal的,jfinal默认使用freemarker作为MVC的View,所以也要导入;(3)mysql-conncetor是支撑Mysql连接的

3 写java代码

在src文件夹中创建四个package,分别为config,controller, model,service。其中config包里是全局配置文件,controller对应的就是MVC中的Control,model与service组成MVC的Model。Control就是控制前后台的交互,model对应数据库的各个表以及派生model类,service就是写sql语句的地方

config中有三个方法最重要configConstant、configPlugin、configRoute

(1)configConstant:此方法用来配置 JFinal 常量值

(2)configPlugin:此方法用来配置 JFinal 的 Plugin,比如配置 C3p0 数据库连接池插件与 ActiveRecord数据库访问插件

(3)configRoute:此方法用来配置 JFinal 访问路由,比如将”/hello”映射到 HelloController 这个控制器

说完这些我们来看代码

↓此为BaseConfig.java

package config;

import model.User;

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.kit.PropKit;

import com.jfinal.plugin.activerecord.ActiveRecordPlugin;

import com.jfinal.plugin.c3p0.C3p0Plugin;

import controller.HelloController;

public class BaseConfig extends JFinalConfig {

@Override

public void configConstant(Constants me) {

// TODO Auto-generated method stub

PropKit.use("demo_config.txt");

me.setDevMode(PropKit.getBoolean("devMode", false));

}

@Override

public void configHandler(Handlers me) {

// TODO Auto-generated method stub

}

@Override

public void configInterceptor(Interceptors me) {

// TODO Auto-generated method stub

}

@Override

public void configPlugin(Plugins me) {

// TODO Auto-generated method stub

C3p0Plugin c3p0Plugin = new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());

me.add(c3p0Plugin);

ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);

me.add(arp);

arp.addMapping("user", User.class);

}

@Override

public void configRoute(Routes me) {

// TODO Auto-generated method stub

me.add("/hello", HelloController.class);

}

}

↓此是HelloController.java

package controller;

import model.User;

import service.UserService;

import com.jfinal.core.Controller;

public class HelloController extends Controller {

UserService userService = new UserService();

public void index()

{

String name = getPara("name");

String password = getPara("password");

User user = new User();

user = null;

user = userService.findUser(name, password);

if(user != null)

render("/html/hello.html");

}

}

↓此是User.java

package model;

import com.jfinal.plugin.activerecord.Model;

public class User extends Model {

public static final User dao = new User();

}

↓此是UserService.java

import model.User;

public class UserService {

public User findUser(String name,String password)

{

User user = new User();

user = null;

String sql = "select * from user where name='"+name+"' and password='"+password+"';";

user = User.dao.findFirst(sql);

System.out.printf("sql:"+sql);

return user;

}

}

4 千万不能忘了Propkit要引用的txt文件

Propkit是JFinal自带的工具类。Propkit可以用来加载一个或多个配置文件。在该Demo中PropKit用在BaseConfig的configConstant方法中。

需要强调的是,加载的配置文件必须要放在src下。原因是:友情链接http://www.oschina.net/question/2461549_2148022?fromerr=ceMjBkEb

↓此是demo_config.txt

jdbcUrl = jdbc:mysql://127.0.0.1/jfinal_test?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull

user = root

password = root

devMode = true

5 写前台界面

在WebRoot下创建文件夹html,在html文件夹下创建hello.html与login.html。其中hello.html里什么都不用添加,login.html设计一个表单提交。

↓此是login.html

html>

login.html

name:
password:

6 修改web.xml文件

web.xml在WebRoot/WEB-INF文件夹下

↓此是web.xml

JFinalDemo

JFinalDemo

com.jfinal.core.JFinalFilter

configClass

config.BaseConfig

JFinalDemo

/*

7 数据库

创建数据库的语句与插入的测试数据。

CREATE DATABASE IF NOT EXISTS jfinal_test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

CREATE TABLE user (id INT NOT NULL AUTO_INCREMENT,name CHAR(10) NOT NULL,password CHAR(10) NOT NULL,PRIMARY KEY(id));

insert into user(name,password) values('test','test');

8 执行

账户密码都是test,点击login后,跳转成功

总结

由于本人并没有structs经验,MVC也只是入门级,所以刚开始阅读JFinal的文档时完全不会配置,但是认真梳理一下,从头开始一步步的导入支撑的文件,并结合自己的MVC体会,算是会用JFinal了。在后面的一段时间内,我会经常与JFinal打交道,所以以后还会写一些对JFinal的使用感悟。

java jfinal_如何使用JFinal开发javaweb相关推荐

  1. eclipse开发javaweb项目中The superclass javax.servlet.http.HttpServlet was not found on the Java Build

    The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方案: ...

  2. JFinal开发环境搭建,JFinal开发案例

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

  3. 基于Servlet+jsp+mysql开发javaWeb学生管理系统(学生信息、学生选课、学生成绩、学生签到考勤)

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者没有积分想获取项目,欢迎指教: 企鹅:869192208 文章目录 一.开发背景 二. 需求分析 三.开发环境 四.运行效果 ...

  4. 如果通过Java来完成大数据开发,需要学习哪些内容

    首先,当前大数据领域的开发岗位确实比较多,近两年有不少大数据方向的研究生也会从事大数据开发岗位,而Java语言则是大数据开发人员的常用工具,所以如果要从事大数据开发岗位,可以重点学习一下Java语言. ...

  5. 基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者没有积分想获取项目,欢迎指教: 企鹅:869192208 文章目录 一.开发背景 二. 需求分析 三.开发环境 四.运行效果 ...

  6. 计算机毕业设计Java智慧社区信息管理系统开发(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java智慧社区信息管理系统开发(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java智慧社区信息管理系统开发(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目 ...

  7. 基于 Servlet+jsp+mysql 开发 javaWeb 学生网络考试系统

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者没有积分想获取项目,欢迎指教: 企鹅:869192208 文章目录 一.开发背景 二. 需求分析 三.开发环境 四.运行效果 ...

  8. 基于 Servlet+jsp+mysql 开发 javaWeb 养老院信息管理系统

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者没有积分想获取项目,欢迎指教: 企鹅:869192208 文章目录 一.开发背景 二. 需求分析 三.开发环境 四.运行效果 ...

  9. 基于Spring+SpringMvc+Mybatis开发javaWeb汽车维修管理系统

    你知道的越多,你不知道的越多 点赞再看,养成习惯 源码分享在文末,点赞关注,解锁更多毕业设计项目 企鹅:869192208 如果您有疑问或者见解,欢迎指教: 文章目录 一.开发背景 二. 需求分析 三 ...

最新文章

  1. Windows10上使用VS2017编译MXNet源码操作步骤(C++)
  2. OpenCV基本线性变换的实例(附完整代码)
  3. c++代码表白_一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选
  4. Codeforces 987A. Infinity Gauntlet(手速题,map存一下输出即可)
  5. Sharepoint学习笔记—Site Definition系列-- 2、创建Content Type
  6. uni-app 调用接口封装文档
  7. 开源框架openresty+nginx 实现web应用防火墙(WAF)
  8. ios换肤思想,及工具类
  9. Spring实现Controller中方法参数校验
  10. 2019 - iOS最新最全面试题梳理(内含框架和算法题)
  11. 微信小程序云开发教程-互联网软件产品开发流程和团队分工
  12. excel打开密码忘记了_如何设置EXCEL文件打开和编辑密码
  13. SaaSBase:什么是企域数科?
  14. tmap的使用_(转载)UE4容器TArray、TMap的使用
  15. 23种设计模式(GOF)
  16. C语言的return用法
  17. 海底捞,我们该学什么?--《海底捞你学不会》读后感
  18. SECTION 1 python核心编程 快速入门
  19. java遍历map前n项_Java遍历Map的几种方式
  20. 【array-java】531. Lonely Pixel I

热门文章

  1. iOS短视频源码音频采集过程中的音效实现
  2. JDK1.8下载、安装和环境变量配置教程(win7和win10分别介绍)
  3. linux 进程间通信及makefile 无名管道/有名管道/共享内存/信号/消息队列
  4. 不同品牌android手机ui,三种不同界面的安卓系统_华为手机_手机Android频道-中关村在线...
  5. 爱上生活  。 文/江湖一劍客
  6. CATIA 3DEXPERIENCE R2019x VBA开发介绍
  7. wasp软件怎么安装不了_安装选项 · alibaba/wasp Wiki · GitHub
  8. 汽车 Automotive > CAN Transceivers收发器选择
  9. Proface触摸屏按钮互锁、弹出窗口、密码设置、报警设置案例
  10. PC微信协议 小程序数据接收处理