freemarker(什么是FreeMarker)
本文目录
什么是FreeMarker
它是一个Java package,面向Java程序员的class library。它本身并不是针对最终用户的应用,而是允许程序员将其嵌入到他们的产品中。 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC(Model View Controller)模式的应用程序。使用 MVC 模式作为动态的WEB页面的想法,是为了分隔页面设计者 (HTML 设计者) 和程序员。.每个人做自己擅长的那一部分。设计者可以不通过程序员的改变或修改代码来改变网页的样子,因为应用逻辑(Java程序)和页面设计(FreeMarker 模版)是分开的。模板不会被复杂繁琐的程序框架所 破坏。即使当一个项目的程序员和 HIMTL页面的制作者是同一个人时,这种分隔也是很有用,因为这样有助于保持应用的清晰并易于维护。 尽管FreeMarker有一些编程的能力,但它并不是一个象PHP那样的成熟的编程语言。与Java不同的是,Java程序准备用来显示的数据(如 SQL queries) ,而Freemarker仅是生成文本页,这个文本页显示用于模板的预备数据。 FreeMarker不是一个Web应用框架,而更适合充当Web应用框架里的一个组件的角色,但FreeMarker引擎本身对HTTP或servlets并不关心,它仅仅是生成文本。在非Web应用环境中它同样能够展示完美的用途。然而值得注意的是:我们为使用FreeMarker提供了方便的解决方案,作为Model2框架(如Struts)的视图组件,你也可以在模版中使用JSP标签。 FreeMarker是免费的,有 BSD-style license Servlet运行于Java-enabled Web Server中。 Java Servlet 可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务。 最早支持Servlet技术的是JavaSoft的Java Web Server 。此后,一些其它的基于Java的Web Server开始支持标准的
“freemarker“和“jsp“的不同
“freemarker“和“jsp“的区别和联系有:
一、jsp
优点:
1、功能强大,可以写java代码
2、支持jsp标签(jsp tag)
3、支持表达式语言(el)
4、官方标准,用户群广,丰富的第三方jsp标签库
5、性能良好。jsp编译成class文件执行,有很好的性能表现
缺点:
jsp没有明显缺点,非要挑点骨头那就是,由于可以编写java代码,如使用不当容易破坏mvc结构。
二、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分离
spring boot 项目 一般选择前后端分离好还是整合freemarker
并没有好与不好,只有合适与不合适;你要看你的项目的应用场景,开展的具体业务类型;是小型项目,还是一定规模的项目,是你自己开发,还是组团开发,前端业务多不多,前端内容很大或者需要多端同时开发的,或者正好熟悉Vue脚手架之类的开发的话,可以考虑采用前后端分离开发;项目比较简单,或者前端内容不复杂,或者小项目自己一个人撸起来的,不分离的就可以了,当然你可以可以分离开发。
更多文章:

服务器安全狗防护验证页面(手机UC浏览器一直跳到服务器安全狗防护页面怎么办)
2025年3月22日 06:50

iframe滚动事件(iframe滚动条跟div滚动条怎么实现 联动)
2025年4月1日 16:50

systempause用法(求DEV C++ 中,关于system(“PAUSE”)这个函数的用法及专业点的解释)
2025年2月24日 14:30

数据库查询成绩排名前三(数据库考试查询微观经济学成绩前三名的学生信息,那个前三名怎么设置,急求)
2025年4月3日 05:30

driverstore是什么文件夹(win7系统system32文件夹下的DriverStore)
2025年3月28日 18:30

messagebox什么意思(vfp,请问=messagebox与messagebox的区别)
2025年2月25日 05:20

cocos教程(如何在Windows 7平台搭建Android Cocos2d-x3.0开发环境)
2025年3月8日 23:00

腾讯云域名购买(腾讯云购买的域名,可以用于其他主机吗怎么做)
2025年2月9日 19:20

css margin是什么意思(在CSS中*{margin:0;padding:0;}是什么意思)
2025年3月6日 22:50

licensekey(enter license key是什么意思)
2025年4月3日 04:00

图书馆管理系统用例图(面向对象UML作业 菜鸟级 很急 图书馆管理系统 用例图 类图 顺序图 状态图)
2025年3月6日 02:40

without doubt(beyond doubt和without doubt都是毫无疑问的意思,两者使用上有没有区别)
2025年2月28日 08:20