Java领域的表现层的三种技术--jsp、freemarker、velocity

10月份忙碌的参加秋招并获得了5个成都、上海、广州等不同地区的工作offer,最终选择了广州,11月底来到公司实习,很快,就跟进了公司的项目了,原本以为可以和宣讲会时报的志愿一样——Java开发,但是到了公司,组长根据了团队的具体需求,先给了我做前端的任务,嗯,没事,虽然自己比较想做后端,但是前端在学校的时候也玩的比较多,难度不大,后面满满进入后端吧。

工具:很快拿到小组正在做的项目,em~,之前一直是用的eclipse,到了公司团队都是用IDEA,刚开始感觉用不惯,不过很快就发现了IDEA的魅力了~

项目:之前在学习的时候也用框架,SSM,但是发现很多公司都还在用SSH,嗯~好吧,都学咯

认识freemarker:部署号项目之后项目跑起来了,这时我打算从前端页面到后台到数据库的走通一个业务逻辑,额~公司项目的模块、包层次结构和在学校学习时不太一样,复杂了很多,不过都差不多了,这时我发现项目里居然没jsp或者是html,嗯?打开了view层,再打开.ftl文件,见到了很多标签,嗯~没错了,这就是页面,这时我才发现了除了jsp、还有freemarker,更还有velocity!嗯~好吧,在学校学太有限了~要加强自学能力啊!

因此在网上学习总结和记录了一下记录:

jsp
优点:
1、功能强大,可以写java代码
2、支持jsp标签(jsp tag)
3、支持表达式语言(el)
4、官方标准,用户群广,丰富的第三方jsp标签库
5、性能良好。jsp编译成class文件执行,有很好的性能表现
缺点:
由于可以编写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.宏定义比jsp tag方便
2.内置大量常用功能。比如html过滤,日期金额格式化等等,使用非常方便
3.支持jsp标签
4.可以实现严格的mvc分离

原文地址:https://www.cnblogs.com/ynhwl/p/10202221.html

时间: 2024-10-17 09:36:57

Java领域的表现层的三种技术--jsp、freemarker、velocity的相关文章

关于PHP、JAVA、.NET这三种技术的区别

关于PHP.JAVA..NET这三种技术的区别 一.语言: PHP:PHP产生与1994年,其语法混合了C.Java.Perl 和他自创的一些编程语法:PHP是嵌入在HTML中执行的:它也是一种解释性语言.早期的PHP并非完全的面向对象编程语言,到了PHP4以后的版本才开始有了面向对象的概念. JAVA:JAVA产生与1995年,JAVA语言和JAVA平台统称为JAVA:它语法与C语言和C++语言很接近,并且JAVA是面向对象编程语言,JAVA是编译性语言,可以先将JAVA源码编译成.class

java Data、String、Long三种日期类型之间的相互转换

java Data.String.Long三种日期类型之间的相互转换 // date类型转换为String类型 // formatType格式为yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 HH时mm分ss秒 // data Date类型的时间 public static String dateToString(Date data, String formatType) { return new SimpleDateFormat(formatType).format(data

Java中获取键盘输入值的三种方法

Java中获取键盘输入值的三种方法     Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧: 以下将列出几种方法: 方法一:从控制台接收一个字符,然后将其打印出来 import java.io.*; public static void main(String [] args) throws

java小知识点(一)---Java中获取键盘输入值的三种方法

Java中获取键盘输入值的三种方法   程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧:   以下将列出几种方法:   方法一:从控制台接收一个字符,然后将其打印出来   publicstatic void main(String [] args) throws IOException{   Sys

Stripes视图框架实现纯Java代码控制表现层参考文档

Stripes是一个开放源码的Web应用程序框架的基础上的模型 - 视图 - 控制器(MVC)模式.它的目的是通过使用Java技术,如在Java 1.5.x或以上版本中引入,实现"约定优于配置"的注解和泛型,它比Struts2框架更轻量.Stripes强调一组简单的约定整个框架的想法,减少配置的开销.在实践中,这意味着几乎没有Stripes的应用程序需要的任何配置文件,从而降低开发和维护工作. 1.Stripes特性 行动基于MVC框架 没有配置文件 POJO的 注解取代XML配置文件

Java反射获取class对象的三种方式,反射创建对象的两种方式

Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName 静态方法. 前提:已明确类的全路径名. 第二种,使用 .class 方法. 说明:仅适合在编译前就已经明确要操作的 Class 第三种,使用类对象的 getClass() 方法. 适合有对象示例的情况下 package com.reflection; /** * Created by Liuxd

ASP、JSP、PHP 三种技术比较

ASP.JSP.PHP 三种技术比较 目前,最常用的三种动态网页语言有ASP(Active Server Pages),JSP(JavaServer Pages),PHP (Hypertext Preprocessor). 简 介 : ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的.互动的.高性能的WEB服务应用程序.ASP采用脚本语言VBScript(Java script)作为自己的开发语言. PHP是一种跨平台的服务器端的嵌入式

源代码加密软件的三种技术 你了解多少?

所谓源代码加密软件是指以源代码文件为对象,采用数据泄露防护技术,有效防止源代码文件泄露和扩散,它主要起源于传统数据防泄密市场.到目前为止很多人对软件源代码加密技术的了解还不够深,随着技术不断升级软件源代码加密技术经历了传统透明加密技术.边缘沙盒防泄密技术以及革新DSA数据安全隔离数据等,接下来几维安全将为大家详细介绍这三种技术,一起去看看. 传统透明加密技术 透明加密技术典型代表即文档加密软件,其核心在于文档创建时即加密,并与用户.权限相结合.加密后,授权用户正常双击打开使用,非授权用户则显示为

Java利用 DES / 3DES / AES 这三种算法分别实现 对称加密

转载请注明出处:http://blog.csdn.net/smartbetter/article/details/54017759 有两句话是这么说的: 1)算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了. 2)编程就是算法和数据结构,算法和数据结构是编程的灵魂. 注意,这可不是我说的,是无数程序员总结的,话说的很实在也很精辟,若想长久可持续发展,多研究算法还是很有必要的,今天我给大家说说加密算法中的对称加密算法,并且这里将教会大家对称加密算法的编程使用.包含