MVC:是一种思想,是一种设计模式html
SpringMVC:是一个框架,实现了MVC这种思想。java
以前:写JSP页面,比较繁琐。eg:在页面显示用户列表,咱们会在JSP页面,使用<foreach>标签,循环输出全部User对象。此时JSP页面,和Model实体类混合在一块儿,没有进行分离出来。无法写js程序员
而使用SpringMVC后,能够将View和Model分离,能够单独返回页面,也能够setAttribute()设置数据,在前台页面,能够经过js将数据渲染出来。设计模式
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 CXF, Restlet(最先的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是一款模板引擎,是一个Java类库,是一款程序员能够嵌入他们所开发产品的组件。
该模板引擎专门用来解析文件的。固然不单单是解析ftl格式的文件,也能够是xml,rtf文件等,咱们能够理解为freemarker是一种网页展示技术。
freemarker的文件通常后缀是ftl,能够解析HTML、xml等文件。能够将html,xml等文件内容写在ftl文件中,就表示要使用freemarker技术来对html、xml文件进行解析它。
FreeMarker Template Language(FTL),属于简单、专用的语言。
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缓存文件的形式返回到页面显示。