1.JFinal简介
JFinal 是基于Java语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有 Java 语言所有优势的同时 再拥有 ruby、python、php 等动态语言的开发效率!
2.需求分析
一个简单的注册登录网站
将数据写入数据库
3.功能结构
4.数据库设计
字段名 数据类型 是否为空 是否主键 描述
id int 否 是 系统自动编号、自增
account varchar 否 否 用户名称
name varchar 否 否 用户姓名
sex varchar 否 否 用户性别
pass varchar 否 否 用户密码
address varchar 否 否 住址
phone varchar 否 否 电话号码
5.项目环境搭建
5.1.确认项目开发环境
开发工具:eclipse2018-12
操作系统Windows10
浏览器:谷歌浏览器
数据库:MySQL
数据库管理工具:navicat
5.2.创建项目
5.2.1.打开eclipse2018-12
5.2.2.创建Dynamic Web Project填入信息
5.2.3.修改Default Output Folder
5.2.4.修改Content directory,输入WebRoot
5.2.5.放入JFinal库文件
将 jfinal-4.7.jar 与 jetty-server-2019.3.jar 拷贝至项目WEB-INF\lib下即可。注意:jetty-server-2019.3.jar 是开发时使用的运行环境,生产环境不需要此文件。
5.2.6.修改web.xml文件
5.2.7.添加文件
在src文件夹下面com.config包并创建DemoConfig.java文件继承JfinalConfig父类
5.2.8.配置数据库连接:
5.2.9.启动项目
6.项目功能实现
6.1.注册页面
在WebRoot文件夹下面创建view文件夹,创建registered.html文件,
在com.controller包下创建RegisterController.java文件,控制器渲染模板页面。
在DemoConfig.java文件配置访问路由。
RegisterController.java
DemoConfig.java
registered.html
框架通过/register 映射到RegisterController这个控制器,浏览器通过访问http://localhost/register将访问registedController.index() 方法,通过render(“registered.html”);方法将对registered.html模板进行渲染
通JavaScript对表单中的数据进行验证,提交表单通过action="/register/register调用控制器中的register()方法对表单提交的数据写入数据库。
通JavaScript对表单中的数据进行验证,提交表单通action="/register/register调用控制器中的register()方法对表单提交的数据写入数据库。
效果图:
6.2.登录页面
在WebRoot文件夹下面创建view文件夹,创建login.html文件,
在com.controller包下创建IndexController.java文件,控制器渲染模板页面。
在DemoConfig.java文件配置访问路由。
IndexController.java
login.html:
通过/index或者/login 映射到IndexController这个控制器,浏览器通过访问http://localhost/index将访问 IndexController.index() 方法,通过render(“login.html”);方法将对login.html视图进行渲染
通过 action="/index/login" 调用控制器login()方法,获取表单数据并验证通过数据库查询验证数据,如果账号和密码正确则登录成功,setSessionAttr(“loginUser”,user);将用户信息放入session,通过redirect("/welcome");方法跳转到登录成功页面welcome.html。
效果图:
6.3.登录成功页面
通过判断Session是否为空来控制是否对welcome进行渲染。
WelcomController.java
Welcome.html:
控制器获得Session对象,获取name的值。通过setAttr()方法将数据传递给视图,并在视图图中通过 #(userName) 显示出来。
同时视图还通过标签将time.html钟表加载进来。
用户通过退出标签 href="/welcome/clean" 调用控制器的clean()方法,将session设为空,并跳转置登录页面。
效果图: