JFinal Web开发学习(二)目录、架构、package设计

package分类

  • config是JFinal的项目配置
  • controller是控制器
  • handler可以设置全局处理器,例如判断用户请求中是否直接请求
  • FreeMarker的模板文件ftl或者html的后缀,重定向到404
  • interceptor拦截器,例如后台admin的每项操作拦截判断admin是否有权限或者是否已经登录
  • model.base用于JFinal的Generator生成器自动生成数据库映射基础模型类
  • model用于继承基础模型类的dao操作
  • routes用于设置单独路由配置,例如大项目可单独设计后端路由AdminRoutes、前端路由FrontRoutes
  • service作为controller与model的层,处理业务逻辑
  • test用于项目测试
  • utils用于公共的工具类,例如apache poi的word在线生成打印工具
  • validate用于后端验证,比前端JS验证安全、靠谱


新建res文件夹 
- log4j.properties用于配置log4j记录项目的日志 
- SystemConfig.txt用于保存项目配置参数,供MyJFinalConfig读取使用



WebRoot目录
- admin目录存放后台模板文件
- static存放静态资源文件
- js 存放JavaScript文件
- css存放样式表文件
- images存放图片文件
- fonts存放字体文件
- WebRoot根目录存放前台的模板文件



这种目录也是个人习惯,大项目要特别注意,小项目就没必要过于关注了,否则会“过度设计”

参考原文:https://blog.csdn.net/u012995856/article/details/52714284

原文地址:https://www.cnblogs.com/wyhluckdog/p/10293085.html

时间: 2024-10-09 19:27:58

JFinal Web开发学习(二)目录、架构、package设计的相关文章

JFinal Web开发学习(一)开启HelloWorld

初次接触JFinal框架,接触过MVC思想,接触过Spring. JFinal官网: http://www.jfinal.com/ 之前很嫌弃JavaWeb开发,主要原因是繁琐的xml配置. 官方推荐工具是Eclipse For J2EE. 按照官方文档搭建起快速上手demo - 建立javaweb工程 - 放入jar包 - 修改web.xml - 写java文件 新建package cn.pangpython.config cn.pangpython.controller 在controlle

JFinal Web开发学习(四)数据库连接与自动生成model

1.新建数据库jfinal_test,user表 /* Navicat MySQL Data Transfer Source Server : . Source Server Version : 50547 Source Host : localhost:3306 Source Database : jfinal_test Target Server Type : MYSQL Target Server Version : 50547 File Encoding : 65001 Date: 20

JFinal Web开发学习(七)使用layUI美化的登录功能

效果: 验证码还是没有布局好.背景比较怀古. 1.写前端html login.jsp <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>

JFinal Web开发学习(九)后台添加前台显示博客

效果: 发博客: 显示博客: 后台:使用hui-admin,文章编辑器是百度开源的ueditor 前台:使用layui前端框架 1.写控制器BlogController controller包中 package cn.pangpython.controller; import com.jfinal.core.Controller; import cn.pangpython.model.Blog; import cn.pangpython.utils.DateUtils; /** * @autho

【web开发学习笔记】Structs2 Action学习笔记(二)

action学习笔记2-有关于action method的讨论 Action执行的时候并不一定要执行execute方法,可以在配置文件中配置Action的时候用method=来指定执行哪个方法 也可以在url地址中动态指定(动态方法调用DMI)(推荐) 方法一 <struts> <constant name="struts.devMode" value="true" /> <package name="user" e

【web开发学习笔记】Structs2 Result学习笔记(二)动态结果集

Result学习笔记(二) - 动态结果集 动态结果 一定不要忘了为动态结果的保存值设置set get方法 第一部分:代码 //前端 <% String context = request.getContextPath(); %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional

【web开发学习笔记】Structs2 Action学习笔记(三)action通配符的使用

action学习笔记3-有关于通配符的讨论 使用通配符,将配置量降到最低,不过,一定要遵守"约定优于配置"的原则. 一:前端htm <前端代码html> </head> <body> <a href="<%=context %>/actions/Studentadd">添加学生</a> <a href="<%=context %>/actions/Studentdel

Django Web开发学习笔记(5)

第五部分 Model 层 创建一个app工程.app和project的区别引用DjangoBook的说法是: 一个project包含很多个Django app以及对它们的配置. 技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息, 安装的app列表, TEMPLATE_DIRS ,等等. 一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在. 例如,Django本身内建有一些app,例如注释系统和自动管理界面. app的一个关键点是它

Django Web开发学习笔记(4)

第四章 模板篇 上一章的内容,我们将HTML的代码和Python代码都混合在了在view.py的文件下.但是这样做的坏处无疑是明显的,引用DjangoBook的说法: 对页面设计进行的任何改变都必须对 Python 代码进行相应的修改. 站点设计的修改往往比底层 Python 代码的修改要频繁得多,因此如果可以在不进行 Python 代码修改的情况下变更设计,那将会方便得多. Python 代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门