一:MVC与SpringMVC

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

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

之前:写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 指的是一组架构约束条件和原则。

  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依赖注入的方式,减少类之间的耦合度。

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架构,保证视图逻辑和业务逻辑分离。

Restful、Jersey和JAX-RS的更多相关文章

  1. 解决 jersey javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119)

    检查是否Jar冲突 保留一个jersey-server-*.jar

  2. 第四篇:用IntelliJ IDEA 搭建基于jersey的RESTful api

    编译器:Intellij IDEA 系统环境: MAC OS 相关技术:Maven.tomcat 7.jdk8 1.创建项目 首先创建一个web Application项目(这里我们打算用maven引 ...

  3. RESTful WebService 入门实例

      /* 新建MavenProject,使用以下代码,创建类和POM文件.使用命令行切换到Project根目录,运行mvn package(或者,选中pom.xml 文件右键单击 > run a ...

  4. 设计模式--Restful笔记(一)

    一.REST基础概念 首先REST是 Representational State Transfer 的缩写,如果一个架构符合REST原则,它就是RESTful架构. 在REST中的一切都被认为是一种 ...

  5. java各种框架的比较,分析

    Spring 框架 优点 1.提供了一种管理对象的方法,可以把中间层的对象有效地组织起来 2.采用了分层结构,可以增量引入到项目中. 3.代码测试较容易 4.非侵入性,应用程序对Spring API的 ...

  6. JAX-RS

    一.简介 JAX-RS(Java API for RESTful Web Services),是JAVAEE6中提出的Java 编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建W ...

  7. Java Web Services (0) - Overview

    前言第1章 Web服务快速入门 1.1 Web服务杂项 1.2 Web服务有什么好处 1.3 Web服务和面向服务的架构 1.4 Web服务简史 1.4.1 从DCE/RPC到XML-RPC 1.4. ...

  8. 调用链系列二、Zipkin 和 Brave 实现(springmvc、RestTemplate)服务调用跟踪

    Brave介绍 1.Brave简介 Brave 是用来装备 Java 程序的类库,提供了面向标准Servlet.Spring MVC.Http Client.JAX RS.Jersey.Resteas ...

  9. Zipkin和Brave实现http服务调用的跟踪

    使用Zipkin和Brave实现http服务调用的跟踪,Brave 是用来装备Java程序的类库,提供了面向标准Servlet.Spring MVC.Http Client.JAX RS.Jersey ...

  10. 原理分析dubbo分布式应用中使用zipkin做链路追踪

    zipkin是什么 Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司开 ...

随机推荐

  1. 51 Nod 1008 N的阶乘 mod P【Java大数乱搞】

    1008 N的阶乘 mod P 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %)   例如:n ...

  2. BZOJ 3670: [Noi2014]动物园【KMP变形 】

    3670: [Noi2014]动物园 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 2738  Solved: 1475[Submit][Status ...

  3. [bzoj2638] 黑白染色

    比较蛋疼的是我们可以先染个底色,再在底色上染别的东西. 由ccz大爷的题解可得..将目标状态里相同颜色的联通块缩点后,枚举起点,生成树里的最大节点深度就是需要的次数了, 如果最大深度是白色的话记得-1 ...

  4. Linux编译安装Mariadb数据库

    一.安装cmake cd /usr/local/src tar zxvf cmake-2.8.12.1.tar.gz cd cmake-2.8.12.1 ./configure 注意报错需要安装gcc ...

  5. Vue2反向代理

      前一段时间写了一个vue2的小项目,用的是vue-cli脚手架搭建的项目,项目里需要跨域,但又不能使用jsonp,上网查了一下,发现有一个之前没接触过的词语--反向代理. 什么是"反向代 ...

  6. mdb文件怎么打开

    (一)mdb格式的文件可以用MS Access打开编辑,也可以用Excel打开只能浏览. (二)mdb是什么文件格式  就像word的doc文件格式,mdb文件格式是Access数据库文件,微软Off ...

  7. Harris角点检测原理分析

    看到一篇从数学意义上讲解Harris角点检测很透彻的文章,转载自:http://blog.csdn.net/newthinker_wei/article/details/45603583 主要参考了: ...

  8. JVM核心之JVM运行和类加载全过程

    为什么研究类加载全过程? 有助于连接JVM运行过程 更深入了解java动态性(解热部署,动态加载),提高程序的灵活性 类加载机制 JVM把class文件加载到内存,并对数据进行校验.解析和初始化,最终 ...

  9. 静态html制作之psd转html

    很多时候我们开发拿到的是psd文件,这个时候如果公司有前端,会帮你制作成静态html, 很多小公司是没有这个配置的,所以只能业务开发的自己上马.可以有多种实现方式: 1.对于简单的切图,可以在线网站切 ...

  10. JavaSE-反射-获取类或者对象的四种方法

    1.使用Class类的静态方法Class.forName("xxxx"); 新建一个要想要获取的类 package org.burning.sport.javase.classlo ...