• Web 项目 JFinal 开发框架


    Web项目JFinal开发框架

    • l  JFinal创建项目整体的开发框架
    • 创建 Dynamic Web Project,根据JFinal手册和项目AssignSyn

          

    • 修改web.xml
    • 创建如上图所示的项目结构
    • 其中源代码包src下有config、controller、model以及other包。
    1. l  Config包主要用于项目的配置(包括数据库的连接、如有配置等)
    2. l  Controller主要用于后台的数据判断与处理,基本上一个基础页面需要一个controller,例如;登录页面需要一个controller,普通员工、部门经理和总经理的基本页面不同,相应的功能也有些不同,所以这三类人的通道都用一个controller来进行后台的控制
    3. l  Model用来存放Generator模板自动生成的model类,用于实现对数据库的数据进行处理(增、删、改、查)。对BaseModel自动生成处理函数,而Model集成BaseModel的进行数据处理方法。一般有数据库中表的个数乘以2的.java文件。
    4. l  Other中有GeneratorDemo.java和MD5.java。其中Generator文件是用来自动生成数据库数据的处理方法。而MD5重要是用来进行数据库密码的加密。

        Generator中的代码如下:

        

    package other;
    
    
    import javax.sql.DataSource;
    import com.jfinal.kit.PathKit;
    import com.jfinal.kit.Prop;
    import com.jfinal.kit.PropKit;
    import com.jfinal.plugin.activerecord.generator.Generator;
    import com.jfinal.plugin.c3p0.C3p0Plugin;
    
    /**
     * GeneratorDemo
     */
    public class GeneratorDemo {
        
        public static DataSource getDataSource() {
            C3p0Plugin c3p0Plugin = new C3p0Plugin("jdbc:mysql://127.0.0.1/assignsys?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull"
                    ,"root","950308");
            c3p0Plugin.start();
            return c3p0Plugin.getDataSource();
        }
        
        public static void main(String[] args) {
            // base model 所使用的包名
            String baseModelPackageName = "model";
            // base model 文件保存路径
            String baseModelOutputDir = PathKit.getWebRootPath() + "/../src/model";
            
            // model 所使用的包名 (MappingKit 默认使用的包名)
            String modelPackageName = "model";
            // model 文件保存路径 (MappingKit 与 DataDictionary 文件默认保存路径)
            String modelOutputDir = baseModelOutputDir;
            
            // 创建生成器
            
            Generator gernerator = new Generator(getDataSource(), baseModelPackageName, baseModelOutputDir, modelPackageName, modelOutputDir);
    
            // 设置是否在 Model 中生成 dao 对象
            gernerator.setGenerateDaoInModel(true);
            // 设置是否生成字典文件
            gernerator.setGenerateDataDictionary(false);
    
            // 生成
            gernerator.generate();
        }
    }
    View Code

        MD5的代码如下:

    package other;
    
    
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    /*
     * MD5 算法
    */
    public class MD5 {
        
        // 全局数组
        private final static String[] strDigits = { "0", "1", "2", "3", "4", "5",
                "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
    
        public MD5() {
        }
    
        // 返回形式为数字跟字符�?
        private static String byteToArrayString(byte bByte) {
            int iRet = bByte;
            // System.out.println("iRet="+iRet);
            if (iRet < 0) {
                iRet += 256;
            }
            int iD1 = iRet / 16;
            int iD2 = iRet % 16;
            return strDigits[iD1] + strDigits[iD2];
        }
    
        // 返回形式只为数字
        private static String byteToNum(byte bByte) {
            int iRet = bByte;
            System.out.println("iRet1=" + iRet);
            if (iRet < 0) {
                iRet += 256;
            }
            return String.valueOf(iRet);
        }
    
        // 转换字节数组�?16进制字串
        private static String byteToString(byte[] bByte) {
            StringBuffer sBuffer = new StringBuffer();
            for (int i = 0; i < bByte.length; i++) {
                sBuffer.append(byteToArrayString(bByte[i]));
            }
            return sBuffer.toString();
        }
    
        public static String GetMD5Code(String strObj) {
            String resultString = null;
            try {
                resultString = new String(strObj);
                MessageDigest md = MessageDigest.getInstance("MD5");
                // md.digest() 该函数返回�?�为存放哈希值结果的byte数组
                resultString = byteToString(md.digest(strObj.getBytes()));
            } catch (NoSuchAlgorithmException ex) {
                ex.printStackTrace();
            }
            return resultString;
        }
    
        public static void main(String[] args) {
            MD5 getMD5 = new MD5();
            System.out.println(getMD5.GetMD5Code("000000"));
        }
    }
    1. l  WebRoot下主要是是页面的实现,将自己的页面和资源分好类,放在不同的文件夹下,来方便代码的实现和管理。一般主要的界面(默认的界面)放在index下,其他由主界面衍生下来的界面放在每个主界面对应的界面文件下
    2. l  将有关项目的例如数据库和一些文档、ReadMe放在项目下,以便对项目的管理和修改。
    3. l  如果项目有几个人完成,最好用Githup来管理项目以及进行小组成员内的分工。
  • 相关阅读:
    Tomcat 性能监控与调优
    04 使用 BTrace 进行拦截调试
    03 JVisualVM(本地和远程可视化监控)
    02 jmap+MAT(内存溢出)、jstack(线程、死循环、死锁)
    01 JVM的参数类型、jinfo & jps(参数和进程查看)、jstat(类加载、垃圾收集、JIT 编译)
    69_缓存预热解决方案:基于storm实时热点统计的分布式并行缓存预热
    66_讲给Java工程师的史上最通俗易懂Storm教程:纯手工集群部署
    57_分布式缓存重建并发冲突问题以及zookeeper分布式锁解决方案
    54_基于nginx+lua+java完成多级缓存架构的核心业务逻辑
    53_部署分发层nginx以及基于lua完成基于商品id的定向流量分发策略
  • 原文地址:https://www.cnblogs.com/superjn/p/6133891.html
Copyright © 2020-2023  润新知