1、创建一个maven工程,点击Create New Project进入New Project界面,选择Maven ---> 勾选Create from archetype ---> 选择maven-archetype-webapp,点击Next,如图:
2、填写好GroupId和ArtifactId再点击Next,如图:
3、选择电脑上安装的maven(也可以使用默认的maven,使用自己的是因为配置过本地仓库路径和私人服务器),点击Next,如图:
4、直接Finish完成即可,如图:
5、maven工程创建成功,但是缺少 src/main/java 和 src/main/resources 和 src/test/java 和 src/test/resources,如图:
6、添加 src\main\java 和 src\main\resources 和 src\test\java,如图:
7、在pom.xml文件中添加 jetty server 与 jfinal 依赖【注意:scope 必须设置成为 compile,否则启动不了,在打包时要改回 provided,避免打进一些不需要的 jar 包】,如图:
<!-- jfinal依赖 -->
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>4.7</version>
</dependency>
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jetty-server</artifactId>
<version>2019.3</version>
<scope>compile</scope>
</dependency>
<!-- 下面的依赖仅在使用 JSP 时才需要 -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jsp</artifactId>
<version>9.2.26.v20180806</version>
<scope>compile</scope>
</dependency>
8、创建一个放置controller层的包,并在包里创建UserController,如图:
在UserController里面添加如下代码,如图:
package com.jfinal.controller;
import com.jfinal.core.Controller;
public class UserController extends Controller {
public void index() {
renderText("Hello JFinal!");
}
}
9、配置JFinal的启动类,创建一个名叫Start的java类,在类里面添加如下代码,如图:
package com.jfinal;
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.controller.UserController;
import com.jfinal.core.JFinal;
import com.jfinal.template.Engine;
public class Start extends JFinalConfig {
/**
* 注意:用于启动的 main 方法可以在任意 java 类中创建
* 开发项目时,建议新建一个 App.java 或者 Start.java 这样的专用 启动入口类放置用于启动的 main 方法
*/
public static void main(String[] args) {
JFinal.start("src/main/webapp", 80, "/", 5);
}
public void configConstant(Constants me) {
me.setDevMode(true);
}
public void configRoute(Routes me) {
me.add("/hello", UserController.class);
}
public void configEngine(Engine me) {
}
public void configPlugin(Plugins me) {
}
public void configInterceptor(Interceptors me) {
}
public void configHandler(Handlers me) {
}
}
如果出现这种情况,如图:
解决办法:在该类上右键选择Refactor ---> 选择Move Class ---> 把 .controller 删除掉再Refactor即可,如图:
10、修改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">
<display-name>jfinal offical website</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.jfinal.Start</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
11、访问http://127.0.0.1/hello就可以了,如图:
GitHub上的源码:JFinal框架创建简单的Java web项目