1、创建 Dynamic Web Project
2、修改 Default Output Folder,推荐输入 WebRoot\WEB-INF\classes

特别注意:此处的 Default out folder 必须要与 WebRoot\WEB-INF\classes 目录
完全一致才可以使用 JFinal 集成的 Jetty 来启动项目。
3、修改 Content directory,推荐输入 WebRoot
注 意 : 此 处 也 可 以 使 用 默 认 值 WebContent , 但 上 一 步 中 的
WebRoot\WEB-INF\classes 则需要改成 WebContent\WEB-INF\classes 才能对应上
4、创建完成查看jar里面有没有tomcat 如果有 删除 否则启动报错
5、添加jar包 这里jfinal 的和jetty service的放到webinf下
6:添加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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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">
<filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>com.laymi.index.LaymiConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
7:创建一个包com。laymi
8:LzymiConfig
package com.laymi.index;
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.core.JFinal;
import com.jfinal.ext.handler.ContextPathHandler;
import com.jfinal.template.Engine;
public class LaymiConfig extends JFinalConfig{
@Override
public void configConstant(Constants me) {
// TODO Auto-generated method stub
me.setDevMode(true);
}
@Override
public void configRoute(Routes me) {
me.add(new FrontRoutes()); //前端路由
me.add(new AdminRoutes()); //后端路由
}
@Override
public void configEngine(Engine me) {
// TODO Auto-generated method stub
}
@Override
public void configPlugin(Plugins me) {
// TODO Auto-generated method stub
}
@Override
public void configInterceptor(Interceptors me) {
// TODO Auto-generated method stub
}
@Override
public void configHandler(Handlers me) {
// TODO Auto-generated method stub
me.add(new ContextPathHandler("base"));
}
/**
* 运行此 main 方法可以启动项目,此main方法可以放置在任意的Class类定义中,不一定要放于此
*
* 使用本方法启动过第一次以后,会在开发工具的 debug、run config 中自动生成
* 一条启动配置,可对该自动生成的配置再添加额外的配置项,例如 VM argument 可配置为:
* -XX:PermSize=64M -XX:MaxPermSize=256M
*/
public static void main(String[] args) {
/**
* 特别注意:Eclipse 之下建议的启动方式
*/
JFinal.start("WebRoot", 80, "/", 5);
/**
* 特别注意:IDEA 之下建议的启动方式,仅比 eclipse 之下少了最后一个参数
*/
// JFinal.start("WebRoot", 80, "/");
}
}
8:路由拆分为前端后端
FrontRoutes
package com.laymi.index;
import com.jfinal.config.Routes;
/**
* @ClassName: FrontRoutes
* @Description:系统前端路由
* @author: liuzy
* @date: 2017年4月3日
* @version: 1.0 版本初成
*/
public class FrontRoutes extends Routes {
/**
*@desc 配置前端路由(移动端)
*@date 2017/4/03
*/
@Override
public void config() {
// TODO 添加前端路由配置
}
}
后端AdminRoutes
package com.laymi.index;
import com.jfinal.config.Routes;
import com.laymi.admin.LoginController;
/**
* @ClassName: AdminRoutes
* @Description: 配置后端路由(供管理系统)
* @author: liuzy
* @date: 2017年4月2日
* @version: 1.0 版本初成
*/
public class AdminRoutes extends Routes {
@Override
public void config() {
//设置页面base路径
setBaseViewPath("/view/admin");
//用户登录控制器
add("/",LoginController.class,"/"); //第三个参数是视图的路径
}
}
10:用户登录控制器
package com.laymi.admin;
import com.jfinal.core.Controller;
/**
* @ClassName: LoginController
* @Description: 用户登录的控制器
* @author: liuzy
* @date: 2017年4月3日
* @version: 1.0 版本初成
*/
public class LoginController extends Controller{
//将index.html作为直接访问控制器的展示视图
public void index(){
render("index.html");
}
//用户登录方法
public void userLogin(){
renderText("欢迎yetangtang登录");
}
}
11:用户登录界面
index.html
<!DOCTYPE html>
<html>
<head>
<title>首页</title>
<meta name="keywords" content="keyword1,keyword2,keyword3">
<meta name="description" content="this is my page">
<meta name="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css" target="_blank" rel="external nofollow" >-->
</head>
<body>
<h2>我是系统欢迎页面</h2>
</body>
</html>
大功告成 127.0.0.1