jfinal搭建(一)

简介: 本文为eclipse开发    1、创建Dynamic Web Project 2、填入项目基本信息 注意上图中:Target runtime 一定要选择 3、修改Default Output Folder,推荐输入WebRoot\WEB-INF\classes 特别注意:此处的 Default out folder必须要与 WebRoot\WEB-INF\classes 目录完全一致才可以使用 JFinal 集成的 Jetty 来启动项目。

本文为eclipse开发

  

1、创建Dynamic Web Project

1.png

2、填入项目基本信息

2.png

注意上图中:Target runtime 一定要选择<None>

3、修改Default Output Folder,推荐输入WebRoot\WEB-INF\classes

3.png

特别注意:此处的 Default out folder必须要与 WebRoot\WEB-INF\classes 目录完全一致才可以使用 JFinal 集成的 Jetty 来启动项目。

4、修改Content directory,推荐输入WebRoot

4.png

注意上图:此处也可以使用默认值WebContent, 但上一步中的WebRoot\WEB-INF\classes则需要改成WebContent\WEB-INF\classes才能对应上。

5、放入JFinal库文件

    将 jfinal-xxx.jar与jetty-server-8.1.8.jar拷贝至项目WEB-INF\lib下即可。注意:jetty-server-8.1.8.jar是开发时使用的运行环境,生产环境不需要此文件。

   所需要的 jar 包可以在 jfinal.com 首页下载 jfinal-version-all.zip 文件,该文件中包含了所需的常用 jar 包,以及 jar 包使用说明。

6、修改web.xml

    将如下内容添加至web.xml

<filter>
    <filter-name>jfinal</filter-name>//应该就是添加过滤器都经过demo.DemoConfig,然后根据地址映射找到对应的controller执行
    <filter-class>com.jfinal.core.JFinalFilter</filter-class>
    <init-param>
       <param-name>configClass</param-name>
       <param-value>demo.DemoConfig</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>jfinal</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

7、添加java文件

    在项目src目录下创建demo包,并在demo包下创建DemoConfig文件, 内容如下:

package demo;

import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.template.Engine;

public class DemoConfig extends JFinalConfig{
    @Override
    public void configConstant(Constants me) {
        // TODO Auto-generated method stub
        me.setDevMode(true);
    }
    @Override
    public void configEngine(Engine me) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void configHandler(Handlers me) {
        // TODO Auto-generated method stub
        
    }
    @Override
    public void configInterceptor(Interceptors me) {
        // TODO Auto-generated method stub
        
    }
    @Override
    public void configPlugin(Plugins me) {
        // TODO Auto-generated method stub
        
    }
    @Override
    public void configRoute(Routes me) {
        // TODO Auto-generated method stub
        me.add("/hello", HelloController.class);//这里应该就是地址的映射
        me.add("/hello2", HelloController2.class);
    }
}

 注意:DemoConfig.java文件所在的包以及自身文件名必须与web.xml中的param-value标签内的配置相一致(在本例中该配置为demo.DemoConfig)。

 在demo包下创建HelloController HelloController2类文件, 内容如下:

 1 package demo;
 2 
 3 import com.jfinal.core.Controller;
 4 
 5 public class HelloController extends Controller{
 6     public void index(){
 7         renderText("hahhahahhahahh");
 8     }
 9 }
10 
11 
12 
13 package demo;
14 
15 import com.jfinal.core.Controller;
16 
17 public class HelloController2 extends Controller{
18     public void index(){
19         renderText("hahhahahhahahh22222");
20     }
21 }

8、启动项目

  使用一个任意的main方法代替。在任意一个类文件中添加一个main启动集成的jetty如下图所示:

1 package demo;
2 
3 import com.jfinal.core.JFinal;
4 
5 public class DemoStart {
6     public static void main(String[] args) {
7         JFinal.start("WebRoot", 80, "/", 5);
8     }
9 }    

 上面代码中的四个参数与前面介绍中的一样,注意根据自己的项目结构进行更改。上面的第一个参数”src/main/webapp” 适用于标准的maven项目,如果是非maven的老式java web 项目,第一个参数通常是”WebRoot”或”WebContent”。

 

注意:因为在创建web项目的时候可能用自动加上tomcat的jar包,但是这种启动方法会报错,解决办法就是去掉。

右键 remove

 

第二种启动:jfinal是属于普通的web项目的,所以原有的项目启动和部署知识全部有效。但是需要去掉对jetty-server-8.1.8.jar 的依赖。

9、开启浏览器看效果

    打开浏览器在地址栏中输入: http://localhost/hellohttp://localhost/hello2,输出内容 证明项目框架搭建

欢迎大家一起说出自己的想法。
目录
相关文章
App性能测试揭秘(Android篇)
性能测试在移动测试领域一直是一个大难题,它最直观的表现是用户在前台使用 App 时的主观体验,然而决定体验优劣的背后,涉及到了许许多多的技术变迁。阅读此文,带你揭秘App性能测试。
5279 0
App性能测试揭秘(Android篇)
使用Binlog日志恢复误删的MySQL数据
今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复,读完本文,你能够了解到: MySQL的binlog日志是什么?通常是用来干什么的? 模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据。
1764 1
HashMap什么时候扩容,如何扩容?怎么轻松化解?
一位2年工作经验的小伙伴面试时被问到,说,HashMap什么时候扩容,为什么要扩容?这个问题本身不是很难,但是这位小伙伴对底层实现原理没有太多关注,所以,被这个问题难住了。 下面我给大家分析一下这个问题的底层逻辑。
276 2
阿里云DTS踩坑经验分享系列|SLS同步至ClickHouse集群
作为强大的日志服务引擎,SLS 积累了用户海量的数据。为了实现数据的自由流通,DTS 开发了以 SLS 为源的数据同步插件。目前,该插件已经支持将数据从 SLS 同步到 ClickHouse。通过这条高效的同步链路,客户不仅能够利用 SLS 卓越的数据采集和处理能力,还能够充分发挥 ClickHouse 在数据分析和查询性能方面的优势,帮助企业显著提高数据查询速度,同时有效降低存储成本,从而在数据驱动决策和资源优化配置上取得更大成效。
286 9
常见抓包工具配置抓取HTTPS
常见抓包工具配置抓取HTTPS
|
11月前
|
掌握SpringBoot单点登录精髓,单点登录是一种身份认证机制
【8月更文挑战第31天】单点登录(Single Sign-On,简称SSO)是一种身份认证机制,它允许用户只需在多个相互信任的应用系统中登录一次,即可访问所有系统,而无需重复输入用户名和密码。在微服务架构日益盛行的今天,SSO成为提升用户体验和系统安全性的重要手段。本文将详细介绍如何在SpringBoot中实现SSO,并附上示例代码。
218 0
量子计算的潜力与挑战:开启计算新时代
这篇文章探讨了量子计算的基本原理、潜在应用及其面临的主要挑战。通过对量子比特(qubit)的介绍和量子叠加、纠缠现象的解释,揭示了量子计算在处理复杂问题上的革命性优势。同时,文章也指出了目前量子计算技术发展中所遇到的障碍,如量子退相干和纠错问题,并展望了未来的发展方向。
小程序(三十四)微信小程序开启订阅消息推送
我这里记录一下我在配置订阅消息推送的时候发生的一些小问题吧,算是经验,给没有做过的同学避个坑。 官方文档地址:小程序订阅消息 | 微信开放文档 (qq.com)
435 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等