zoukankan      html  css  js  c++  java
  • 【Jfinal__初步】

    1、web.xml

        <filter>
            <filter-name>jfinal</filter-name>
            <filter-class>com.jfinal.core.JFinalFilter</filter-class>
            <init-param>
                <param-name>configClass</param-name>
                <param-value>k.common.MyConfig</param-value>
            </init-param>
        </filter>
    
        <filter-mapping>
            <filter-name>jfinal</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    

    2、pom.xml

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <scope>test</scope>
            </dependency>
    
            <!-- jfinal -->
            <dependency>
                <groupId>com.jfinal</groupId>
                <artifactId>jfinal</artifactId>
                <version>4.9.01</version>
            </dependency>
    
            <!-- jfinal-undertow 开发、部署一体化 web 服务器 -->
            <dependency>
                <groupId>com.jfinal</groupId>
                <artifactId>jfinal-undertow</artifactId>
                <version>2.1</version>
            </dependency>
    
            <!-- 避免控制台输出如下提示信息:
                 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
                 项目中实际上用不到这个 jar 包,本 jfinal demo 用不上这个依赖,在此仅为大家
                 在未来基于 jfinal demo 为模板做开发时做准备工作
                 注意:eclipse 下可以将 scope 设置为 provided
            -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-nop</artifactId>
                <version>1.7.29</version>
                <!-- 打包前改成 provided,此处使用 compile 仅为支持 IDEA -->
                <scope>compile</scope>
            </dependency>
    
            <!-- log4j 日志 -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
    
            <!-- mysql 驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.44</version>
            </dependency>
    
            <!-- druid 数据源连接池 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.29</version>
            </dependency>
    
            <!-- cos 文件上传 -->
            <dependency>
                <groupId>com.jfinal</groupId>
                <artifactId>cos</artifactId>
                <version>2020.4</version>
            </dependency>
    

    3、demo-config-dev.properties

    # config
    jdbcUrl = jdbc:mysql://localhost/jfinal_demo?characterEncoding=utf8&useSSL=false&zeroDateTimeBehavior=convertToNull
    user = root
    password =123456
    devMode = true
    

    4、MyConfig

    import com.jfinal.config.*;
    import com.jfinal.ext.handler.ContextPathHandler;
    import com.jfinal.kit.Prop;
    import com.jfinal.kit.PropKit;
    import com.jfinal.plugin.druid.DruidPlugin;
    import com.jfinal.template.Engine;
    import k.controller.*;
    
    public class MyConfig extends JFinalConfig {
        public static void main(String[] args) {
            // UndertowServer.start(MyConfig.class, 80, true);
        }
    
        static Prop p;
    
        /**
         * PropKit.useFirstFound(...) 使用参数中从左到右最先被找到的配置文件
         * 从左到右依次去找配置,找到则立即加载并立即返回,后续配置将被忽略
         */
        static void loadConfig() {
            if (p == null) {
                p = PropKit.useFirstFound("demo-config-pro.txt", "demo-config-dev.properties");
            }
        }
    
        @Override
        public void configConstant(Constants constants) {
            loadConfig();
            constants.setDevMode(p.getBoolean("devMode", false));
            constants.setBaseUploadPath("/");
        }
    
        @Override
        public void configRoute(Routes routes) {
            routes.add("/hello", HelloController.class);
            routes.add("/", IndexController.class);
    
        }
    
        @Override
        public void configEngine(Engine engine) {
            engine.addSharedFunction();
        }
    
        @Override
        public void configPlugin(Plugins plugins) {
            // 配置 druid 数据库连接池插件
            DruidPlugin druidPlugin = new DruidPlugin(p.get("jdbcUrl"), p.get("user"), p.get("password"));
            plugins.add(druidPlugin);
        }
    
        @Override
        public void configInterceptor(Interceptors interceptors) {
    
        }
        @Override
        public void configHandler(Handlers handlers) {
    
            handlers.add(new ContextPathHandler("ctx"));
        }
    }
    

    5、IndexController

    public class IndexController extends Controller {
        public void index() {
            render("index.jsp");
        }
    }
    

    6、HelloController

    public class HelloController extends Controller {
        public void index() {
            renderText("昨夜西风凋碧树。独上高楼,望尽天涯路。
    " +
                    "衣带渐宽终不悔,为伊消得人憔悴。
    ");
        }
    }
    
  • 相关阅读:
    Java中Filter、Servlet、Listener的学习 (转)
    Servlet 获取商品信息作业
    Servlet 注册与提交作业
    jsp servlet的区别和联系(转)
    用户注册验证留言程序
    作业1
    简单新闻发布系统
    webform 增速删改查 方法
    存取数据库图片
    打印 保存
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/13549838.html
Copyright © 2011-2022 走看看