非maven方式jetty-server下的JFinal开发

2024-04-16 05:58

本文主要是介绍非maven方式jetty-server下的JFinal开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

非maven方式jetty-server下的JFinal开发

1.创建Dynamic Web Project

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

2.修改Default Output Folder,

推荐:输入WebRoot\WEB-INF\classes

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

3.修改Content directory,推荐输入WebRoot(与上一步对应)

勾选Generate web.xml deployment descriptor

4.放入JFinal库文件

将 jfinal-4.3.jar 与 jetty-server-2019.3.jar 拷贝至项目WEB-INF\lib下即可。

注意:jetty-server-2019.3.jar是开发时使用的运行环境,生产环境不需要此文件。

5.修改web.xml

将如下内容添加至web.xml

<web-app>

<filter>

<filter-name>jfinal</filter-name>

<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>

</web-app>

6.添加java文件

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

package demo;

import com.jfinal.config.*;

public class DemoConfig extends JFinalConfig {

public void configConstant(Constants me) {

me.setDevMode(true);

}

public void configRoute(Routes me) {

me.add("/hello", HelloController.class);

}

public void configEngine(Engine me) {}

public void configPlugin(Plugins me) {}

public void configInterceptor(Interceptors me) {}

public void configHandler(Handlers me) {}

}

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

(在本例中该配置为demo.DemoConfig)。

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

package demo;

import com.jfinal.core.Controller;

public class HelloController extends Controller {

public void index() {

renderText("Hello JFinal World.");

}

}

7.启动项目

(1)Debug As启动

右键点击Java Application并选择New菜单项,新建Java Application启动项;

在右侧窗口中的Main class输入框中填入: com.jfinal.core.JFinal并点击Debug按钮启动项目;

(2)main方法启动集成的jetty

在任意一个类文件中添加一个main方法

import com.jfinal.core.JFinal;

public static void main(String[] args) {

JFinal.start("WebRoot", 8000, "/", 5);

}

比如:在DemoConfig文件中添加

上面代码的第一个参数 DemoConfig 是继承自 JFinalConfig 的配置入口类,第二个参数是端口号,第三个参数是 devMode。

8.开启浏览器看效果

打开浏览器在地址栏中输入: http://localhost:8000/hello,输出内容为Hello JFinal World证明项目框架搭建完成。

注意:在tomcat下开发或运行项目时,需要先删除 jetty-server-xxx.jar这个包,否则会引起冲突。Tomcat启动项目不能使用上面介绍的启动方式,因为上面的启动方式需要用到 jetty-server-xxx.jar。

这篇关于非maven方式jetty-server下的JFinal开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/907953

相关文章

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte