一、开发环境
1、windows 7 企业版
2、Eclipse IDE for Enterprise Java Developers Version: 2019-03 (4.11.0)
3、JDK 1.8
4、Maven 3.5.2
5、MariaDB
6、Tomcat 8.5
二、基础配置
1、Eclipse中Maven的设置如下图
2、数据库使用默认的test库,创建表category
1 CREATE TABLE category2 (3 categoryid INT AUTO_INCREMENT PRIMARY KEY,4 categoryname VARCHAR(10) NOT NULL5 );6 7 INSERT INTO category VALUES(NULL, '图书'), (NULL, '美妆');8 9 SELECT * FROM category;
三、环境搭建
1、创建Maven工程
2、使用默认工作空间
3、选择工程初始类型webapp
4、填写包名和工程名
5、点击Finish,开始创建Maven工程。创建完毕后,会提示找不到Servlet包的错误。可以通过导入Tomcat解决该问题。
删除默认的index.jsp文件,后面我们使用html页面。在webapp目录的WEB-INF目录下新建classes目录。最终的目录结构如下
6、编写pom.xml文件
14 4.0.0 5cn.temptation 6jfinalDemo 7war 80.0.1-SNAPSHOT 9jfinalDemo Maven Webapp 10http://maven.apache.org 1112 4513 18 19junit 14junit 153.8.1 16test 1720 24 25com.jfinal 21jfinal 223.8 2326 32 33com.jfinal 27jetty-server 282019.3 29 30provided 3134 38 39mysql 35mysql-connector-java 365.1.37 3740 44com.alibaba 41druid 421.0.29 4346 48jfinalDemo 47
7、编写web.xml配置文件,主要就是设置一下过滤器
1 4 56 7 14jFinal 8com.jfinal.core.JFinalFilter 910 13configClass 11cn.temptation.config.MyConfig 1215 18jFinal 16/* 17
8、编写数据库连接配置文件db.properties,为了能在框架中读取到该配置文件内容,把该文件放在前面创建的webapp目录的WEB-INF目录下的classes目录中。
1 jdbcUrl = jdbc:mysql://localhost/test?characterEncoding=utf82 user = root3 password = sa4 devMode = true5 showSql = true
9、编写实体类Category,因为要使用ActiveRecord,所以从com.jfinal.plugin.activerecord.Model继承
1 package cn.temptation.bean;2 3 import com.jfinal.plugin.activerecord.Model;4 5 @SuppressWarnings("serial")6 public class Category extends Model{7 8 }
10、编写配置类MyConfig
1 package cn.temptation.config; 2 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.core.JFinal;10 import com.jfinal.plugin.activerecord.ActiveRecordPlugin;11 import com.jfinal.plugin.druid.DruidPlugin;12 import com.jfinal.template.Engine;13 14 import cn.temptation.bean.Category;15 import cn.temptation.web.CategoryController;16 17 public class MyConfig extends JFinalConfig {18 /**19 * 配置常量20 */21 @Override22 public void configConstant(Constants me) {23 // 加载数据库配置文件24 loadPropertyFile("db.properties");25 me.setDevMode(true);26 // 开启支持注解,支持 Controller、Interceptor 之中使用 @Inject 注入业务层,并且自动实现 AOP27 me.setInjectDependency(true);28 }29 30 @Override31 public void configRoute(Routes me) {32 me.add("/", CategoryController.class);33 }34 35 /**36 * 配置插件37 */38 @Override39 public void configPlugin(Plugins me) {40 // 配置druid连接池41 DruidPlugin db = new DruidPlugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password"));42 me.add(db);43 // ActiveRecord是作为JFinal的Plugin而存在的,所以使用时需要在JFinalConfig中配置ActiveRecordPlugin44 ActiveRecordPlugin activeRecordPlugin = new ActiveRecordPlugin(db);45 activeRecordPlugin.addMapping("category", Category.class);46 // 展示sql语句47 activeRecordPlugin.setShowSql(true);48 me.add(activeRecordPlugin);49 }50 51 /**52 * 配置全局拦截器53 */54 @Override55 public void configInterceptor(Interceptors me) {56 57 }58 59 /**60 * 配置处理器61 */62 @Override63 public void configHandler(Handlers me) {64 65 }66 67 /**68 * 配置模板69 */70 @Override71 public void configEngine(Engine me) {72 73 }74 75 /**76 * 启动方法77 * 78 * @param args79 */80 public static void main(String[] args) {81 JFinal.start("src/main/webapp", 8080, "/", 5);82 }83 }
11、编写控制器CategoryController,从com.jfinal.core.Controller继承
1 package cn.temptation.web; 2 3 import java.util.List; 4 5 import com.jfinal.core.Controller; 6 7 import cn.temptation.bean.Category; 8 9 public class CategoryController extends Controller {10 private Category categoryDao = new Category().dao();11 12 public void index() {13 Listcategories = categoryDao.find("SELECT * FROM category");14 setAttr("categories", categories);15 render("category.html");16 }17 }
12、在webapp目录下新建category.html,将服务端获取到的类别数据循环取出呈现
1 2 3 4 5类别列表 6 12 13 14
类别编号 | 17类别名称 | 18
---|---|
#(category.categoryid) | 22#(category.categoryname) | 23
13、启动程序,在MyConfig类中直接运行(ctrl + F11)或调试程序(F11),一切顺利的话,可以看到如下内容。这是整合了jetty作为web容器的玩法
14、 整个工程的目录结构
15、要发布成war包,丢到tomcat中运行也很简单,只要在工程上右键找到Run AS----->Maven build,输入clean package,再点击Run,即可打war包。把生成好的war包丢到tomcat的webapps目录下,启动tomcat运行吧,注意,tomcat下访问的路径默认是要带上该工程的目录的,比如本例子中访问的路径就应该是