轻量级java web实践-2(简单示例)

一、满足第一个条件,足够小,所以要引用足够少的jar包。如下:

         轻量IOC支持

  gunice-3.0.jar
  javax.inject.jar

 

日志组件

logback-core-1.0.7.jar
logback-classic-1.0.7.jar
slf4j-api-1.6.6.jar
commons-logging-1.1.jar

 

模板引擎

velocity-1.7.jar
velocity-tools-2.0.jar

 

数据库相关

mysql-connector-java-5.1.26-bin.jar
c3p0-0.9.1.2.jar
commons-dbutils-1.5.jar

 

缓存

ehcache-core-2.6.2.jar

 

公共

commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-configuration-1.6.jar
commons-fileupload-1.2.2.jar
commons-io-2.4.jar
commons-lang-2.6.jar

 

总大小 6.7M

 

二、优雅URL,等下见示例

三、美工输出的东西完全重用,使用Velocity模板,完全没问题

四、开发高效,一天上线不是神话,见下面示例

打开Eclipse,新建了一个java web工程,加入美工输出的内容

美工输出大概包括这些内容:

css/xxx.css

js/xxx.js

images/xxx.png

及html文件,这些文件应该是UTF-8编码的,直接拷到webRoot下。

web.xml片断

    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>
            org.apache.catalina.filters.SetCharacterEncodingFilter
        </filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>ignore</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>dispatcher</filter-name>
        <filter-class>org.express.portal.DispatcherFilter</filter-class>
        <init-param>
            <param-name>container</param-name>
            <param-value>Guice</param-value>
        </init-param>
        <init-param>
            <param-name>maxFileSize</param-name>
            <param-value>104857600</param-value>
        </init-param>
        <init-param>
            <param-name>modules</param-name>
            <param-value>com.maca.portal.PortalModule,com.maca.portal.ZhModule</param-value>
        </init-param>
        <init-param>
            <param-name>template</param-name>
            <param-value>Velocity</param-value>
        </init-param>
    </filter>


portalModule.java片断

import com.google.inject.Binder;
import com.google.inject.Module;

public class PortalModule implements Module
{

    @Override
    public void configure(Binder binder)
    {
        binder.bind(Portal.class).asEagerSingleton();
    }

}

下面这个Protal.java,你的代码全在这里,片断

    @Mapping("/products-organic-super-foods/maca")
    public Renderer maca()
    {
        //需要带到页面渲染的数据
        Map<String,Object> model = new HashMap<String,Object>();
        try
        {
            //这里写逻辑
        }
        catch(Exception e)
        {
            log.error("",e);
        }
        return new TemplateRenderer("/maca.html","model",model);
    }


上面是简单示例,还有基础架构代码74个java文件,后面一并奉上。

你可能感兴趣的:(java,Web,轻量级实践)