• Easy Web Development Framework for Java


    eweb4j - Easy Web Development Framework For Java - Google Project Hosting

    Easy Web Development Framework for Java

    eweb4j 是一款基于servlet/jdbc构建的轻量级web开发框架,它不仅融合了SSH的核心优点(全栈式),而且提供诸如模块化、热加载、多数据源、RESTful等非常吸引人的特性。
    它小巧灵活,并且遵守约定优于配置的原则。使用它进行java web开发将让您品尝到轻松快乐的编程感受。

    特性列表

    • 超级轻量级,纯POJO式开发,无继承、无接口绑定
    • 约定优于配置,配置覆盖约定
    • Full-Stack
    • RESTful (兼容JAX-RS 部分实现)
    • MVC (URI-Mapping/上传下载/验证器/拦截器/JSP、Json、Xml、FreeMarker 视图 ...)
    • Simple IOC (setter注入,构造器注入,@Ioc注解注入)
    • ActiveRecord支持
    • ORM (部分兼容JPA注解/生成建表脚本文件)也支持XML配置
    • DAO (DAOFactory->InsertDAO/UpdateDAO/DeleteDAO/DivPageDAO/SearchDAO/DAO)
    • JDBC模板
    • 事务模板,可以嵌套事务
    • 配置文件支持 (key-value)
    • 国际化支持
    • 日志支持
    • MVC\ORM\IOC支持灵活开闭
    • 同步发布一个在线演示项目SolidBase
    • 有关SolidBase项目可以到此了解
    • 最新的SolidBase项目源码在这里
    • SolidBase会不断的修补bug,也会添加一些新特性,请关注

    Quick Start

    • 如果使用Maven的话,请在pom.xml添加下面这段依赖
    • <dependency>
        <groupId>org.eweb4j</groupId>
        <artifactId>eweb4j-all</artifactId>
        <version>1.9</version>
      </dependency>
    • 在${WebRoot}/WEB-INF/web.xml中添加一个filter
    • <filter>
          <filter-name>eweb4j-filter</filter-name>
          <filter-class>org.eweb4j.mvc.EWebFilter</filter-class>
      </filter>
      <filter-mapping>
          <filter-name>eweb4j-filter</filter-name>
          <url-pattern>/*</url-pattern>
      </filter-mapping>
    • 注意,这个filter里面启动了框架,如果不需要用到mvc,也就是说不需要做web这块的话,只想使用orm和ioc,可以把mvc关闭,然后在代码里通过下面这段来启动框架:
    • /*
        完全可以到处start,呵呵,不会重复启动的。
        不过决定于你的配置。在start.xml里配置
      */
      String err = EWeb4JConfig.start();
      if (err == null){
          //框架启动成功
          DAOFactory.getXXXDAO.doXXX//可以做数据库操作
          IOC.getBean("BEAN_ID")//可以通过IOC取出对象
          Map message = Props.getMap("PROP_ID")//可以获取某个properties文件的键值对配置信息
          message.get("key");//自动识别支持国际化
          String val = Props.get("key")//全局的配置
      }else{
          //框架启动失败,失败原因是:err
      }
    • 新建一个包:org.eweb4j.hello
    • 在该包新建一个 HelloWorldAction.java
    • package org.eweb4j.hello;
      
      public class HelloWorldAction {
      
              public String doHelloWorld(){
                      
                      return "Hello World !";
              }
      
      }
    • 然后编译,部署到tomcat中,接着启动tomcat,打开浏览器输入:
    • http://localhost:{port}/{your_context}/hello-world
    • 第一次打开的时候,框架因为需要初始化配置文件,因此会提醒一个错误,该错误会在页面显示出来,不需要担心,这时候,您所需要做的就是按一下刷新键,接下来便能看到传说中的:
    • Hello World !

    社区支持

    关于作者

    开发指南

    请移步wiki


    版本记录

    版本 1.9

    • MVC控制器增加文件上传下载的支持,只需要声明File对象即可完成。
    • ORM增加生成建表Sql文件的支持。无需额外配置工作。
    • 几个DAO增加对Map的支持,使用map可以不需要写model类
    • MVC增加8个默认action,约定视图和URI-Mapping
    • 控制器属性若提供getter方法,则会作为视图渲染的一个数据模型。类似Struts2的ModelDriven但不需要继承来获得。
    • 除了使用属性getter方法作为视图模型数据外,还可以在Action方法参数里声明一个没有任何注解的Map model,它可可以作为视图模型数据,往里面放数据就相当于request.setAttribute一样的效果。
    • 改善Action跳转:return "action:xxx",之前是使用response.sendRedirect来实现的,但是这样的方式使得HTTP请求只能是GET方式的,如果要重定向到一个HTTP方法为POST或者PUT或者DELETE话,显然这样是无法满足需求的。于是,对 return "action:xxx"的处理方式改成:
    • return "action:xxx@PUT?name=weiwei&age=5";
      //符号@只能出现一次,框架不再采用response.sendRedirect的方式来处理,而是构建一个form表单:
      
      <form id="form_id" action="xxx" method="post">
        <input type="hidden" name="_method" value="PUT" />
        <input name="name" value="weiwei" />
        <input name="age" value="5" />
        <input type="submit" />
      </form>
      
      <script>document.getElementById('form_id').submit();</script>
      
      //然后使用response.getWriter().print打印上面这段内容,从而实现模拟客户端的请求,这样就支持GET之外的请求了,还可以带参数。
      
      PS:如果指定的Action依然是GET的,则会采用redirect的方式执行,而不是表单的形式
    • 将所有Sql的 "select ※" 修改为 "select xxx,xxx,xxx"
    • Action方法名支持新的约定格式:
    • doUri1BindIdAndNameJoinUri2AtPostOrGetOrPutOrDelete
  • 相关阅读:
    BZOJ 2818: Gcd
    BZOJ 4816: [Sdoi2017]数字表格
    BZOJ 2301: [HAOI2011]Problem b
    BZOJ 2440: [中山市选2011]完全平方数
    BZOJ 2705: [SDOI2012]Longge的问题
    BZOJ 3992: [SDOI2015]序列统计
    BZOJ 3529: [Sdoi2014]数表
    AC日记——小A的糖果 洛谷七月月赛
    AC日记——「HNOI2017」礼物 LiBreOJ 2020
    AC日记——[Hnoi2017]影魔 bzoj 4826
  • 原文地址:https://www.cnblogs.com/lexus/p/2582628.html
Copyright © 2020-2023  润新知