EasyJF 官方网站全面升级,同时EasyJF开源团队也将进行全面改组,期待您给我们提出宝贵的意见及建议!

当前位置:首页-教程-原创教程

  • EasyJWeb入门手册
    作者: 本站会员  来源:easyjf  发布时间:2007-10-12 16:04:00
  •  一 、简介

    EasyJWeb是基于java技术,应用于WEB应用程序快速开发的MVC框架,框架设计构思来源于国内众多项目实践,充分借签了当前主流的开源Web框架(Struts、JSF、Tapestry 、Webwork),吸取了其优点及精华,利用Velocity作为模板页面引擎,是一个实现了页面及代码完全分离的MVC开发框架,是一个旨在为中小型Web应用系统提供快速开发实践的简易Web框架。

    (为了能让用户快速地掌握并使用EasyJweb框架,在开发EasyJWeb的同时开发了EasyJWeb Tools。)通过EasyJWeb Tools提供的配套开发工具,可以实现基于EasyJWeb框架的Web应用项目快速开发,包括常用应用软件的代码自动生成、数据库添删改查(CRUD)代码生成、自动页面模版生成、配置文件管理等。

    框架特点:

    1、零配置文件支持。以前我们每接触一个框架,开始总被他的配置文件折腾一番。EasyJWeb实现零配置支持,可以不写一句配置文件就在框架基础上构建你的应用。(适合小型网站系统)。

    2、简易的模板页面设计支持。放弃使用jsp,使用简单Velocity脚本语言作为页面模板。

    3、页面程序完全分离。实现显示页面与程序逻辑的完全分离,克服了传统jsp页面难于维护的问题。

    4、基于页面组件的框架。灵活的页面组件配置,可以直接通过配置文件设置字段及表属性的事件等。

    5、快速开发支持。通过EasyJWeb Tools,可以自动生成应用软件模板代码,定制并管理自己的J2EE代码模板,代码生成模板扩展支持最流行的实用Java开发框架如hibernate、Spring等,实现快速开发。 

     

    EasyJWeb的MVC框架简单流程图

    二、环境需求

    三、安装配置EasyJWeb

    获取EasyJWeb SDK

    EasyJWeb是一个开源项目,你可以从EasyJF官方网站下载。下载地址:http://www.easyjf.com/easyjweb/download.htm其中,EasyJWebX_src.zip为源代码,EasyJWebX_lib.zip为编译后的jar包及运行EasyJWeb所需要的基本包。

    安装

    EasyJWeb只是一个Web应用程序MVC框架,其主要作为一般应用程序的基础框架,是以一个jar文件的形式伴随在用户的Java Web程序中执行,不需要进行专门的安装操作。只需要把easyjweb.jar文件及附属文件(lib中的所有jar文件)拷到java web应用程序类路径中即可。我们一般是放到Web应用程序目录的Web-inf\lib目录下,也可以拷到Tomcat\Common\lib目录下,这样使得所有Tomcat Web应用程序都可以使用EasyJWeb。我们推荐放到web-inf\lib 目录下,这样可以使得你不用理会具体的Web应用服务器.

    当开发EasyJWeb应用的时候,只要把EasyJWeb.jar包导入到工程中即可执行应用程序的调试及测试等工作

    配置web.xml文件

    EasyJWeb是一个Web应用程序的核心骨架,为了在浏览器中访问EasyJWeb应用程序,需要配置应用程序中的web.xml文件,使得用户的Web应用程序知道何时使用EasyJWeb应用程序处理用户请求。

    只有通过配置Web应用程序中的web.xml文件,才能使得EasyJWeb能正常的使用。EasyJWeb应用程序默认以.ejf为扩展名,在用户地址栏中输入与.ejf结尾 URL路径的时候,为了使得EasyJWeb能处理用户的请求,需要在web.xml文件中加如下的配置信息:

     <servlet>

      <servlet-name>easyjfservlet-name>

      <servlet-class>com.easyjf.web.ActionServletservlet-class>

      <load-on-startup>1load-on-startup>

     servlet>

     <servlet-mapping>

      <servlet-name>easyjfservlet-name>

      <url-pattern>*.ejfurl-pattern>

    servlet-mapping>

      

    由于Java是外国人发明的,其以unicode为默认编码,并且很多Java Web应用服务器也是泊来之品。因此我们在进行Java Web应用开发的时候经常会遇到中文字符处理的问题。比如显示在页码上的中文信息成乱码、或者保存到数据库的变成乱码等。因此,为了让Java Web应用能更好的处理中文,EasyJWeb默认情况下使用utf-8作为标准编码。这样需要通过在web.xml文件加入下面的设置,使得转码程序能正确运行,显示正确的文字字符。

     <filter>

      <filter-name>CharsetFilterfilter-name>

      <filter-class>com.easyjf.web.CharsetFilterfilter-class>

      <init-param>

       <param-name>encodingparam-name>

       <param-value>UTF-8param-value>

      init-param>

      <init-param>

       <param-name>ignoreparam-name>

       <param-value>trueparam-value>

      init-param>  

     filter>

     

     <filter-mapping>

      <filter-name>CharsetFilterfilter-name>

      <url-pattern>/*url-pattern>

    filter-mapping>

    这样,一个基于EasyJWebJava Web应用程序的web.xml文件全部内容如下:

    xml version="1.0" encoding="UTF-8"?>

    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"

     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

     <servlet>

      <servlet-name>easyjfservlet-name>

      <servlet-class>com.easyjf.web.ActionServletservlet-class>

      <load-on-startup>1load-on-startup>

     servlet>

     <servlet-mapping>

      <servlet-name>easyjfservlet-name>

      <url-pattern>*.ejfurl-pattern>

     servlet-mapping>

     <servlet-mapping>

      <servlet-name>easyjfservlet-name>

      <url-pattern>/ejf/*url-pattern>

     servlet-mapping>

     <filter>

      <filter-name>CharsetFilterfilter-name>

      <filter-class>com.easyjf.web.CharsetFilterfilter-class>

      <init-param>

       <param-name>encodingparam-name>

       <param-value>UTF-8param-value>

      init-param>

      <init-param>

       <param-name>ignoreparam-name>

       <param-value>trueparam-value>

      init-param>  

     filter>

     

     <filter-mapping>

      <filter-name>CharsetFilterfilter-name>

      <url-pattern>/*url-pattern>

     filter-mapping>

    web-app>

    web.xml文件配置成功,并把EasyJWeb.jar文件及相关jar文件拷到了web-inf\lib 目录下,启动Web用户服务器。在地址栏中随便输入http://localhost:8080/hello.ejf 类似以.ejf为扩展名的地址。则会得到一个如下的EasyJWeb错误反馈提示信息:

    友情提示!

    frameworkException: 没有找到处理模板的类:com.easyjweb.action.HelloAction 

    详细请查询http://www.easyjf.com 

    如下图所示:

    虽然提示框架错误,但既然有了EasyJWeb字眼,这即表示您的EasyJWeb应用程序已经配置成功,下一步就是开始激动人心的EasyJWeb应用开发了。

    若没能正确的配置Web.xml,当用户在地址栏中输入EasyJWeb应用程序扩展名的*.ejf时候,将会产生404的错误提示。如下图所示:

    四、快速入门与示例

    4.1、EasyJWeb版的 Hello World!

    下面,我们以一个老掉牙的示例"Hello World!"来开始EasyJWeb的应用程序,我们这里把"Hello World!"改成"喂,您好,EasyJWeb1.0发布了,请支持国产开源项目!",另外还将显示一个系统当前的时间。

    第一步,建立java代码程序目录:

    在您的源代码目录下,建一个如下的目录com\easyjweb\action

    第二步,写EasyJWeb Action helloAction.java:

    com\easyjweb\action目录下建一个名为helloAction.java的文件。内容如下:

    package com.easyjweb.action;

     

    import java.util.Date;

    import com.easyjf.web.IWebAction;

    import com.easyjf.web.Module;

    import com.easyjf.web.Page;

    import com.easyjf.web.WebForm;

     

    public class HelloAction implements IWebAction {

     public Page execute(WebForm form, Module module) throws Exception {  

      form.addResult("msg","喂,您好,EasyJWeb1.0发布了,请支持国产开源项目!");//设置VO对象msg的值。

      form.addResult("time",new Date());//设置VO对象time的值为当前时间

      return new Page("hello""/hello.html");

     }

    }

    写完后通过使用命令行的javac 或者编译工具编译helloAction.java。若对java的编译不熟悉,请先跳到后面的《EasyJWeb应用开发指南》章有关工具使用的介绍,或者直接执行EasyJWeb的示例程序中的helloAction.class拷到您的web-inf\classes\com\easyjweb\action目录下即可。

    第三步,建立EasyJWeb显示页面模板文件

    用记事本在/web-inf/easyjweb/建一个名为hello.html的文件,注意保存的时候请选择utf-8编码,helllo.html文件的全部内容如下:

    <html>

     <head>

      <title>我的第一个EasyJWeb程序界面title>

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

     head>

     <body>

      $!msg<br>

      当前时间:$!time 

     body>

    html>

    把文件保存为utf-8编码的操作如下所示:

                  

    最后一步:启动Tomcat并运行Hello EasyJWeb应用程序

    重新启动Tomcat,然后在地址栏中输入http://localhost:8080/hello.ejf 即可看到如下图所示的运行结果:

    接下来我们来简单介绍一下这个简单的EasyJWeb应用。在上面这个应用中,我们可以看到,EasyJWeb应用主要包括两个部分:用Java实现的Action以及业务逻辑和一个Html模板(这里并不是使用的单纯的Html,还有Velocity脚本)。这里我们简单介绍一下Action部分,Velocity部分请参考《EasyJWeb-Velocity脚本简明教程》,你可以通过这个地址下载该教程:http://www.easyjf.com/easyjweb/EasyJWeb-Velocity.pdf

    在这个Action实现IWebAction接口,IWebAction接口只有一个方法execute。这个方法有两个参数:WebForm和Module,返回一个Page对象。WebForm负责封装用于用户端显示的数据,程序对WebForm进行处理,并根据Module封装的该模块的配置信息返回一个Page对象(本例中使用的是手动创建一个Page对象,也可以通过使用module.findPage("")方法来获取一个配置好的Page对象),告诉框架返回哪个页面。在程序中用到了WebForm的addResult方法,这个方法主要是用来添加要在客户端显示的数据。以这个程序为例,在执行了form.addResult("time",