一直以来都想养成写博客的习惯,但是写了几篇,发现每次写的重点都放在了如何表述的更好,离要写的内容越走越远,最后。。。直到今天我深刻的意识到写这个是写给自己看的,不是写给别人看的,只是别人能看到而已!所以,管他呢,写自己能看的懂的东西,先为自己写博客。
好的,我今天写的是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什么之类的,那就按提示检查代码吧。
真是棒极了的一天。
|