初步使用JFinal实现简单登录demo
来源:互联网 发布:矩阵条件数多大算病态 编辑:程序博客网 时间:2024/05/18 01:46
一、环境的搭建(省略),在此使用的是JFinal手册推荐的启动方式,Tomcat启动方式百度,嘿哈。
二、使用mysql设计简单的数据库
三、整体结构
四、具体代码实现
User.java
public class User extends Model<User>{public static final User dao = new User();public List<User> findAll(){return find("select * from user");}public List<User> findByNameAndPwd(String name, String password){return find("select * from user where userName='"+name+"' and password='"+password+"'");}}IndexController.java
public class IndexController extends Controller {public void index(){render("login.jsp");}}LoginController.java
public class LoginController extends Controller{public void index(){//User user = getModel(User.class).findByNameAndPwd(getPara(0), getPara(1));;//User user = User.dao.findByNameAndPwd(getPara("userName"), getPara("password"));//user.findByNameAndPwd(getPara(0), getPara(1));/** * 登录效验不能使用getModel方法,因此表单中name属性不能使用user.password这种命名方式 * 因为其直接把传递的参数封装成一个User对象,这样的话无论密码是啥都能登录 */List<User> users = User.dao.findByNameAndPwd(getPara("userName"),getPara("password"));if (users.size() > 0) {//找到用户setSessionAttr("userInfo", users.get(0));redirect("/user");} else {render("/login.jsp");}}}UserController.java
public class UserController extends Controller{public void index(){//查询数据表中的数据setAttr("userList", User.dao.findAll());render("/userList.jsp");}}LoginConfig.java
public class LoginConfig extends JFinalConfig{@Overridepublic void configConstant(Constants me) {/** * 配置常量 */PropKit.use("c3p0config.properties");me.setDevMode(PropKit.getBoolean("devMode", false));me.setViewType(ViewType.JSP);}@Overridepublic void configRoute(Routes me) {me.add("/", IndexController.class);me.add("/login", LoginController.class);me.add("/user", UserController.class);}public static C3p0Plugin createC3p0Plugin() {return new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());}@Overridepublic void configPlugin(Plugins me) {/** * 配置常用插件 *///c3p0连接池插件C3p0Plugin C3p0Plugin = createC3p0Plugin();me.add(C3p0Plugin);//数据库操作插件ActiveRecordPlugin arp = new ActiveRecordPlugin(C3p0Plugin);me.add(arp);//该方法建立了数据库表名到 Model 的映射关系,下面的示例为默认主键是idarp.addMapping("user", User.class);//主键不是id的示例//arp.addMapping("user","user_id",User.class);}@Overridepublic void configInterceptor(Interceptors me) {}@Overridepublic void configHandler(Handlers me) {}}五、启动测试
六、小结
1.初步使用时,在配置路径时卡了好长一段时间,在这里推荐小白好好阅读JFinal开发手册第三章,多动手操作,看看各种配置的不同效果(例如加不加'/'的不同效果)。
2.其实在使用getModel时被坑了。该方法用手册原话来讲:getModel 用来接收页面表单域传递过来的model 对象,表单域名称以”modelName.attrName”
方式命名,除了支持 JFinal 的 Model 对象以外,getModel 同时也支持传统的Java Bean。 初读手册时没有好好理解结果在这方面浪费了好多时间。可见认真阅读是多么的重要呀。
0 0
- 初步使用JFinal实现简单登录demo
- jfinal整合kaptcha实现验证码功能简单Demo
- JFinal最简单demo + gradle
- JFinal学习笔记(二) 实现简单的用户登录
- 使用JFinal框架连接数据库,实现注册、登录功能
- 简单使用JFinal(一)-JFinal简介
- JFinal最简单demo---Hello World
- NodeJs实现简单登录增删改查、登录Demo
- JFinal 中使用 Dubbo —— 1 改造JFinal Demo
- 这是一个使用mvp模式实现模拟用户登录的简单Demo。
- Jfinal 验证码简单实现
- Flask-login 简单 Demo, 最简单的实现登录方法
- JFinal+MySql实现登录注册功能
- 简单使用JFinal(二)-JFinal开发步骤
- jfinal使用session判断是否登录以及登录超时
- JFinal 如何进行XSS过滤(JFinal 的简单介绍到利用JFinal 的handler实现)
- jfinal+freemarker+shiro的简单实现
- WebSocket jfinal 实现简单的聊天室功能
- 父类构造器的隐式调用和显式调用
- linux 定期自动备份mysql的shell
- EL表达式截取字符串
- 集合类的一些知识
- Android-屏幕适配
- 初步使用JFinal实现简单登录demo
- PHP在linux上执行外部命令
- 网站SEO诊断的六个方面
- 解决 Cause: java.lang.RuntimeException: Unexpected exception in dex writer thread
- Zookeeper-3.4.5.jar包目录结构
- 构建微型数据中心——在laptop上运行Rancher
- 面相对象 面相过程
- 苹果新款耳机问题多 线上短暂销售仍被抢空
- MyBatis浅谈缓存机制