1. 程式人生 > >JFinal與tomcat學習筆記(一)

JFinal與tomcat學習筆記(一)

一直以來都想養成寫部落格的習慣,但是寫了幾篇,發現每次寫的重點都放在瞭如何表述的更好,離要寫的內容越走越遠,最後。。。直到今天我深刻的意識到寫這個是寫給自己看的,不是寫給別人看的,只是別人能看到而已!所以,管他呢,寫自己能看的懂的東西,先為自己寫部落格。

好的,我今天寫的是JFinal的學習筆記。

學習JFinal是老師佈置下來的任務,剛剛拿到就發現沒有一個部分能夠看懂,呵呵。

用的開發環境是:myeclipse8.5,tomcat6.x,谷歌瀏覽器。

先做一個demo吧。

1,開啟myeclipse8.5,新建一個Web Project,嗯起個好名字“jfinal_demo",注意我這裡寫的全是小寫,願意大寫就大寫,出了問題,自己慢慢玩。起好名字後,其餘預設,Finish!

2,在src中新建兩個包,一個”com.my.config"和“com.my.controller"。

3,在WebRoot中WEB-INF裡lib下放入一下jar:druid-0.2.6.jar;JFinal-bin-1.5.jar;JFinal-bin-src-1.5.jar;mysql-connector-java-5.1.20.jar    你也許會問放這些幹嘛用的?不著急!

4,在"com.my.config"中新建”MyBaseConfig"類,類中程式碼如下:

package com.my.config;

import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.wall.WallFilter;
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.ext.handler.ContextPathHandler;
import com.jfinal.ext.interceptor.SessionInViewInterceptor;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.plugin.druid.DruidStatViewHandler;
import com.jfinal.render.ViewType;
import com.my.controller.MainController;
import com.my.model.User;

public class MyBaseConfig extends JFinalConfig {

    @Override
    public void configConstant(Constants me) {

        me.setDevMode(true);

    }



    @Override
    public void configHandler(Handlers me)
    {

    }

    @Override
    public void configInterceptor(Interceptors me)
    {

    }

    @Override
    public void configPlugin(Plugins me)
    {
        DruidPlugin druidPlugin = new DruidPlugin("jdbc:mysql://localhost:3306/jfinal_demo","root","htzy");
        me.add(druidPlugin);
        ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
        me.add(arp);
        arp.addMapping("user","User_Id",User.class);

    }

    @Override
    public void configRoute(Routes me)
    {
        me.add("/", MainController.class);
    }
}

沒錯,裡面我import了很多包,雖然現在沒有用,但是我還是不想刪除他們,為什麼?你管我!我的blog我做主!

5,好的,既然你定義了這個config配置類的話,應該在WebRoot中WEB-INF下的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>com.my.config.MyBaseConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
把它放在最後一句</web-app>的前面。裡面你可以看到一個很重要的值就是<param-value>com.my.config.MyBaseConfig</param-value>,什麼意思?這玩意不會解釋,意會。。。

6,在“my.com.controller"中新建一個類”MainController“,程式碼如下:

package com.my.controller;

import com.jfinal.aop.ClearInterceptor;
import com.jfinal.core.Controller;
import com.my.model.User;
import com.my.service.UserService;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class MainController extends Controller {
    UserService userService = new UserService();
    
    @ClearInterceptor
    public void index(){

       renderJsp("login.html"); 

    }


}
這裡面有import的幾個包還沒有新建,所以會報錯,你可以刪除。這裡的renderJsp("login.html");你可以先改成 renderText("進入MainController類中的index方法");試試感覺。(這兩個語句不要淘氣都放在這個方法裡)感覺試好了,讓我們進入下一步。

7,新建一個login.html頁面,程式碼就不管它了,用自動生成的就好。

8,接著啟動tomcat,如果是自己裝的tomcat6.x之類的,別忘了把這個web project加到tomcat6服務裡。

9,開啟瀏覽器,輸入:"http://localhost:8080",先看看tomcat啟動沒,看到一隻貓星人了,就說明啟動成功了。接著輸入”http://localhost:8080/jfinal_demo/",看到什麼hello什麼玩意的,就說明成功了,如果404的話就檢查project有沒有加到tomcat服務裡來,然後檢查名字有沒有輸錯,一般情況下都是名字輸錯了,就是與工程名不一樣,如果還不行就檢查web.xml檔案裡面那個之前說很重要的值對不對;如果500,505什麼之類的,那就按提示檢查程式碼吧。

真是棒極了的一天。