介绍开始:

编辑器: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

  1. package config;
  2. import model.User;
  3. import com.jfinal.config.Constants;
  4. import com.jfinal.config.Handlers;
  5. import com.jfinal.config.Interceptors;
  6. import com.jfinal.config.JFinalConfig;
  7. import com.jfinal.config.Plugins;
  8. import com.jfinal.config.Routes;
  9. import com.jfinal.kit.PropKit;
  10. import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
  11. import com.jfinal.plugin.c3p0.C3p0Plugin;
  12. import controller.HelloController;
  13. public class BaseConfig extends JFinalConfig {
  14. @Override
  15. public void configConstant(Constants me) {
  16. // TODO Auto-generated method stub
  17. PropKit.use("demo_config.txt");
  18. me.setDevMode(PropKit.getBoolean("devMode", false));
  19. }
  20. @Override
  21. public void configHandler(Handlers me) {
  22. // TODO Auto-generated method stub
  23. }
  24. @Override
  25. public void configInterceptor(Interceptors me) {
  26. // TODO Auto-generated method stub
  27. }
  28. @Override
  29. public void configPlugin(Plugins me) {
  30. // TODO Auto-generated method stub
  31. C3p0Plugin c3p0Plugin = new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());
  32. me.add(c3p0Plugin);
  33. ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
  34. me.add(arp);
  35. arp.addMapping("user", User.class);
  36. }
  37. @Override
  38. public void configRoute(Routes me) {
  39. // TODO Auto-generated method stub
  40. me.add("/hello", HelloController.class);
  41. }
  42. }

↓此是HelloController.java

  1. package controller;
  2. import model.User;
  3. import service.UserService;
  4. import com.jfinal.core.Controller;
  5. public class HelloController extends Controller {
  6. UserService userService = new UserService();
  7. public void index()
  8. {
  9. String name = getPara("name");
  10. String password = getPara("password");
  11. User user = new User();
  12. user = null;
  13. user = userService.findUser(name, password);
  14. if(user != null)
  15. render("/html/hello.html");
  16. }
  17. }

↓此是User.java

  1. package model;
  2. import com.jfinal.plugin.activerecord.Model;
  3. public class User extends Model<User> {
  4. public static final User dao = new User();
  5. }

↓此是UserService.java

  1. import model.User;
  2. public class UserService {
  3. public User findUser(String name,String password)
  4. {
  5. User user = new User();
  6. user = null;
  7. String sql = "select * from user where name='"+name+"' and password='"+password+"';";
  8. user = User.dao.findFirst(sql);
  9. System.out.printf("sql:"+sql);
  10. return user;
  11. }
  12. }

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

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

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

↓此是demo_config.txt

  1. jdbcUrl = jdbc:mysql://127.0.0.1/jfinal_test?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
  2. user = root
  3. password = root
  4. devMode = true

5 写前台界面

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

↓此是login.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>login.html</title>
  5. <meta name="keywords" content="keyword1,keyword2,keyword3">
  6. <meta name="description" content="this is my page">
  7. <meta name="content-type" content="text/html; charset=UTF-8">
  8. <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  9. </head>
  10. <body>
  11. <form action="../hello" method="post">
  12. <table>
  13. <tr>
  14. <td>name:</td>
  15. <td><input type="text" name="name"></td>
  16. </tr>
  17. <tr>
  18. <td>password:</td>
  19. <td><input type="password" name="password"></td>
  20. </tr>
  21. <tr>
  22. <td></td>
  23. <td><input type="submit" value="Login"></td>
  24. </tr>
  25. </table>
  26. </form>
  27. </body>
  28. </html>

6 修改web.xml文件

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

↓此是web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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_3_0.xsd" id="WebApp_ID" version="3.0">
  3. <display-name>JFinalDemo</display-name>
  4. <filter>
  5. <filter-name>JFinalDemo</filter-name>
  6. <filter-class>com.jfinal.core.JFinalFilter</filter-class>
  7. <init-param>
  8. <param-name>configClass</param-name>
  9. <param-value>config.BaseConfig</param-value>
  10. </init-param>
  11. </filter>
  12. <filter-mapping>
  13. <filter-name>JFinalDemo</filter-name>
  14. <url-pattern>/*</url-pattern>
  15. </filter-mapping>
  16. </web-app>

7 数据库

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

  1. CREATE DATABASE IF NOT EXISTS jfinal_test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  2. CREATE TABLE user (id INT NOT NULL AUTO_INCREMENT,name CHAR(10) NOT NULL,password CHAR(10) NOT NULL,PRIMARY KEY(id));
  3. insert into user(name,password) values('test','test');

8 执行

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

总结

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

如何使用JFinal开发javaweb的更多相关文章

  1. Eclipse开发JavaWeb程序报Server Tomcat v7.0 at localhost was unable to start

    出处:http://www.javaweb1024.com/info/582.jspx 原因重现: Eclipse开发JavaWeb程序,启动Servers的Tomcat服务器,突然跳出弹出框,内容显 ...

  2. JFinal开发web项目出现故障小记

    导读 作为中国优秀的开源项目之中的一个JFinal有着极速开发的优点,是中小型应用开发的首选.在导师的建议下.我使用了JFinal来开发一个Java服务端应用,官方教程非常easy.就几十页(当然是中 ...

  3. 关于jFinal开发中遇到的中文乱码问题解决办法

    关于jFinal开发中遇到的中文乱码问题解决办法 设置tomcat的编码,修改 <Connector port="8080" protocol="HTTP/1.1& ...

  4. MyEclipse配置Tomcat开发JavaWeb程序JSP以及Servlet

    1.安装准备 1).下载安装MyEclipse2014,这已经是最新版本. 2).下载Tomcat 官网:http://tomcat.apache.org/ 我们选择8.0: http://tomca ...

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

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

  6. MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet(转载)

    转载地址:http://blog.csdn.net/21aspnet/article/details/21867241 1.安装准备 1).下载安装MyEclipse2014,这已经是最新版本. 2) ...

  7. (转)MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet

    1.安装准备 1).下载安装MyEclipse2014,这已经是最新版本. 2).下载Tomcat 官网:http://tomcat.apache.org/ 我们选择8.0: http://tomca ...

  8. JavaWeb核心编程之使用Eclipse开发JavaWEB项目

    文章目录 1.eclipse切换到javaee项目 2.创建服务器(如果没有server选项, 怎么做) 3.定制新建面板内容 4.创建动态web工程 1.eclipse切换到javaee项目 如图 ...

  9. JFinal开发8个常见问题

    下面是8个最常见的问题总结. 1.Can not create instance of class: demo.DemoConfig. 觉得应该是你的路径有问题, 打开你项目的java build p ...

随机推荐

  1. OpenStack之Nova模块

    Nova简介 nova和swift是openstack最早的两个组件,nova分为控制节点和计算节点,计算节点通过nova computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,no ...

  2. U盘中了磁碟机病毒怎么办

    问题: U盘在中毒了的电脑上使用后,里面的文件夹均消失了,这是因为里面的文件夹属性被改为隐藏属性.通过查看显示隐藏文件夹发现,所有隐藏了的文件夹的隐藏属性被锁定,无法通过鼠标右键查看文件夹属性的方法改 ...

  3. [HAOI2017模拟]百步穿杨

    今天的考试题. 考试的时候因为以前做过还写过题解,然后就以为模型已经很清楚了,然后就开始直接推.最后因为蜜汁自信一定能推出来,然后模型搞错了,只能交个暴力上去,于是这场考试GG. 第一次碰上这道题是在 ...

  4. 20145301实验四 Android开发基础

    20145301<Java程序设计>实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.26 15:30- ...

  5. 学号20145303 《Java程序设计》第一周学习总结

    学号20145303 <Java程序设计>第一周学习总结 教材学习内容总结 *dos命令行: dir:列出当前目录下的文件及文件名 md:创建目录 rd:删除目录.为空时文件夹(文件夹为空 ...

  6. 20145333 《Java程序设计》第二次实验报告

    2014333 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测试 ...

  7. Linux系统巡检项目

    系统检测 1.检查系统类型 2.检查发行版本 3.检查内核版本 4.检查主机名称 5.检查是否启用SElinux 6.检测默认的语言/编码 7.检测uptime 8.检测最后启动时间等 CPU检查 1 ...

  8. 【网络结构】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications论文解析

    目录 0. Paper link 1. Overview 2. Depthwise Separable Convolution 2.1 architecture 2.2 computational c ...

  9. 【分类】AlexNet论文总结

    目录 0. 论文链接 1. 概述 2. 对数据集的处理 3. 网络模型 3.1 ReLU Nonlinearity 3.2 Training on multiple GPUs 3.3 Local Re ...

  10. DML,DML,DCL,DQL

    可以先看看这篇微博:http://blog.csdn.net/jiben2qingshan/article/details/7832344 http://blog.163.com/chenwenlin ...