JSP和JSF之间的区别是什么?

更新日期: 2019-03-24阅读: 2.1k标签: java

JSP和JSF这两种技术都基于Java,主要用于基于Web的应用程序。那么它们之间有什么区别?下面本篇文章就来给大家简单比较一下JSP和JSF,介绍JSP和JSF之间的区别有哪些,希望对大家有所帮助。


什么是JSP?

JSP代表JavaServer Pages,是一种用于创建支持动态内容的Web页面的技术;开发人员可以通过使用特定的JSP标记将Java代码嵌入到html页面中,这可以帮助开发人员使用HTML,XML和类似的其他语言等技术开发动态网页。

JSP是一种服务器端编程技术,允许创建动态的,独立于平台的方法来开发基于Web的应用程序。JSP可以访问整个Java api系列,包括用于访问企业数据库的JDBC API。

Web开发人员将JSP创建为连接HTML或XHTML的文本文件代码,XML元素和嵌入式JSP操作和命令。使用JSP,您可以通过网页表单汇集用户的输入,从数据库或不同的源提供记录,以及动态构建Web页面。

JSP标记可用于各种目的,例如从数据库检索数据或注册用户首选项,访问JavaBeans组件,在页面之间传递控制,以及在请求,页面等之间共享信息。


什么是JSF?

JSF代表JavaServer Faces,是一个基于Java的Web应用程序框架。它旨在简化基于Web的用户界面的开发集成,可以帮助开发人员为服务器端应用程序开发用户界面。

JSF是一个MVC Web框架,它解释了在页面中使用可重用UI组件的基于服务器的应用程序的用户界面(UI)的构造。它实现了一种将UI小部件与数据源和服务器端事件处理程序连接起来的功能。JSF规范描述了一组标准的UI组件,并为开发组件提供了一个应用程序编程接口(API)。

JSF允许重用和扩展当前的标准UI组件。JSF减少了构建和维护应用程序的工作量,这些应用程序将运行在Java应用服务器上,并将应用UI呈现给目标客户。JSF通过提供可重用的UI组件、在UI组件之间进行简单的数据传输、跨各种服务器请求管理UI状态、实现自定义组件以及将客户端事件连接到服务器端应用程序代码来促进Web应用程序的开发。JSF提供了多种呈现功能,允许JSF UI组件根据客户机类型不同地呈现自己。


JSP与JSF之间的区别

1、目标

JSP是一种基于Java的技术,主要用于为小型应用程序创建动态网页。将它用于大规模应用程序非常困难,因为它们是使用某种框架和基于组件的系统开发的。

而,JSF是一个基于组件的Web的应用程序,用于简化基于Web的用户界面的开发集成,对大型项目非常有用;它使用MVC框架,因此即使用户界面及其组件也可以在特定网页中重用。


2、架构

JSF是一个合适的框架,这就是它广泛用于Web开发行业的原因。技术术语是组件驱动的UI模型系统。它使用XML来查看视图模板。FacesServlets负责处理请求并发送所需的视图模板,创建组件树,处理事件以及向客户端发送响应。保存组件的状态,在创建另一个视图之前检索该组件的状态。

而,JSP是一种请求驱动的技术,它在运行时被转换为servlet。虽然它是请求驱动的,但它也可以与任何服务器端MVC设计的视图组件一起使用,而不是独立使用它。该模型可以是JavaBeans,而控制器可以是Java Servlet。


3、功能

JSF具有JSP中不存在的各种多核功能。JSF中的特性使其适用于表示类型的应用程序,而JSP更适合于与服务相关的应用程序。Ajax是当今世界上最流行的UI设计技术之一,只有JSP与Ajax兼容;事实上,它与Ajax的集成使它比JSP更受欢迎。我们还可以将JSF与richfaces集成,Richfaces支持各种UI组件和ajax的多个库;而JSP不支持richfaces。


链接: https://fly63.com/article/detial/2496

采用Java的ServerSocket进行编码一个简单的HTTP服务器

诸如tomcat等web服务器中间件简化了我们web的开发成本,但有时候我们或许并不需要这么一个完备的服务器,只是希望做一个简单地处理或者做特殊用途的服务器。

Spring Boot支持Crontab任务改造

在以往的 Tomcat 项目中,一直习惯用 Ant 打包,使用 build.xml 配置,通过 ant -buildfile 的方式在机器上执行定时任务。虽然 Spring 本身支持定时任务,但都是服务一直运行时支持。

lucene的suggest(搜索提示功能的实现)

首先引入依赖,既然要进行智能联想,那么我们需要为提供联想的数据建立一个联想索引(而不是使用原来的数据索引),既然要建立索引,那么我们需要知道建立索引的数据来源。我们使用一个扩展自InputIterator的类来定义数据来源

HashMap剖析之内部结构

本文是基于Java 8的HashMap进行分析,主要是介绍HashMap中的成员变量和类变量的用途,以及分析HashMap的数据结构。在HashMap中存在多个成员变量和类变量,搞清楚它们的用途有助于我们更深入了解HashMap,下面是它们的介绍:

自定义HttpMessageConverter接受JSON数据

Spring默认使用Jackson处理json数据。实际开发中,在业界中,使用非常受欢迎的fastjson来接受json数据。创建一个项目,在web目录下新建一个assets/js目录,加入jquery和json2的js文件,在lib下加入fastjson的jar文件。

统计两个IP地址之间的IP个数

求两个IP地址之间的IP个数,例如192.18.16.1~192.18.16.5,2001:DB8:0000:0023:0008:0800:200C:417C~2001:DB8:0:23:8:800:200C:417D之间的IP个数?

JVM 发生 OOM 的 8 种原因、及解决办法

Java 堆空间:发生频率:5颗星造成原因1、无法在 Java 堆中分配对象 2、吞吐量增加 3、应用程序无意中保存了对象引用,对象无法被 GC 回收 4、应用程序过度使用 finalizer

Java版的7种单例模式

今天看到某一篇文章的一句话 单例DCL 前面加 V 。就这句话让我把 单例模式 又仔细看了一遍。Java 中的 单例模式 是我们一直且经常使用的设计模式之一,大家都很熟悉,所以这篇文章仅仅做我自己记忆。

常问的15个顶级Java多线程面试题

在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得更多职位,那么你应该准备很多关于多线程的问题。面试官会问面试者很多令人混淆的Java线程问题

拦截器和过滤器的区别

拦截器功在对请求权限鉴定方面确实很有用处,在我所参与的这个项目之中,第三方的远程调用每个请求都需要参与鉴定,所以这样做非常方便,而且他是很独立的逻辑,这样做让业务逻辑代码很干净

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!