FreeMarker的优点和缺点
源:
⼀、 FreeMarker简介 FreeMarker是⼀个⽤Java语⾔编写的模板引擎,它基于模板来⽣成⽂本输出。所谓模板,就是⼀份已经写好了基本内容,有着固定格式的⽂档,其中空出或者⽤占位符标识的内容,由使⽤者来填充,不同的使⽤者给出的数据是不同的。在模板中的占位符,在模板运⾏时,由模板引擎来解析模板,并采⽤动态数据替换占位符部分的内容。 FreeMarker与Web容器⽆关,即在Web运⾏时,它并不知道Servlet或HTTP。它不仅可以⽤作表现层的实现技术,⽽且还可以⽤于⽣成XML,JSP或Java ⽂等。
⼆、 FreeMarker的优点和缺点 (⼀) FreeMarker的优点 1.使⽤FreeMarker的优点之⼀,可以彻底的分离表现层和业务逻辑。使⽤JSP 开发过程中在页⾯中⼤量的存在业务逻辑的代码,使得页⾯内容凌乱,在后期⼤量的修改维护过程中就变得⾮常困难。 FreeMarker根本不⽀持Java脚本代码。 FreeMarker的原理就是:模板+数据模型=输出,模板只负责数据在页⾯中的表现,不涉及任何的逻辑代码,⽽所有的逻辑都是由数据模型来处理的。⽤户最终看到的输出是模板和数据模型合并后创建的。
2.使⽤FreeMarker的优点之⼆,可以提⾼开发效率。在我们以往的开发中,使⽤的都是JSP 页⾯来展⽰数据的,即所谓的表现层。我们都知道,JSP在第⼀次执⾏的时候需要转换成Servlet类,开发阶段进⾏功能调适时,需要频繁的修改JSP,每次修改都要编译和转换,那么试想⼀天中我们浪费在程序编译的时间有
多少。相对于JSP来说,FreeMarker模板技术不存在编译和转换的问题,所以就不会存在上述问题。⽽且开发过程中,我们在不必在等待界⾯设计开发⼈员完成页⾯原形后,我们再来开发程序。
3.使⽤FreeMarker的优点之三,使得开发过程中的⼈员分⼯更加明确。以往⽤JSP展现数据时,作为程序员的我们,并不熟悉界⾯设计技术,反之界⾯开发⼈员,也并不熟悉程序语⾔。对两者⽽⾔,交替性的⼯作本⾝就有难度。有时候稍有不慎,可能会将某个页⾯元素删除或去掉了某个程序符号,使得页⾯⾛样或程序错误,这样就需要双⽅相互沟通协作,解决出现的问题。有时候因为项⽬中的时间,任务量等因素的存在,可能这个⼯作就由⼀个⼈来完成,这样就可能加⼤某⼀⽅开发⼈员的⼯作量。使⽤FreeMarker后,作为界⾯开发⼈员,只专⼼创建HTML⽂件、图像以及Web页⾯的其他可视化⽅⾯,不⽤理会数据;⽽程序开发⼈员则专注于系统实现,负责为页⾯准备要显⽰的数据。
(⼆)FreeMarker的缺点 1.使⽤FreeMarker的缺点之⼀,应⽤FreeMarker模板技术,在修改模板后,可能会看到已经过期的数据。如:⽣成静态的HTML页⾯后,如果⼀旦模板改变,⽽没有及时更新模板⽣成的HTML页⾯的话,⽤户看到的就是过期的数据。 2.使⽤FreeMarker的缺点之⼆,FreeMarker模板技术在应⽤过程中,FreeMarker中的变量必须要赋值,如果不赋值,那么就会抛出异常。想避免错误就要应⽤
if/elseif/else 指令进⾏判段,如果对每⼀个变量都判断的话,那么则反⽽增加了编程的⿇烦。 3.使⽤FreeMarker的缺点之三,FreeMarker的map限定key必须是string,其他数据类型⽆法操作
4.使⽤FreeMarker的缺点之四,FreeMarker不⽀持集应⽤。为了编成的⽅便性,把序列化的东西都放到了Session中,如
Session,request等,在开发的过程中确实⽅便,但如果将应⽤放到集中,就会出现错误。
jsp、freemarker、velocity优点与缺点
jsp是⼤家最熟悉的技术
优点:
1、功能强⼤,可以写java代码
2、⽀持jsp标签(jsp tag)
3、⽀持表达式语⾔(el)
4、官⽅标准,⽤户⼴,丰富的第三⽅jsp标签库
5、性能良好。jsp编译成class⽂件执⾏,有很好的性能表现
缺点:
jsp没有明显缺点,⾮要挑点⾻头那就是,由于可以编写java代码,如使⽤不当容易破坏mvc结构。
velocity是较早出现的⽤于代替jsp的模板语⾔
优点:
1、不能编写java代码,可以实现严格的mvc分离
2、性能良好,据说⽐jsp性能还要好些
3、使⽤表达式语⾔,据说jsp的表达式语⾔就是学velocity的
缺点:
1、不是官⽅标准
2、⽤户体和第三⽅标签库没有jsp多。
3、对jsp标签⽀持不够好
freemarker
jsp编译过程优点:
1、不能编写java代码,可以实现严格的mvc分离
2、性能⾮常不错
3、对jsp标签⽀持良好
4、内置⼤量常⽤功能,使⽤⾮常⽅便
5、宏定义(类似jsp标签)⾮常⽅便
6、使⽤表达式语⾔
缺点:
1、不是官⽅标准
2、⽤户体和第三⽅标签库没有jsp多
选择freemarker的原因:
1、性能。velocity应该是最好的,其次是jsp,普通的页⾯freemarker性能最差(虽然只是⼏毫秒到⼗⼏毫秒的差距)。但是在复杂页⾯上
(包含⼤量判断、⽇期⾦额格式化)的页⾯上,freemarker的性能⽐使⽤tag和el的jsp好。
2、宏定义⽐jsp tag⽅便
3、内置⼤量常⽤功能。⽐如html过滤,⽇期⾦额格式化等等,使⽤⾮常⽅便
4、⽀持jsp标签
5、可以实现严格的mvc分离
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论