【第22期】观点:IT 行业加班,到底有没有价值?

JSP与Freemarker和velocity的区别

原创 2016年05月31日 17:51:23

作为一个后端小白白,在公司大牛们的熏陶之下开始龟速学Java,之前只会html,css和js,根不就不知道后台与前台真正的交互是什么样的。因为之前做AngularJS的项目,直接通过一个url获取的数据,前后端完全分离。一直自以为现在的开发模式就是前端写页面,后台提供数据。看来真是Too young too naive.怪不得之前有个前辈说,前端就是一个做文案的。后端才是最强大的好嘛,既可以写功能,又可以写页面。貌似大多数人都是从后端转前端,看来我要逆流而上,从前端慢慢转后端了。想想就有些小激动呢!O(∩_∩)O哈哈哈~
在之前,前后端的耦合一直没有研究过,只是懵懵懂懂地知道一点freemarker/velocity,但是没怎么用过。今天一同事问我一个jsp里面的表单提交,只能一脸懵逼。虽然在他眼里跟原生js没啥区别,但在我看来还是跟原生js的表单提交还是有些区别的。
先看看JSP与freemarker和velocity的区别:
摘自:http://blog.csdn.net/tjcyjd/article/details/16803877
在java领域,表现层技术主要有三种: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
优点:
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分离
我的吐槽:
经历过模板引擎用velocity的项目(超级大)和一个freemarker作为模板引擎的项目,作为一个对后端一点都不懂的前端人员,用Eclipse起整个项目,每次都起了至少半天,就为了改一个样式。效率极低。
这两个虽然对比JSP,可以实现严格的MVC分离,但是这样的前端开发还是十分没有效率,并且很痛苦的。每到这个时候,就好怀念写Angular的日子。
接下来的项目,要用JSP了,这样接触了这三个不一样的表现层形式,全面了。还是很开心哒~
PS:一直很想自己做个网站,全套的那种。那么,努力做个全栈工程师吧!

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

浅谈jsp、freemarker、velocity区别

以前做web开发页面层用的基本就是就是,最近公司java项目页面层用的技术是velocity。听说jsp要淘汰,也不知道是真是假,但本人还是比较喜欢jsp的,下面是网上查找的javaweb项目页面3种...
  • tjcyjd
  • tjcyjd
  • 2013-11-18 13:51
  • 46399

velocity与jsp的区别

velocity与jsp的区别: velocity比jsp更优越:

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

JSP和模板引擎(如freemarker)的根本不同之处

今天翻到以前写的代码,突然忘记

Jsp和freemarker 的优劣

freemarker   优点:   1、不能编写java代码,可以实现严格的mvc分离   2、性能非常不错   3、对jsp标签支持良好   4、内置大量常用功能,使用非常方便   5...

深入剖析基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理

在阅读本篇博文前,建议有CAS知识储备,因为关于CAS的操作在ReetrantLock的实现原理中可是随处可见,如没有了解过CAS可以先看博主的另一篇博文【Java并发编程-无锁CAS与Unsafe类...

FreeMarker和JSP各自优缺点对比

在java领域,表现层技术主要有三种:jsp、freemarker、velocity。 jsp是大家最熟悉的技术 优点: 1、功能强大,可以写java代码 2、支持jsp标签(jsp ta...

spring+hibernate+freemarker+jQuery 登录注册例子

学习一个新内容时,会在往上找一些例子,但是,有些例子好像不完整,有的sql建表语句没有,有时候没有jar包,我感觉,对于初学者有很大障碍,所以,我先把项目的目录结构放出来,然后放上sql建表语句,最后...

freemarker+bootstrap

二、使用freemarker踩的一些坑     1、关于null值:freemarker对于null值得校验很严格,如果出现null值,而在页面中不进行判断,则会发生异常,通常情况下判断方式有两...
  • gnicky
  • gnicky
  • 2016-11-10 23:38
  • 1204

Freemarker和jquery tmpl模板同时引用是冲突解决

Freemarker中获取变量采用${ }的形式,在html渲染之前会对$ { }进行操作。jquery.tmpl.js是一种jquery的模板插件,也会用到${ }的形式,同时使用的过程中会产生冲突...

freemarker实现和原理

freemarker
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)