Restful、Jersey和JAX-RS

 一:MVC与SpringMVC

MVC:是一种思想,是一种设计模式html

SpringMVC:是一个框架,实现了MVC这种思想。java

以前:写JSP页面,比较繁琐。eg:在页面显示用户列表,咱们会在JSP页面,使用<foreach>标签,循环输出全部User对象。此时JSP页面,和Model实体类混合在一块儿,没有进行分离出来。无法写js程序员

而使用SpringMVC后,能够将View和Model分离,能够单独返回页面,也能够setAttribute()设置数据,在前台页面,能够经过js将数据渲染出来。设计模式

 

 二:Restful、Jersey和JAX-RS

restful:是一种风格,能够惟一将网络上的资源表示出来。经过http://ip:port/xiangmu/url,经过协议,ip,端口,项目,url惟一表示一个资源。缓存

  REST 指的是一组架构约束条件和原则。restful

  REST的目的是便于不一样软件/程序在网络(例如互联网)中互相传递信息。约定大于配置,有了统一的规范,你们在接口设计时可以保证理解的一致性。网络

JAX-RS:Java API for RESTful Web Services,是java的一个小框架,实现了restful风格,将网络上的资源惟一的标识出来。架构

  JAX-RS提供了一些注解将一个资源类,一个POJO Java类,封装为Web资源。框架

  JAX-RS和全部JAVA EE的技术同样,只提供了技术标准,容许各个厂家有本身的实现版本,实现版本有:RESTEasy(JBoss), Jersey(Sun提供的参考实现), Apache CXFRestlet(最先的REST框架,先于JAX-RS出现), Apache Wink。JAX-RS基于JavaEE的Servlet。标准中定义的注解大大简化资源位置和参数的描述,仅仅使用注解就能够将一个POJO java类封装成一个Web资源。JAX-RS也有相似于Spring依赖注入的方式,减小类之间的耦合度。jsp

Jersey:是一个框架,实现了restful风格,相似于SpringMVC实现了MVC设计思想。

  Jersey框架中,会用到java中JAX-RS框架的一些注解,同时它又有它本身所独有的技术。

 

三:FreeMarker

  FreeMarker是一款模板引擎,是一个Java类库,是一款程序员能够嵌入他们所开发产品的组件。

  该模板引擎专门用来解析文件的。固然不单单是解析ftl格式的文件,也能够是xml,rtf文件等,咱们能够理解为freemarker是一种网页展示技术。

  freemarker的文件通常后缀是ftl,能够解析HTML、xml等文件。能够将html,xml等文件内容写在ftl文件中,就表示要使用freemarker技术来对html、xml文件进行解析它。

  FreeMarker Template Language(FTL),属于简单、专用的语言。

以解析html为例:

1.ftl文件中:能够写html,能够写指令,包括<#if>、<#list>、${}等来获取值。eg:${latestProduct.url}"

2..在装载网页的时候,Freemarker模板自动从数据模型中提取数据,并解释整个网页为咱们熟知的HTML页面。

3.ftl文件,是Freemarker模板的文件后缀名。ftl文件会有对应的html缓存文件,解析的时候,会去查找对应的html文件。freemarker引擎会解析ftl格式的文件,最终以html的格式返回到页面,就相似与jsp文件最终会解析为html代码,以流的方式返回到页面。

  jsp文件,本质也是一个servlet文件,返回数据的时候,拼接html代码,<tbody>、<tr>等方式,最后解析,经过二进制流的方式输出到页面中去。 这点和ftl文件很类似,jsp是转换为out流的形式输出内容,而ftl文件是最中转换为html缓存文件的形式返回到页面显示。

总结

  简单的说,FreeMarker就是一种用Java编写的模板引擎,它根据模板输出多种规格的文本。特别指出的是,FreeMarker与Web应用框架无关,它一样能够应用在非Web应用程序环境中,并且,FreeMarker并非只能生成HTML页面,它也能够生成各类文本,如XML/RTF/Java源代码等。
  Freemarker是一个很是优秀的模版引擎,这个模版引擎可用于任何场景,FreeMarker负责将数据模型中的数据合并到模版中,从而生成标准输出。
  FreeMarker特别适应与MVC模式的Web应用,一般有Java程序准备要显示的数据,由FreeMarker模版引擎来生成页面,而FreeMarker模版则提供页面布局支持,从而能更好地规范MVC架构,保证视图逻辑和业务逻辑分离。
相关文章
相关标签/搜索