JAVA WEB入门之一:搭建JFINAL框架
- 格式:pdf
- 大小:845.39 KB
- 文档页数:12
jfinal原理JFinal是一款基于Java语言的轻量级开发框架,它具有简单易用、高效稳定的特点。
本文将从JFinal的原理角度进行分析,介绍JFinal框架的内部机制和工作原理。
一、JFinal的基本架构JFinal采用了MVC(Model-View-Controller)的设计模式,将应用程序分为模型、视图和控制器三个部分。
其中,模型负责数据的存储和处理,视图负责数据的展示,控制器负责处理用户请求并调用相应的模型和视图。
二、JFinal的核心组件1. JFinalConfig:JFinal框架的配置类,负责配置应用程序的路由、插件、模板引擎等信息。
2. Routes:JFinal框架的路由器,负责根据用户请求的URL匹配相应的控制器和方法。
3. Controller:JFinal框架的控制器,负责处理用户请求,并调用相应的模型和视图进行处理。
4. Model:JFinal框架的模型,负责数据的存储和处理。
5. View:JFinal框架的视图,负责数据的展示。
三、JFinal的工作流程1. 配置阶段:在JFinalConfig类中进行应用程序的配置,包括路由配置、插件配置、模板引擎配置等。
2. 启动阶段:通过JFinal的启动类JFinal.start()方法启动应用程序,初始化相关组件,如数据库连接、插件等。
3. 请求处理阶段:当用户发起请求时,JFinal框架首先通过Routes 类将请求URL与相应的控制器和方法进行匹配,然后调用该方法进行处理。
4. 控制器处理阶段:控制器接收到请求后,根据业务逻辑调用相应的模型和视图进行处理,并返回处理结果。
5. 视图渲染阶段:视图负责将处理结果生成相应的HTML页面,并返回给用户。
6. 响应发送阶段:JFinal框架将HTML页面封装成HTTP响应,发送给浏览器进行展示。
四、JFinal的特点1. 简单易用:JFinal提供了简洁明了的API,开发人员可以快速上手,提高开发效率。
jfinal 传数组当参数(原创版)目录1.JFinal 简介2.传数组参数的背景和需求3.传数组参数的方法和示例4.注意事项和建议正文【1.JFinal 简介】JFinal 是一款基于 Java 语言的 Web 开发框架,以其简洁、快速、安全的特点受到了广大开发者的喜爱。
在 JFinal 中,我们可以通过控制器(Controller)来处理用户的请求,并返回相应的响应。
【2.传数组参数的背景和需求】在实际开发过程中,我们可能需要将数组作为参数传递给控制器方法。
例如,某个网页表单提交后,需要将表单中的数据(可能包含多个值)以数组形式传递给后端处理。
为了满足这一需求,JFinal 提供了相应的实现方法。
【3.传数组参数的方法和示例】在 JFinal 中,我们可以通过以下方式将数组作为参数传递给控制器方法:1.在 URL 中直接传递数组参数。
例如,访问`/user/save?arr=1&arr=2&arr=3`,其中`arr`参数包含了一个包含三个整数值的数组。
2.在请求头(Request Header)中传递数组参数。
例如,访问`/user/save`,并在请求头中设置`arr=1&arr=2&arr=3`。
3.在请求体(Request Body)中传递数组参数。
例如,使用 Ajax 请求访问`/user/save`,并在请求体中包含`arr[]=1&arr[]=2&arr[]=3`。
需要注意的是,在使用数组参数时,JFinal 会自动对数组进行解析,并根据数组的实际类型(例如,整型、字符串型等)进行相应的处理。
此外,在传递数组参数时,建议使用`&`代替`&&`进行连接,以避免潜在的编码问题。
【4.注意事项和建议】在实际开发过程中,为了保证程序的健壮性和易读性,建议注意以下几点:1.尽量使用 URL 传递数组参数,以便于调试和分析。
jfinal框架的使用JFinal框架是一款基于Java语言开发的轻量级Web框架,它的设计理念是简单、灵活和高效。
它采用了MVC(Model-View-Controller)架构模式,能够快速开发出高性能、易维护的Web应用程序。
在JFinal框架中,Controller是核心控制器,负责接收用户请求并调用相应的业务逻辑处理。
它通过路由机制将不同的URL映射到不同的Controller方法上,实现了请求的分发。
同时,JFinal还提供了强大的路由配置功能,可以通过注解或配置文件来实现路由的灵活配置,使得路由规则更加清晰明了。
在Controller中,我们可以通过渲染引擎来渲染视图,JFinal默认使用JFinal Template Engine作为渲染引擎,它具有简洁、高效的特点。
通过在Controller中调用render方法,我们可以将数据传递给视图,然后在视图中进行渲染,最终将结果返回给用户。
同时,JFinal还支持其他常用的渲染引擎,如Freemarker、Velocity等,开发者可以根据自己的需求选择使用。
在JFinal框架中,Model负责与数据库进行交互,它通过ORM (Object-Relational Mapping)技术将Java对象映射到数据库表中。
JFinal内置了ActiveRecord模式,简化了数据库操作,开发者只需定义好Model类,即可通过简单的API进行CRUD操作。
同时,JFinal还支持事务管理,保证了数据的一致性和完整性。
除了Controller和Model,JFinal框架还提供了丰富的插件机制,开发者可以通过插件扩展框架的功能。
例如,JFinal提供了JFinal-undertow插件,可以替代默认的Servlet容器,提升系统的性能和稳定性。
此外,JFinal还支持热加载,开发者在修改代码后无需重启应用,即可生效,极大地提高了开发效率。
在JFinal框架中,开发者可以轻松实现RESTful风格的接口,通过注解来定义不同的HTTP请求方式,并通过参数绑定来获取请求参数。
java项目框架搭建流程作为现代网站或应用程序的基础,Java项目框架的搭建必须依据良好的规范和流程进行。
本文将向大家介绍Java项目框架的搭建流程和注意事项。
1.选定开发工具Java开发工具常用的有Eclipse、NetBeans、IntelliJ IDEA等,选择一个熟悉的开发工具,对日后的开发有很大的作用。
2.创建Java项目通过开发工具创建一个新的Java项目,配置项目名称、路径、源代码路径等基本信息。
3.选定框架技术根据项目需求,选择合适的框架技术,如SSH、SSM、Spring Boot等,也可以根据实际需求自主搭建框架。
4.环境配置根据框架技术的要求,配置好开发环境,如安装JDK、配置Tomcat、MySQL等,使其与框架技术相匹配。
5.建立包结构根据框架技术要求,建立项目包结构。
常用的有src、com、test等。
其中src目录存放源代码,com目录是主包结构,test目录用于存放测试代码。
6.导入Jar包为实现项目的具体需求,需要导入相关的Jar包,如Hibernate、Spring等,将其放入项目的lib目录下,并在开发工具中添加项目的引用。
7.编写代码根据类结构,按照包结构开始编写代码。
在编写代码时,需要注重代码风格,代码的可维护性及可读性等。
8.程序测试编写测试用例,用Junit等测试工具进行程序测试,确保代码的正确性及稳定性。
9.代码审查将程序交由其他开发人员进行代码审查,确保程序的正确性及可扩展性。
10.文档编写在实施过程中需要根据具体情况编写开发文档、管理文档等,为项目后期运行和维护提供可靠的基础。
总结:框架搭建的流程不仅仅是以上的过程,还要具体视项目不同而定,但需要注意的是良好的规范和流程对项目可靠运行及维护极为重要,同时,不断优化框架,使之符合实际项目的要求也是框架搭建的一个重要环节。
jfinal count使用摘要:1.JFinal 简介2.JFinal 中的Count 使用方法3.JFinal Count 的实际应用示例正文:【1.JFinal 简介】JFinal 是一款基于Java 语言的Web 开发框架,其设计目标是简化Java Web 应用的开发过程,提高开发效率。
JFinal 具有易学易用、快速开发、高性能、可扩展性强等特点,因此在我国Web 开发领域有着广泛的应用。
【2.JFinal 中的Count 使用方法】在JFinal 中,Count 是一种十分常用的查询方法,用于统计数据库中符合条件的记录数量。
使用Count 方法,可以让我们在进行数据查询时,更加方便地了解数据的大致规模,从而优化我们的查询策略。
Count 方法的使用方法如下:```java// 导入JFinal 的Count 类import com.jfinal.sql.Count;// 创建一个Count 对象,并设置查询条件Count count = new Count();count.eq("条件1", "值1");count.eq("条件2", "值2");// 执行Count 查询int result = count.find();```在上述代码中,我们首先导入了JFinal 的Count 类,然后创建了一个Count 对象,并通过调用eq 方法设置了查询条件。
最后,我们通过调用find 方法执行Count 查询,并将查询结果赋值给result 变量。
【3.JFinal Count 的实际应用示例】假设我们有一个用户表(user),包含以下字段:id(主键)、name(姓名)、age(年龄)。
现在,我们想要统计年龄大于等于18 岁的用户数量。
可以使用JFinal 的Count 方法进行操作。
```java// 导入JFinal 的Count 类import com.jfinal.sql.Count;// 创建一个Count 对象,并设置查询条件Count count = new Count();count.eq("age", ">=18");// 执行Count 查询int result = count.find();// 输出查询结果System.out.println("年龄大于等于18 岁的用户数量:" + result);```在上述代码中,我们首先导入了JFinal 的Count 类,然后创建了一个Count 对象,并通过调用eq 方法设置了查询条件。
jfinal 框架执行流程JFinal is a popular Java web framework that is known for its simplicity and ease of use. It follows the Model-View-Controller (MVC) design pattern, which helps in structuring web applications in a clear and organized manner. JFinal framework is widely used by developers for building web applications, APIs, and various other projects.JFinal框架是一个流行的Java web框架,以其简单性和易用性而闻名。
它遵循模型-视图-控制器(MVC)设计模式,有助于以清晰和有组织的方式构建Web应用程序。
JFinal框架被开发人员广泛应用于构建Web应用程序、API和各种其他项目。
The execution flow of JFinal framework involves several key components such as controllers, interceptors, and renderers. Controllers are responsible for handling incoming requests, processing data, and returning responses to the client. Interceptors are used to intercept and process requests before they reach the controller, allowing developers to add custom logic or perform validations. Renderers are used to render the final output of a request into HTML, JSON, or other formats.JFinal框架的执行流程涉及几个关键组件,如控制器、拦截器和渲染器。
一、JFinal 简介JFinal 是基于Java 语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。
在拥有Java 语言所有优势的同时再拥有ruby、python、php 等动态语言的开发效率!注:ORM:对象关系映射。
二、JFinal 有如下主要特点(1)MVC架构,设计精巧,使用简单。
(2)遵循COC原则,零配置,无xml。
COC原则:Convention over Configuration(CoC)–惯例优于配置原则简单点说,就是将一些公认的配置方式和信息作为内部缺省的规则来使用。
例如,Hibernate的映射文件,如果约定字段名和类属性一致的话,基本上就可以不要这个配置文件了。
你的应用只需要指定不convention的信息即可,从而减少了大量convention而又不得不花时间和精力啰里啰嗦的东东。
配置文件很多时候相当的影响开发效率。
(3)独创Db + Record模式,灵活便利。
(4)ActiveRecord支持,使数据库开发极致快速。
(5)自动加载修改后的java文件,开发过程中无需重启web server。
(6)AOP 支持,拦截器配置灵活,功能强大。
注:AOP :面向切面编程。
(7)Plugin 体系结构,扩展性强。
(8)多视图支持,支持FreeMarker、JSP、Velocity。
(9)强大的Validator后端校验功能。
(10)功能齐全,拥有struts2绝大部分核心功能。
(11)体积小,且无第三方依赖。
三、SSI与JFinal如何取舍不可否认,SSI与JFinal都是非常优秀的架构,两者都有各自的优点,如何进行取舍取决于项目与项目组成员的实际情况!SSI和JFinal的比较注:*表示所在项具有相对优势四、Model与Bean合体(1)极速体验GeneratorJFinal 2.1新增了Generator用来极速生成Model、BaseModel、MappingKit、DataDictionary 文件。
jfinal课程设计一、课程目标知识与理解目标:学生将通过本章节jfinal课程的学习,掌握JFinal框架的基本原理和使用方法,理解MVC设计模式在Web开发中的应用,学会构建数据库连接及常用的数据库操作。
具体包括:1)了解JFinal框架的特点和优势;2)掌握JFinal框架的基本配置和常用API;3)理解并运用MVC设计模式进行Web开发;4)掌握JFinal框架下的数据库操作方法。
技能目标:通过项目实战,培养学生运用JFinal框架进行Web开发的能力,提高解决实际问题的技能。
具体包括:1)能独立完成JFinal框架的搭建和配置;2)能运用JFinal框架进行数据库设计和操作;3)能结合前端技术,完成一个完整的Web项目开发。
情感态度价值观目标:激发学生对Web开发的兴趣,培养学生良好的编程习惯和团队合作精神。
具体包括:1)培养学生对Web开发的热情,提高学习积极性;2)培养学生严谨、细致的编程态度;3)通过小组合作,培养学生的团队协作能力和沟通能力。
课程性质:本课程为实用型课程,旨在帮助学生掌握JFinal框架的实际应用,提高Web开发技能。
学生特点:学生已具备一定的Java基础和Web开发知识,对JFinal框架有一定了解,但实践经验不足。
教学要求:结合学生特点和课程性质,采用项目驱动教学法,注重实践操作,使学生能够将所学知识应用于实际项目中。
同时,关注学生的学习过程和方法,培养其自主学习、合作学习和解决问题的能力。
通过课程目标的具体分解,为教学设计和评估提供明确依据。
二、教学内容本章节教学内容紧密围绕课程目标,结合教材,科学系统地组织以下内容:1. JFinal框架概述:介绍JFinal框架的特点、优势及应用场景,对比其他Web 框架,让学生了解JFinal的竞争力。
2. JFinal环境搭建:讲解JFinal框架的下载、安装和配置,引导学生独立完成框架搭建。
3. MVC设计模式:分析MVC设计模式的概念及其在JFinal框架中的应用,结合实例讲解。
jfinal手册本文档是 jfinal 手册,主要介绍 jfinal 的各种用法。
该手册包含以下内容:一、jfinal简介二、安装jfinal三、jfinal的配置四、jfinal的常用API五、使用jfinal进行Web应用开发六、总结一、jfinal简介JFinal 是一个基于 Java 的 Web 开发框架,提供了一整套的开发工具,可以帮助开发者更快捷、高效的开发出企业级的 Web 应用。
它提供了一套简单而强大的 MVC 模型,允许开发者将业务逻辑与展示层分离,提高了代码的可读性。
JFinal 是一个轻量级的框架,它只有几十兆的 jar 包,其安装与配置非常容易,而且框架内部提供了大量的 API,可以满足企业级应用开发的需求。
二、安装 jfinal要使用 jfinal,首先需要安装它,安装 jfinal 的方法非常简单,只需要下载 jfinal 的 jar 包,然后把它添加到项目的 build path 中就可以了。
三、jfinal的配置配置 jfinal 是一个很重要的环节,因为它决定了 jfinal 的正常运行。
要配置 jfinal,需要在 web.xml 中添加 jfinal 的相关配置,如下所示:<servlet><servlet-name>jfinal</servlet-name><servlet-class>com.jfinal.core.JFinal</servlet-class> <init-param><param-name>configClass</param-name><param-value>com.xxx.xxx.xxx.xxx.JFinalConfig</param-value> </init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>jfinal</servlet-name><url-pattern>/</url-pattern></servlet-mapping>四、jfinal的常用APIJFinal 框架提供了一系列的 API,可以用来满足企业级应用开发的需求,下面列举出几个常用的 API:1. JFinalConfig:用于配置 jfinal 的配置类,用于定义jfinal 的基本配置。
jfinal框架功能进行总结介绍JFinal是基于Java语言的极速web开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展以及Restful。
以下是JFinal框架的主要功能特性:1. MVC架构:JFinal框架采用了MVC(Model-View-Controller)架构,这种架构将业务逻辑、数据和界面分离,提高了代码的可读性和维护性。
开发者可以专注于业务逻辑的开发,从而简化了开发过程。
2. ORM支持:JFinal框架内置了ActiveRecord模式,这使得数据库操作变得非常简单。
开发者无需编写繁琐的SQL语句,只需通过简单的API调用,即可完成数据库的增删改查操作。
3. 自动加载:JFinal框架提供了自动加载功能,可以自动扫描和加载项目中的Controller、Model、Plugin等类,无需手动配置。
4. 路由支持:JFinal框架提供了强大的路由功能,支持自定义URL路由规则,可以轻松地实现URL的美化和优化。
5. 拦截器:JFinal框架支持拦截器功能,可以在请求处理之前或之后执行特定的逻辑,如权限验证、日志记录等。
6. 视图技术:JFinal框架支持多种视图技术,如JSP、FreeMarker和Velocity等,开发者可以根据需求选择合适的视图技术来展示页面和与用户交互。
7. 插件机制:JFinal框架提供了插件机制,允许开发者通过编写插件来扩展框架的功能,以满足特定的业务需求。
8. 异常处理:JFinal框架提供了统一的异常处理机制,可以捕获和处理项目中的异常,保证程序的稳定性和可靠性。
9. 国际化支持:JFinal框架支持国际化功能,可以轻松地实现多语言支持,满足不同国家和地区用户的需求。
10. 日志记录:JFinal框架内置了日志记录功能,可以记录项目的运行日志和操作日志,方便开发者和运维人员进行故障排查和性能分析。
总之,JFinal框架是一个功能强大且易于使用的Java Web开发框架,它提供了丰富的功能和特性,可以帮助开发者快速构建高质量的Web应用程序。
final教程《Final教程》是一个针对初学者而设计的教程。
它旨在介绍和解释Final的基本概念和功能,帮助读者快速入门并进行Final开发。
第一部分:Final简介(200字)Final是一个基于Python语言开发的Web框架。
它的设计灵感来源于Django和Flask,并结合了它们的优点。
Final具有简单易用、灵活高效的特点,适用于各种规模的项目。
第二部分:安装与配置(200字)在本节中,我们将介绍如何安装Final以及配置开发环境。
我们将提供详细的步骤和说明,帮助读者顺利完成安装和配置过程。
第三部分:基本概念(200字)在这一部分中,我们将介绍Final的基本概念和术语,包括路由、视图函数、模板等。
通过这些概念的解释,读者将了解Final框架的工作原理和基本用法。
第四部分:开发一个简单的Final应用(200字)在本节中,我们将通过一个简单的示例演示如何使用Final开发一个Web应用。
我们将介绍如何定义路由、编写视图函数、使用模板等。
通过这个示例,读者将更好地掌握Final的开发流程和技巧。
第五部分:进阶技巧(200字)在这一部分中,我们将介绍一些Final的进阶技巧和特性。
这些技巧包括数据库操作、表单处理、中间件使用等。
通过学习这些技巧,读者将能够更加灵活地应用Final框架,提高开发效率。
结语(100字)通过本教程,读者将获得使用Final开发Web应用的基本知识和技能。
无论是初学者还是有一定经验的开发人员,都能从本教程中受益。
希望本教程能够为读者提供帮助,并为Final框架的学习和应用打下坚实的基础。
jfinal课程设计一、教学目标本课程的教学目标是使学生掌握JFinal框架的核心概念和基本使用方法,能够独立搭建简单的Web应用程序。
具体分为以下三个部分:1.知识目标:学生需要了解JFinal框架的历史、特点和优势,掌握其核心组件如Controller、Model、View以及Dispatcher的工作原理和用法。
2.技能目标:学生能够熟练使用JFinal框架进行Web应用程序的开发,包括配置文件编写、数据库操作、前端页面设计等。
3.情感态度价值观目标:培养学生对Java编程语言和Web开发的兴趣,增强其自主学习和解决问题的能力。
二、教学内容本课程的教学内容分为八个章节,具体如下:1.第一章:JFinal框架介绍,包括历史、特点和优势。
2.第二章:Java编程基础,复习Java的基本语法和面向对象编程思想。
3.第三章:JFinal框架核心组件,介绍Controller、Model、View以及Dispatcher的用法。
4.第四章:JFinal框架配置,讲解配置文件的编写和修改。
5.第五章:数据库操作,介绍JFinal框架下的数据库连接和SQL语句编写。
6.第六章:前端页面设计,讲解HTML、CSS和JavaScript的基本用法。
7.第七章:实战项目演练,带领学生一起完成一个简单的Web应用程序。
8.第八章:常见问题解答和拓展学习,针对学生在学习过程中遇到的问题进行解答,并提供进一步学习的建议。
三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性:1.讲授法:教师讲解JFinal框架的核心概念和基本用法,引导学生掌握关键知识点。
2.讨论法:学生分组讨论实际项目中遇到的问题,培养学生的团队协作和解决问题的能力。
3.案例分析法:分析实际项目案例,让学生了解JFinal框架在实际开发中的应用。
4.实验法:学生动手实践,完成实战项目,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将提供以下教学资源:1.教材:选用权威、实用的JFinal框架教程作为主要教材。
jfinal连接oracle详解JFinal是一款基于Java语言的轻量级Java Web开发框架,它简化了开发过程并提供了丰富的功能和插件。
在JFinal中连接Oracle 数据库是一项常见的任务,本文将详细介绍如何使用JFinal连接Oracle数据库。
在开始之前,我们需要确保已经安装了Java JDK和Oracle数据库,并配置好相应的环境变量。
接下来,我们将按照以下步骤进行操作:第一步,导入JFinal和Oracle数据库的依赖包。
在项目的pom.xml文件中添加以下依赖:```xml<dependency><groupId>com.jfinal</groupId><artifactId>jfinal</artifactId><version>3.8</version></dependency><dependency><groupId>com.oracle.database.jdbc</groupId><artifactId>ojdbc8</artifactId><version>19.3.0.0</version></dependency>```第二步,配置数据库连接信息。
在项目的配置文件中,一般是在`src/main/resources`目录下的`config.properties`文件中,添加以下配置信息:```properties# 数据库连接信息db.url=jdbc:oracle:thin:@localhost:1521:ORCLername=your_usernamedb.password=your_passworddb.driverClass=oracle.jdbc.driver.OracleDriverdb.maxActive=100db.initialSize=10db.minIdle=10db.maxIdle=100```请将`your_username`和`your_password`替换为你自己的Oracle 数据库的用户名和密码。
JFinal框架源码分析(⼀)——JFinal项⽬的启动疑问:1、如何开启⼀个框架的源码分析?2、如何实现⽀持 web 项⽬⽆需 web.xml 配置⽂件,便于嵌⼊式整合 jetty、undertow3、责任链模式? Handle的初始化过程?4、Route是如何被加载的?项⽬⼊⼝public static void main(String[] args) {JFinal.start("WebRoot",8787,"/");}启动过程:WebRoot-->Web-INF-->web.xmlJfinal初始化定位到web.xml中的JFinalFilter,在JFinalFilter⾥⾯的init()初始化以下参数:initActionMapping();initHandler();initRender();initOreillyCos();initTokenManager();在web.xml得到具体的配置⽂件temp = Class.forName(configClass).newInstance();jfinalConfig = (JFinalConfig)temp;真正的初始化过程jfinal.init(jfinalConfig, filterConfig.getServletContext())然后再去看看jfinal.init()boolean init(JFinalConfig jfinalConfig, ServletContext servletContext) {this.servletContext = servletContext;this.contextPath = servletContext.getContextPath();initPathUtil();Config.configJFinal(jfinalConfig); // start plugin and init log factory in this methodconstants = Config.getConstants();initActionMapping();initHandler();initRender();initOreillyCos();initTokenManager();return true;}private void initTokenManager() {ITokenCache tokenCache = constants.getTokenCache();if (tokenCache != null)TokenManager.init(tokenCache);}由于Handler是责任链模式,这是只是得到链的第⼀个元素private void initHandler() {Handler actionHandler = new ActionHandler(actionMapping, constants);//handler = HandlerFactory.getHandler(Config.getHandlers().getHandlerList(), actionHandler);}private void initOreillyCos() {OreillyCos.init(constants.getBaseUploadPath(), constants.getMaxPostSize(), constants.getEncoding());}private void initPathUtil() {String path = servletContext.getRealPath("/");PathKit.setWebRootPath(path);}private void initRender() {RenderFactory.me().init(constants, servletContext);}运⽤反射设置好了Route,即把URI和Controller进⾏了匹配private void initActionMapping() {actionMapping = new ActionMapping(Config.getRoutes(), Config.getInterceptors());actionMapping.buildActionMapping();Config.getRoutes().clear();}在Config.configJFinal(jfinalConfig)⾥⾯可以看到:Config order: constant, route, plugin, interceptor, handlerJFinalConfig其实是我们⾃⼰实现JFinalConfig的⼀个类这⾥得到具体的配置static void configJFinal(JFinalConfig jfinalConfig) {jfinalConfig.configConstant(constants); initLogFactory();jfinalConfig.configRoute(routes);jfinalConfig.configPlugin(plugins); startPlugins(); // very importantjfinalConfig.configInterceptor(interceptors);jfinalConfig.configHandler(handlers);}HandlerHandler可以分为程序员定义的和Jfinal⾃带的ActionHandle,⽽这⾥⾃定义的Handler只需要实现Handler接⼝,然后再注册到JFinalHandler⾥⾯就可以了。
jfinal框架搭建及增删改操作的实现1、打开myeclipse,新建web项目(web project)2、删除项目下的java ee X libraries,右键点击项目—properties—java build path—libraries下选中java ee X libraries,点击右侧的remove删除。
3、导入Jar包jfinal-2.2-bin-with-src.jar(jfinal框架)jetty-server-8.1.8.jar(运行环境)mysql/mysql-connector-java-5.1.20-bin.jar(mysql数据库驱动包)c3p0/c3p0-0.9.5.1.jar(数据库连接池)c3p0/mchange-commons-java-0.2.10.jar(数据库连接池)jstl_for_jsp/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar(JSP标准jstl_for_jsp/org.apache.taglibs.standard.glassfish-1.2.0.v20111208180 3.jar(JSP标准标签库)cos/cos-26Dec2008.jar(文件上传下载)将以上文件复制到项目的WEB-INF/lib下,系统将自动将这些文件复制到Web App Libraries目录下4、项目分包新建包mon(公共文件,数据源等)新建包mon.controller(控制层文件)新建包mon.model(模型层文件)新建目录WebRoot/WEB-INF/view(试图层),也可以是WebRoot/aaaa右键src—new—package,输入mon新建包5、配置web.xml中jfinal的实现<filter><filter-name>jfinal</filter-name><filter-class>com.jfinal.core.JFinalFilter</filter-class><init-param><param-name>configClass</param-name><param-value>monConfig</param-value> </init-param><filter-mapping><filter-name>jfinal</filter-name><url-pattern>/*</url-pattern></filter-mapping>6、创建jfinal配置文件CommonConfig,放在mon下Jfinal配置文件需要继承jfinal的config右键mon—new—class,输入名字CommonConfig,点击superclass 右侧的Browse…,输入jfinalconfig能看到显示有com.jfinal.config下的JFinalConfig,选中他,点击OK,7、测试环境在mon下新建Class文件runserver.class,选中下面的public static void main(String[] args)(主方法)在main方法中输入JFinal.start("WebRoot", 8080, "/", 5);会看到左边有个叉叉,点击叉叉,选择里边的import jfinal (com.jfinal.core),或者直接使用快捷键(Ctrl+Shift+O)引入包在runserver页点击右键—run as—java application,看到提示Welcome To The JFinal World :)表示配置成功8、创建mysql数据库jfinal_demo表blogid________自动编号title_____varcharcontent___textpubtime___datetime9、创建数据库配置文件右键src—new—file,输入config.properties打开该文件,输入jdbcUrl = jdbc:mysql://127.0.0.1/jfinal_demo?characterEncoding=utf8&zeroDateTim eBehavior=convertToNulluser = rootpassword = rootdevMode =true修改IP地址,数据库名,账号密码等devMode =true表示开发模式,在开发完毕正式运行环境下可以设置为false10、在CommonConfig.java中配置数据源、常量等信息在configConstant方法中配置常量public void configConstant(Constants me) {e("config.properties");//使用PropKit工具读取配置文件me.setDevMode(PropKit.getBoolean("devMode", false)); //设置开发模式,读取配置文件中的devMode参数,如果没有的话取值为false me.setViewType(ViewType.JSP);//设置试图文件类型me.setBaseViewPath("WEB-INF/view");//设置默认试图路径,跟上面第四步项目分包时创建的视图层目录一致}在configPlugin方法中配置数据源连接public void configPlugin(Plugins me) {C3p0Plugin C3p0Plugin = new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim()); //使用PropKit 工具读取配置文件中的jdbcUrl,user,passwordme.add(C3p0Plugin);}11、配置数据库映射,配置路由数据库映射:数据库中的表跟java类的对应关系路由:指定浏览器里输入的/blog由哪个控制器来处理在configPlugin方法中配置数据库映射public void configPlugin(Plugins me) {ActiveRecordPlugin arp = new ActiveRecordPlugin(C3p0Plugin);me.add(arp);arp.addMapping("blog", Blog.class); //数据库表映射//库中blog表对应blog类}在configRoute方法中配置路由public void configRoute(Routes me) {me.add("/blog", BlogController.class); //路由,访问/blog由blogcontroller控制器处理,使用的试图路径为setBaseViewPath配置的路径下的blog目录}如果路径名称不是blog,可以设置第三个参数me.add("/blog", BlogController.class, "blognew");这样就是指定到WEB-INF/view/blognew目录创建Blog.class在mon.model下创建Blog.class,继承jfinal.plugin.activerecord.model右键mon.model—new—class,输入name:Blog,点击Superclass 后面的Browse..,输入model选中里边的model –com.jfinal.plugin.activerecord,文件创建完毕,会看到左边有红色叉叉,将Model<M>修改为Model<Blog>即可在此类中定义public final static Blog me =new Blog();即可。
最近看到网上有人推荐使用JFinal(官网:/)开发WEB + ORM项目,自己于是到官网学习JFinal,官方文档提供了使用eclipse开发Jfinal 项目的步骤,只是对Idea做了简略说明,没有详细的介绍,对于智商低的小编来说,看完文档还是没有搭建起来(人和人的差距怎么这么大呢快哭了),于是根据网上资料,小编自己写一篇入门详解,以便自己和他人学习。
1. 在Idea环境下新建project项目1.1 新建project1.2 选择创建Maven项目,并且不使用模板1.3 输入Maven的groupId [jfinal-web-demo] 和artifactId [jfinal-demo]1.4 输入项目名称jfinal-web-demo1.5 将项目jfinal-web-demo作为项目的parent工程,用于定义maven依赖包的版本信息、编码方式等1.5.1 删除src目录1.5.2 将项目打包格式设置为pom1.5.3 修改pom.xml文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>jfinal-web-demo</groupId><artifactId>jfinal-demo</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><!-- 指定将要引入的jar的版本号--><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <jfinal.version>3.1</jfinal.version><junit.version>4.12</junit.version></properties><!--集中声明依赖--><dependencyManagement><dependencies><!--jfinal依赖--><dependency><groupId>com.jfinal</groupId><artifactId>jfinal</artifactId><version>${jfinal.version}</version></dependency></dependencies></dependencyManagement></project>2. 创建Module [jfinal-web-demo-provider]2.1 新建Module2.2 根据idea提供的webapp模板创建module2.3 指定module的名称为jfinal-web-demo-provider2.4 点击完成后需要等待一段时间,让idea根据webapp模板创建项目,生成目录如下:2.5 创建java目录,并将java目录设置为source root2.6 编辑module [jfinal-web-demo-provider]的pom.xml文件<project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /maven-v4_0_0.xsd"><parent><artifactId>jfinal-demo</artifactId><groupId>jfinal-web-demo</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>jfinal-web-demo-provider</artifactId><packaging>war</packaging><name>jfinal-web-demo-provider Maven Webapp</name><url></url><dependencies><dependency><groupId>com.jfinal</groupId><artifactId>jfinal</artifactId></dependency></dependencies><build><finalName>jfinal-web-demo-provider</finalName><plugins><plugin><!--maven对应的tomcat插件,启动tomcat的时候使用--><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8081</port><path>/</path><uriEncoding>utf-8</uriEncoding></configuration></plugin></plugins></build></project>3.编写代码3.1 创建config类package com.demo.config;import com.demo.controller.HelloController;import com.jfinal.config.*;import com.jfinal.template.Engine;/*** Created by lance on 2017/6/19.public class DemoConfig extends JFinalConfig { @Overridepublic void configConstant(Constants me) {me.setDevMode(true);}@Overridepublic void configRoute(Routes me) {me.add("/hello", HelloController.class);}@Overridepublic void configEngine(Engine me) { }@Overridepublic void configPlugin(Plugins me) {}@Overridepublic void configInterceptor(Interceptors me) { } @Overridepublic void configHandler(Handlers me) {}3.2 创建Controller类package com.demo.controller;import com.jfinal.core.Controller;/*** Created by lance on 2017/6/19.*/public class HelloController extends Controller {public void index(){renderText("hello world!");}}3.3 编辑web.xml文件<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd"><web-app><display-name>Archetype Created Web Application</display-name> <filter><filter-name>jfinal</filter-name><filter-class>com.jfinal.core.JFinalFilter</filter-class><init-param><param-name>configClass</param-name><!--注意此处的路径配置,必须正确!-><param-value>com.demo.config.DemoConfig</param-value> </init-param></filter><filter-mapping><filter-name>jfinal</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>4.测试验证4.1 使用Maven插件启动Tomcat:4.2 启动tomcat成功提示:4.3 使用浏览器验证,小编使用的是google chrome浏览器看,简单吧!。
Java web入门之一:搭建JFinal框架
一、创建项目
1、启动eclipse,切换至java EE视图
2、创建Dynamic Web Project项目,项目名自定,示例项目名为webdemo,Target Runtime 选None,Dynamic web module version选择2.5
3、修改Default Output Folder,推荐输入WebRoot\WEB-INF\classes
特别注意:此处的Default out folder必须要与WebRoot\WEB-INF\classes目录完全一致才可以使用JFinal集成的Jetty来启动项目。
4、修改Content directory,推荐输入WebRoot
注意:此处也可以使用默认值WebContent,但上一步中的WebRoot\WEB-INF\classes则需要改成WebContent\WEB-INF\classes才能对应上。
5、放入JFinal库文件
将jfinal-1.9-bin-with-src.jar与jetty-server-8.1.8.jar拷贝至项目WEB-INF\lib下即可。
注意:jetty-server-8.1.8.jar是开发时使用的运行环境,生产环境不需要此文件。
6、修改web.xml
将如下内容添加至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>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类,继承自com.jfinal.config.JFinalConfig类,如图所示:
代码内容如下:
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;
public class DemoConfig extends JFinalConfig{
@Override
public void configConstant(Constants me){ me.setDevMode(true);
me.setViewType(ViewType.JSP);
}
@Override
public void configRoute(Routes me){
me.add("/hello",HelloController.class);
}
@Override
public void configPlugin(Plugins me){}
@Override
public void configInterceptor(Interceptors me){}
@Override
public void configHandler(Handlers me){}
}
注意:DemoConfig.java文件所在的包以及自身文件名必须与web.xml中的param-value标签内的配置相一致(在本例中该配置为demo.DemoConfig)。
如图所示:
8、在demo包下创建HelloController类文件,如图:
代码内容如下:
package demo;
import com.jfinal.core.Controller;
public class HelloController extends Controller{ public void index(){
renderText("Hello JFinal World.");
}
}
9、启动项目
(1)点击Debug Configurations,如图:
(2)鼠标右键点击Java Application并选择New菜单项,新建Java Application启动项,如下图所示:
(3)在右侧窗口中的Main class输入框中填入:com.jfinal.core.JFinal并点击Debug按钮启动项目,如下图所示:
如果项目启动成功,可以看到Console中有如下提示信息:
10、开启浏览器看效果
打开浏览器在地址栏中输入:http://localhost/hello,输出内容为Hello JFinal World证明项目框架搭建成功。