初次接触JFinal框架,接触过MVC思想,接触过Spring. 
JFinal官网: 
http://www.jfinal.com/ 
之前很嫌弃JavaWeb开发,主要原因是繁琐的xml配置. 
官方推荐工具是Eclipse For J2EE.


按照官方文档搭建起快速上手demo 
- 建立javaweb工程 
- 放入jar包 
- 修改web.xml 
- 写java文件


新建package

  cn.pangpython.config

  cn.pangpython.controller

在controller包内新建IndexController继承Controller

package cn.pangpython.controller;

import com.jfinal.core.Controller;

/**
* @author pangPython
* 主页控制器
*/
public class IndexController extends Controller {
public void index(){
renderText("index");
}
}

index方法是处理默认路径 
如果IndexController绑定

/

这个url,则index方法作为此url下的默认方法 
再,如果AdminController绑定

/admin

这个Url,则本地访问

http://localhost/admin

直接由index方法来处理.

这里使用renderText(String) 
是直接把传入的字符串打印到页面上 
还可以渲染html页面,JFinal默认使用FreeMarker模板引擎解析前端


在config包内新建配置文件 
MyJFinalConfig继承JFinalConfig

package cn.pangpython.config;

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 cn.pangpython.controller.IndexController; /**
* @author pangPython
* JFinal 项目配置文件
*/
public class MyJFinalConfig extends JFinalConfig { @Override
public void configConstant(Constants me) {
//开启开发模式
me.setDevMode(true);
//这里可以通过配置文件来读取配置参数,更灵活
} @Override
public void configRoute(Routes me) {
//这里是根目录Url由IndexController控制器来响应这个请求
me.add("/",IndexController.class);
} @Override
public void configHandler(Handlers arg0) {
// 这里可以配置全局处理器 防止直接访问模板文件暴露数据库表和字段
} @Override
public void configInterceptor(Interceptors arg0) {
// 这里可以配置拦截器进项权限管理
} @Override
public void configPlugin(Plugins arg0) {
// 这里可以配置JFinal的各种插件,比如数据库插件等
} //使用JFinal内置的jetty启动项目,直接作为java application运行此文件
public static void main(String[] args) {
JFinal.start("WebRoot", 80, "/", 5);
} }

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>JFinalTest</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list> <filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>cn.pangpython.config.MyJFinalConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>

作为java application运行MyJFinalConfig文件 
浏览器访问

http://localhost/

eclipse 控制台日志输出

到这里JFinal的基本就跑起来了。

参考原文:http://blog.csdn.net/u012995856.

JFinal Web开发学习(一)开启HelloWorld的更多相关文章

  1. JFinal Web开发学习(六)验证码验证和注册细节

    效果: 实现了注册界面的验证码验证.确认密码.密码md5加盐加密.C3P0插件数据库操作.读取外部配置文件. 1.在注册页面添加了确认密码输入框,修改了字段名称 <!DOCTYPE html&g ...

  2. JFinal Web开发学习(三)前后台路由设计

    效果图: 一.写控制器 1.在controller包中新建AdminController后台控制器,继承Controller,实现一个index方法,作为的处理方法. /admin 后面,这个控制器中 ...

  3. JFinal Web开发学习(五)注册界面和后端验证

    效果: 直接点击注册后 : 后端验证是可靠地,前端js验证是不可靠的.只需要在浏览器删除js验证代码即可突破js验证. 1.注册界面 在WebRoot下新建regist.jsp <%@ page ...

  4. JFinal Web开发学习(九)后台添加前台显示博客

    效果: 发博客: 显示博客: 后台:使用hui-admin,文章编辑器是百度开源的ueditor 前台:使用layui前端框架 1.写控制器BlogController controller包中 pa ...

  5. JFinal Web开发学习(八)后台集成H-ui-admin前端框架

    h-ui-admin是一个很不错的前端框架h-ui实现的一个后台管理系统的前端. 1.在WebRoot目录下新建admin目录 2.下载h-ui-admin(当前最新是2.5版本)并解压至admin文 ...

  6. JFinal Web开发学习(七)使用layUI美化的登录功能

    效果: 验证码还是没有布局好.背景比较怀古. 1.写前端html login.jsp <!DOCTYPE html> <html> <head> <meta ...

  7. JFinal Web开发学习(四)数据库连接与自动生成model

    1.新建数据库jfinal_test,user表 /* Navicat MySQL Data Transfer Source Server : . Source Server Version : 50 ...

  8. JFinal Web开发学习(二)目录、架构、package设计

    package分类 config是JFinal的项目配置 controller是控制器 handler可以设置全局处理器,例如判断用户请求中是否直接请求 FreeMarker的模板文件ftl或者htm ...

  9. 【前端】移动端Web开发学习笔记【2】 & flex布局

    上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...

随机推荐

  1. SQL Server--存在则更新问题

    在博客园看到一篇讨论特别多的文章“探讨SQL Server并发处理存在就更新七种解决方案”,这种业务需求很常见:如果记录存在就更新,不存在就插入. 最常见的做法: BEGIN TRANSACTION ...

  2. ArcGIS案例学习笔记3_1_地理配准案例_图面控制点

    ArcGIS案例学习笔记3_1_地理配准案例_图面控制点 计划时间:第3天上午 目的:地形图控制点配准 数据:地形图drg 无坐标: 步骤 1.查看地图标注 2. 地理配准,添加控制点 3.结果: 联 ...

  3. C# Winform添加全局快捷键(老板键)

    using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.W ...

  4. 单例模式 demo

    // 用单例模式实现自定义颜色类 public class MyColor { private static MyColor _redColor = null; public static MyCol ...

  5. 在Centos 6.5 X64下切割m3u8

    操作系统:centos 6.5 必需要参考的文章: http://blog.chinaunix.net/uid-23069658-id-4018842.html 准备工作: 安装git yum ins ...

  6. 当点击回车键后form表单就可提交的实现

    $('#myform').find('input').on('keyup',function(event){ if(event.keyCode == 13){ $('#myform').submit( ...

  7. spring中的IOC/DI的知识点

    IOC(Inverse of control):控制反转;其实就是一个装对象的容器,以前我们在controller中调用service中的方法,都要先new 一个service对象,这样不符合模式设计 ...

  8. 对一个结果集(List)进行手动分页

    对一个链表List,进行手动分页,核心代码就是pagin函数: import lombok.extern.slf4j.Slf4j; import org.junit.Before; import or ...

  9. mysql查找某连续字段中断的编号

    查询dj_pxlb表中zwh 空缺的值 select model2.zwh-1 as kqzwh from (select model1.zwh from dj_pxlb as model1 wher ...

  10. linux键盘驱动

    http://blog.csdn.net/beyondhaven/article/details/5753182 http://blog.chinaunix.net/uid-20564848-id-7 ...