JFinal學習筆記(一) 在Tomcat下的JFinal環境配置

最近打算做一個屬於我自己的個人網站,本來打算使用微軟的.NET來進行開發的,但是聽朋友說有一個基於java的開源框架JFinal和.NET的開發模式很像,同時兼備了.NET快速開發和java安全性兩方面的優點。出於好奇本人打算學習一下JFinal框架,看看是不是真的這麼神。

同時這次我將對我學習的每個重要的步驟或者遇到的問題都在博客中詳細的記錄,主要是爲自己做個學習筆記,防止以後一段時間不用後會遺忘。話說我以前怎麼就沒有寫博客的習慣,之前經常發生一些開發技術一段時間不用後就不會用的烏龍,怨念啊。當然如果我的筆記能夠幫到其他人那是再好不過了。

下面進入主題。我在學習JFinal框架的時候遇到的第一個問題就是環境的配置。JFinal給出的幫助文檔中是使用jetty進行程序調試的。但是這個jetty我從來沒用過,我擔心在下面的開發中會有不必要的麻煩,所以我決定在Tomcat下對JFinal項目進行調試,其實配置過程並不複雜,與幫助文檔中的配置方法大致相同。

進行環境配置前首先要確定安裝了eclipse和tomcat(好像是廢話,這當然要有),版本儘量高一點,因爲JFinal是2011年出的框架,版本過低不知道會不會有問題。我用的是eclipse juno和tomcat 7.0。

裝了eclipse和tomcat中首先要在eclipse中綁定tomcat,話說我每次都忘記怎麼綁定,所以在這裏多嘴說一下tomcat的綁定方法。

首先在eclipse中點擊菜單欄中的Window-->Preferences,在彈出的對話框中的左邊欄裏選擇Sever-->Runtime Environment。


第一次配置tomcat的嗎右邊的應該沒有任何選項,我因爲現在已經配好了所以有一個tomcat 7.0的運行環境。第一次配置直接點擊Add按鈕。


在彈出的對話框中選擇你現在安裝的tomcat的版本,我的是7.0所以選的的7.0版本,點擊Next按鈕。


在安裝路徑中輸入tomcat的安裝路徑,一般默認的路徑是C:\Program Files\Apache Software Foundation\Tomcat 7.0,點擊Finish就完成了tomcat的綁定。

下面進行工程的創建,首先在eclipse中創建一個dynamic web project。


點擊Next後填入項目的基本信息。


注意這裏的Target runtime和JFinal幫助文檔中的不一樣,一定要選擇當前你綁定的tomcat。

下面兩步與JFinal幫助文檔中的步驟一樣,點擊Next按鈕,將default output folder改爲Webroot\WEB-INF\classes。


點擊Next,修改Content directory爲Webroot。


點擊finish完成工程的創建。

在JFinal官網上下載jfinal-1.9-all.zip文件並解壓,將解壓文件夾中的jfinal-1.9-bin.jar文件複製到項目中Webroot\WEB-INF\lib文件夾中。

在項目的src目錄下創建一個包名爲common,在該包下創建一個類名爲DemoConfig的類,該類是整個項目的配置文件。在DemoConfig中寫入以下代碼。

package common;

import com.jfinal.config.*;

public class DemoConfig extends JFinalConfig {
	public void configConstant(Constants me) {
		me.setDevMode(true);
	}

	public void configRoute(Routes me) {

	}

	public void configPlugin(Plugins me) {
	}

	public void configInterceptor(Interceptors me) {
	}

	public void configHandler(Handlers me) {
	}
}
再在common包中創建IndexController類,並在該類中填入以下代碼:

package common;

import com.jfinal.core.Controller;

public class IndexController extends Controller {
	public void index() {
		renderText("Hello JFinal World.");
	}
}
接下來回到DemoConfig類中,在configRoute方法中添加以下代碼:

me.add("/", IndexController.class);
這段代碼的作用是指定網站的主頁路徑。

最後修改WEB-INF文件夾下的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>common.DemoConfig</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>jfinal</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>
這裏要注意的是<param-value>中的路徑一定要與項目配置文件的路徑一致,這裏的項目配置文件是common包中DemoConfig類,所以路徑是common.DemoConfig。

到這裏項目就配置完畢了,下面右鍵項目選擇Run As-->Run On Severs就可以了,運行結果如下圖。


下面說一說我在第一次配置中碰到的問題,第一個就是控制檯包java.net.BindException: Address already in use: JVM_Bind錯誤,頁面顯示404錯誤。產生這個問題的原因是8080端口被佔用了,eclipse當然就無法在8080端口上創建服務了。一般導致這個問題的原因是系統中有tomcat在運行了,可以在任務管理器中查看以下是不是有tomcat的進程在運行,有的話就關掉。
還有一個問題就是剛開始的時候我按照JFinal幫助文檔進行tomcat配置的時候在地址欄中輸入localhost:8080,總是顯示404錯誤。後來明白了幫助文檔中項目的運行中將項目的根目錄綁定在了localhost:8080地址上,而tomcat運行項目時是將項目根目錄綁定在了"localhost:8080/項目名"上,所以輸入localhost:8080是無效的。



發佈了31 篇原創文章 · 獲贊 59 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章