`
sabolasi
  • 浏览: 909793 次
文章分类
社区版块
存档分类
最新评论

Velocity技术调查

 
阅读更多
Velocity技术调查
模板引擎的设计思想最早由Webmacro提出,并被应用在一个著名的搜索引擎www.altavista.com上。后来,这种思想渐渐被Apache开发小组所采用,并作为一个子项目被提出来,这就是现在的Velocity
Velocity是什么?
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocityjava代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSPPHP之外又提供了一种可选的方案。
Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQLPostScriptXML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。
Velocity能为我们作什么?
你可能因为下面几种原因而使用 Velocity:
 1:它很容易集成在各种各样的程序领域中。
 2:它为网页制作人员提供了一种清晰而又简单的语法
3:因为模板和代码是分离的,所以你可以分别独立的开发和维护它们。  4:Velocity 引擎可以很容易的集成到一些 Java 运行环境,特别是  Servlet.
  5:Velocity 使得模板可以访问任何环境对象中的共有方法。
   Velocity 的强大之处在于它严格的区分程序开发功能的职责划分。 它限制模板可能访问的对象(也就是后台程序允许它得到的对象)来实现这一点。这意味着,网页设计人员可以只把精力放在数据的显示部分(View 视图)而程序员则只要关注如何写好程序的控制层(Controller,控制器)和商业逻辑和数据管理(模型 Model, 这就是 MVC 开发模式。MVC 现在已经是广泛接受的一种开发模式,它简化了开发和日益复杂的应用和维护工作。
例如:
 假设你是一家专门出售Mud的在线商店的页面设计人员,让我们暂且称它为“在线MUD商店”。你们的业务很旺,客户下了各种类型和数量的mud订单。他们都是通过输入用户名和密码后才登陆到你的网站,登陆后就允许他们查看订单并购买更多的mud。现在,一种非常流行的mud正在打折销售。另外有一些客户规律性的购买另外一种也在打折但是不是很流行的Bright Red Mud,由于购买的人并不多所以它被安置在页面的边缘。所有用户的信息都是被跟踪并存放于数据库中的,所以某天有一个问题可能会冒出来:为什么不使用velocity来使用户更好的浏览他们感兴趣的商品呢?
Velocity使得web页面的客户化工作非常容易。
Velocity的工作流程和原理
Velocity是一个源代码开放的Java模板引擎
简单地说,模板引擎的作用就是取得数据并加以处理,最后显示出数据。例如,假设有一个企业职工的清单,我们可以用模板引擎将它以HTML页面的形式显示在企业的Intranet上,或简化后显示在管理员的手机上。使用模板引擎的好处就在于开发者和设计者能够以最合适的方式操作和利用数据,Velocity就是一个模板引擎的绝佳范例。Velocity的英文含义是“速度、流通速度、速率;迅速,快速”,也许它的作者希望Velocity能够提高人们开发Web应用的速度吧。
Velocity应用于一个application program a servlet,你通常将做下面的事情
1. 初始化Velocity
2. 创建Context对象
3. 添加数据到Context
4. 选择模板
5.合并模板和你的数据产生输出页面
Incode
Usingthe singleton pattern via the org.apache.velocity.app.Velocity class, this looks like
importjava.io.StringWriter;
importorg.apache.velocity.VelocityContext;
importorg.apache.velocity.Template;
importorg.apache.velocity.app.Velocity;
importorg.apache.velocity.exception.ResourceNotFoundException;
importorg.apache.velocity.exception.ParseErrorException;
importorg.apache.velocity.exception.MethodInvocationException;
Velocity.init();
VelocityContextcontext
=newVelocityContext();
context.put(
"name",newString("Velocity"));
Templatetemplate
=null;
try...{
template
=Velocity.getTemplate("mytemplate.vm");
}

catch(ResourceNotFoundExceptionrnfe)
...{//couldn'tfindthetemplate}
catch(ParseErrorExceptionpee)
...{//syntaxerror:problemparsingthetemplate}catch(MethodInvocationExceptionmie)
...{//somethinginvokedinthetemplate//threwanexception}catch(Exceptione)
...{}
StringWritersw
=newStringWriter();
template.merge(context,sw);
Velocity的国际化
Velocity本身支持模版的国际化编码转换,看看Velocity提供的方法:
Public Template getTemplate (Stirng template, String encoding),
另外,Velocity的tools: MessageTool,提供了变量text包含国际化标签,这样只需要简单的编写标签代码即可,如:$text.get(‘title’).
VelocityFramework的支持
1. Velocity Tools / VelocityViewServlet
Servlet的支持,使用VelocityViewServlet来代替Servlet.
2. Velocity Tools / VelocityStruts
Struts的支持.
3. Third party frameworks
对第三方框架的支持,比如:Spring,Turbine.
Velocity的优点和缺点
充分体现MVC的核心思想,即:功能模块化。HTML技术和复杂的业务逻辑拆分.Velocity的优点就在于其简单的模板语法以及成功实现对内容和显示方式的分离。有了Velocity,开发者可以专注于程序代码,设计者可以专注于页面的布局和视觉效果,不必再担心要在模板中嵌入各种程序代码。与传统的用JSPPHP构造页面的方式相比,这显然是一大进步。在传统的JSPPHP页面中,程序逻辑嵌入到Web页面中,从而为理解和维护Web页面带来很大的麻烦。Velocity模板引擎成功地解决了这一问题。
Velocity的主要缺点是在于异常处理以及日志上。
Velocity总结
  Velocity 解决了如何在 Servlet 和 网页之间传递数据的问题,当然这种传输数据的机制是在 MVC 模式上进行的,也就是View 和 Modle , Controller 之间相互独立工作,一方的修改不影响其他方变动,他们之间是通过环境变量(Context)来实现的,当然双方网页制作一方和后台程序一方要相互约定好对所传递变量的命名约定,比如上个程序例子中的 site, name 变量,它们在网页上就是 $name ,$site 。 这样只要双方约定好了变量名字,那么双方就可以独立工作了。无论页面如何变化,只要变量名不变,那么后台程序就无需改动,前台网页也可以任意由网页制作人员修改。这就是 Velocity 的工作原理。
你会发现简单变量名通常无法满足网页制作显示数据的需要,比如我们经常会循环显示一些数据集,或者是根据一些数据的值来决定如何显示下一步的数据, Velocity 同样提供了循环,判断的简单语法以满足网页制作的需要。Velocity 提供了一个简单的模板语言以供前端网页制作人员使用,这个模板语言足够简单(大部分懂得javascript的人就可以很快掌握,其实它比 javascript 要简单的多),当然这种简单是刻意的,因为它不需要它什么都能做, View 层其实不应该包含更多的逻辑,Velocity 的简单模板语法可以满足你所有对页面显示逻辑的需要,这通常已经足够了,这里不会发生象 jsp 那样因为一个无限循环语句而毁掉系统的情况,jsp 能做很多事情,Sun 在制定 Jsp 1.0 标准的时候,没有及时的限定程序员在 jsp 插入代码逻辑,使得早期的jsp 代码更象是 php 代码,它虽然强大,但是对显示层逻辑来说,并不必要,而且会使 MVC 三层的逻辑结构发生混淆。
分享到:
评论

相关推荐

    大数据技术及应用题库.doc

    A、价值密度低 B、处理速度快 C、数据类型繁多 D、数据体量巨大 20大数据的4V特征中的Velocity是指(B)。 A、价值密度低 B、处理速度快 C、数据类型繁多 D、数据体量巨大 21下列关于大数据的分析理念的说法中,错误...

    Spring+JPA+Velocity+Ehcache 商城系统是采用Java语言开发的多用户商城系统.zip

    ,使用Spring+JPA+Velocity+Ehcache作为基础开发架构,应用SpringSecurity框架管理系统权限,结合URL重写技术静态化商城前台页面。 毕业设计是高等教育阶段学生在完成学业前所进行的一项重要学术任务,旨在检验学生...

    浅谈大数据技术.docx

    据咨询机构IDC的调查调查报告显示,企业中80%的数据都是非结构化数据,这些数据每年都按指数增长60%。 3.处理速度快(Velocity) 大数据往往以数据流的形式动态、快速地产生,具有很强的时效性,用户只有把握好对...

    大数据调研报告(多篇).docx

    恰逢此时,CSDN专门针对企业相关人员进行了大规模问卷调研,并在数千份的调查报告中总结出现今企业大数据业务的现状。在此我们也将调研结果展示与此以供大家参考。 大数据时代的数据格式特性 首先让我们先来了解一下...

    大数据54720.doc

    (在维克托·迈尔- 舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查) 这样的捷径,而采用所有数据的方法)大数据的4V特点:Volume(大量)、Velocity( 高速)、Variety(多样)、...

    剖析大数据.docx

    最为广泛流传的对大数据的解释莫过于4 个V——海量的数据规模(Volume)、快速的数据流转和动态的数据体系(Velocity)、多样的数据类型(Variety)和巨大的数据价值(Value),而这恰恰是当前社会对数据的需求组成...

    大数据概念及应用.docx

    (在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样的捷径,而采用所有数据的方法来分析的巨量数据)。 大数据的4V特点:Volume(大量)、Velocity(高速)、...

    大数据使用及现状调研报告.pdf

    ⼤数据使⽤及现状调研报告 ⼤数据使⽤及现状调研报告 ⼤数据使⽤及现状调研报告 ⼤数据,指⽆法在⼀定时间范围内⽤常规软件⼯具进⾏捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策⼒、洞察发 现⼒...

    大数据与NOSql概述.pptx

    信息技术部 大数据与NOSql概述 (2016年12月18日) 大数据与NOSql概述全文共23页,当前为第1页。 主要内容 大数据概述 大数据的定义 大数据的4V特征 大数据的系统要求 大数据的典型架构 大数据的应用 大数据的发展 ...

    大数据+深度学习.docx

    这一调查由调研机构 Vanson Bourne 在今年 4 月份进行,跨行业调查了组织领导者对大数据分析和商业中的风险、挑战和机遇的看法。该调查的目的在于揭示最新的机会和见解,以帮助你从今天的海量数据中获得最大价值。 ...

    BI与大数据区别.docx

    在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》 中大数据指不用随机分析法(抽样调查)这样的捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、...

    大数据应用实例分析.doc

    (在维克托·迈尔- 舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中,大数据指不用随机分析法(抽样调查 )这样的捷径,而采用所有数据的方法) 对于"大数据"(Big data),研究机构Gartner给出了这样的定义。...

    大数据与精准营销.docx

    IDC 这样描述大数据:大数据技术是新一代的技术与架构,它被设计用于在成本可承受的条件下,通过非常快速(velocity) 的采集、发现和分析,从大体量(volumes)、多类别(variety) 的数据中提取价值。 IDC 的定义描述了...

    大数据研究综述.docx

    为此,本文从大数据若干个版本的概念出发,调查分析了大数 据的研究和应用现状,重点分析了当前主流的大数据处理工具 和技术,最后预测了大数据未来的几个研究和发展方向。 大数据研究综述全文共11页,当前为第3页。 ...

    大数据在交通中的应用——gps数据.pdf

    传统的调查 已不适合,出租车为最初一批的普及应用者,已经积累了大量的 各方面数据,利用出租车GPS数据进行研究调査多方面特点。 在童晓君的硕士论文,利用GPS数据研究了居民出行特 征,分析了居民每天的总行程数、...

    大数据的四大特征.pdf

    国际数据公司(IDC)从⼤数据的四个特征来定义,即海量的数据规模(Volume)、快速的数据流转和动态的数据体系 (Velocity)、多样的数据类型(Variety)、巨⼤的数据价值(Value)。 亚马逊(全球最⼤的电⼦商务...

    高中生对于大数据发展的思考——我眼中的大数据.docx

    我们的不再局限在抽样调查,而是覆盖对象的全体,能够在对事物的分析中发现更多的可能性和相关性。大数据的"量变"引发了人类进行分析和思考的核心层面上的"质变"。 2、不是精确性,而是混杂性 在庞大的数据体量面前...

    大数据与伦理.pdf

    在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《⼤数据时代》 中⼤数据指不⽤随机分析法(抽样调查)这样捷径,⽽采⽤所有数据进 ⾏分析处理。⼤数据的5V特点(IBM提出):Volume(⼤量)、Velocity(⾼速)、...

    大数据时代电子商务的机遇与挑战.docx

    四、大数据时代电子商务发展的机遇 (一)千人千面——个性化推荐 在传统模式中,企业往往根据一两千人的调研统计制定出针对几万甚至上百万消费者的"千人一面"的推广策略,具体的结果如何往往要试错之后才知道。...

    大数据.docx

    在一份2001年的研究与相关的演讲中,麦塔集团(META Group,现为高德纳)分析员道格·莱尼(Doug Laney)指出数据增长的挑战和机遇有三个方向:量(Volume,数据大小)、速(Velocity,数据输入输出的速度)与多变...

Global site tag (gtag.js) - Google Analytics