JavaServer Faces(JSF)全面掌握(之扫盲篇)

详细介绍一下 ​JSF(JavaServer Faces) ​​ 是一个官方的 Java 标准(JSR-标准规范),用于构建基于组件的用户界面(主要是 Web 界面)。它遵循模型-视图-控制器(MVC)设计模式,并提供了丰富的可重用 UI 组件库、管理组件状态、处理用户输入、验证输入数据、页面导航等功能。你可以把它想象成 Java 世界里的“前端框架”,但它更侧重于服务器端渲染和与后端 Java 代码(如 EJB, CDI Beans)的无缝集成。JSF 是一个强大、成熟的基于组件的服务器端 Web 框架。 阅读详情

大家好

       这是我在优快云上的第一篇文章,所以没敢起类似“xxx精通”之类的嚣张名字,只为帮助对JSF还一无所知的朋友了解这项新技术,以后还会不断推出新作品,希望大家多多支持。

进入正题……

      JavaServer Faces(后面都用简称JSF)是Sun公司在今年(2003年)推出的一套MVC模式的Web框架(Framework),用来设计创建服务器端用户界面。听起来好像很深奥,其实它并不能算是新技术,了解ASP.NET的朋友会在JSF中找到它的影子。

1.         框架的概念

      首先我们来了解什么是框架,熟悉的朋友可以不用听我胡扯了,直接看下面的JSF结构介绍。让我们一起回顾一下我们的Web开发历史:

      最早的CGI程序应该算是Web开发的古董了,它让用户浏览器可以和服务器进行交互,这的确是个划时代的进步,但是CGI程序复杂度高,只要能实现功能我们就已经会高呼万岁了,因此必须有更简便的方法来替代它,于是ASP诞生了(不得不承认微软总是能走在前头)它的简便使其很快的流行起来,不久Sun推出了Servlet(Sun的CGI程序解决方案),由于Servlet在页面显示方面比较弱,Sun又推出了JavaServerPages(现在依然流行的JSP,不用和JSF搞混),JSP和ASP的共同缺点就是代码与HTML混合(逻辑与显示混合)导致它们成为不伦不类的东西,而且很难调试。MVC模式的引入使这种局面有所改观,JSP开发者可以选择Mode1和Mode2的方式进行开发,能够部分的做到业务逻辑和显示的分离,但这并不完善,依然混乱。

     Web框架就是在这个背景下诞生的,Web框架(例如目前最流行的Struts)大都是基于MVC设计模式,它们定义了自己的一套规范,分别霸业务逻辑,显示和流程控制分开,开发者只要按照它的规范进行,就可以开发出低耦合度,高可维护性的Web程序。

2.      JSF结构

JSF由两套东西组成,用户界面组件标签库和组件实现(包括界面组件,事件监听、校验器,类型转换器等)。开发者可以利用现有的这些实现来进行基本的开发也可以自己扩展来进行

视图(View):它由JSF的标签库和用户自定义标签库组成,这些组件可以被高度复用,让界面开发者可以基本独立的进行开发,就像开发HTML页面一样

模型(Model):它由一个符合JavaBeans规范的Bean组成,它持有界面组件上的数据和一些简单逻辑,当用户操作触发事件后Bean中的数据被及时的更新,这个过程和Swing组件非常相似。

控制器(Controller):整个程序的流程控制交给一个Servlet来完成,它通过配置文件来导航页面,这样可以替代原始的硬编码实现。

3.         JSF的优势

作为一个Web框架,JSF具备其他框架的全部优点:MVC模式使程序各功能模块分离,便于分工开发,易于维护和扩展,JSF还支持事件处理,各种校验,为开发提供了便利。

另外,JSF的参考实现是HTML的,但是它并不只限于HTML,它还可以支持WML等多种标记语言,这使其更适合今后的Web程序。

4.         JSF相关的东东

本来想放个例子上来,但是优快云这个编辑器我还没有用熟,所以先算了,给大家介绍一些JSF的相关资料,希望能有帮助。

由于是比较新的技术,所以目前中文资料很少,英文的文章也不多,主要集中的Sun的网站上:

l         http://java.sun.com/j2ee/javaserverfaces/index.jsp这是JSF技术的首页,大部分相关资料都可以从这里找到

l         http://java.sun.com/j2ee/javaserverfaces/docs/tutorial.html这是Sun官方出的JSF技术指南,想入门了解更多的必读资料,我正在努力进行翻译,英语好的朋友也可以把它翻译过来供大家分享。

l         http://java.sun.com/webservices/downloads/webservicespack.html这是JWSDP的下载页面,JWSDP(Java Web Services Developer Pack)是Sun推出用来开发Web服务的包,JSF集成在其中,JWSDP目前的版本是1.3,JSF的版本是1.1,大家可以下载这个开发包,其中带的JSF的例子非常值得学习

5.         总结

就我个人看来,JSF是个非常由发展前途的技术,由于是Sun推出的框架,很有可能成为日后的一个Web开发标准,因此值得大家学习:)

JavaServer Faces:组件模型与事件处理指南 JavaServer Faces (JSF) 提供了一套丰富的核心组件库,它是构建Web用户界面的基石。核心组件库允许开发者以声明方式来创建复杂的用户界面,同时简化了代码的编写。组件库中的组件不仅直观而且易于配置,它们被设计为支持页面内容的动态生成和数据的呈现。视图是JSF中定义用户界面的组件结构。它通常由一个或多个页面文件(.xhtml)组成,这些页面文件描述了如何将数据展现给最终用户。 阅读详情

相关推荐

JavaServer Faces (JSF) 框架全解

在现代Web开发中,组件化已成为一种提升开发效率和维护性的关键技术。组件化指的是将用户界面分解为独立、可复用的部分,每个部分都是一个具有特定功能的单元。通过这种方式,开发者能够专注于单一组件的实现,从而简化整体应用的开发过程,并提高代码的可读性和可维护性。组件化Web开发的优势主要体现在以下几个方面:提高开发效率:通过组合现成的组件,开发者可以快速构建复杂的用户界面。维护性增强:独立的组件使得代码的修改和升级变得更加容易,增强了项目的可维护性。复用性提升。

weixin_42497762的博客 1097

JavaServer Faces:Java实现构建基于组件的用户界面

JavaServer Faces:Java实现构建基于组件的用户界面

2301_77899321的博客 536

JavaServer Faces:完整Web应用开发教程

本文还有配套的精品资源,点击获取 简介:JavaServer Faces(JSF)是由Oracle公司维护的Java框架,遵循MVC设计模式,用于构建Web应用程序。本教程提供了对JSF核心概念、组件、生命周期和最佳实践的深入探讨,并包含关于如何使用JSF组件库、EL语言、Managed Beans、自定义组件、CDI集成和不同版本特性的实用指导。通过本教程的学习,读者将能...

weixin_36019375的博客 1186

JavaServer Faces (JSF)

JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架。

Developer of XingKong22star 842

JavaServer Faces核心及辅助JAR包详解

本文还有配套的精品资源,点击获取 简介:JavaServer Faces(JSF)是一个用于Web应用开发的Java框架,简化用户界面构建。JSF的核心是jsf-impl.jar和jsf-api.jar,前者实现了API中的接口,后者定义了开发接口和类。其他常用JAR包,如commons-collections-3.1.jar、standard.jar、commons-be...

weixin_42602726的博客 1362

JavaServer Faces:Web应用的MVC框架深入讲解

JSF 允许开发者通过继承现有的组件或者创建全新的组件类来自定义和扩展组件库。自定义组件通常需要:创建一个新的组件类。继承自已存在的组件或者类。实现必要的方法和属性。注册组件,提供渲染器和标签信息。创建自定义组件的目的是为了复用 UI 逻辑或提供跨页面通用的用户界面元素。

weixin_42583683的博客 1196

JSF入门

浏览了很多的网站,总结一下JSF这个框架。 JavaServer Faces (JSF) 是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。由于由Java Community Process (JCP) 推动,属于Java

qq_34379840的博客 501

JavaServer Faces(JSF)框架入门与实践:教程与jar包指南

本文还有配套的精品资源,点击获取 简介:JavaServer Faces(JSF)是一个用于构建Web应用的MVC框架,包含丰富的UI组件和完整的生命周期管理。教程将介绍JSF的核心概念,如组件库、视图、模型、控制器,以及如何使用jar包配置开发环境。学习JSF的重要性在于其组件驱动的开发方式、强大的集成性、易维护性以及活跃的社区支持。入门步骤涵盖环境配置、项目创建、页面编...

weixin_42576410的博客 1326

JSF+AJAX企业级开发之路——来自Sun的高级工程师Ed Burns的精彩演讲【二】

Ed Burns在本小节中的论述比较精彩,提到了各种AJAX整合JSF的方案以及AJAX的常见问答.因为我一直是用Webwork/Struts2,对JSF接触并不深.为此花了不小时间来“扫盲”.Ed来谈到了JCP也想搞一个AJAX+JSF的东东,并且集百家之长,但从他不愿意透露更多,可以看出还是有得等了.在对JSF2.0的憧憬,Ed想将现在JSF的Server-centric(请看注1)慢慢转成C...

Java专栏 180

JavaServer Faces核心编程(第3版 中文完整版)

JavaServer Faces核心编程(第3版 中文完整版)

java server faces

java server faces resource

Java Server Faces_JSF ( JavaServer Faces ) 介绍

javaServer Pages(JSF) 在 Java 的 WEB 编程中已经被认为是下一个重大的事件。通过 JSF ,你可以在网页上使用 WEB 组件,来捕捉用户行为产生的事件。不远的将来,Java 工具将支持这个技术,开发 WEB 应用程序将与我们现在开发 SWING 程序类似:拖放控件、写事件侦听器。本文是一个 JSF 的简要介绍,并且提供一个 JSF 的例子,用来展示 JSF 的事件驱动...

weixin_35943776的博客 526

SAR成像系列:【3】合成孔径雷达(SAR)的二维回波信号与简单距离多普勒(RD)算法 (附matlab代码)

二维回波信号分析

zr2006_7的专栏 2万+

javaserver_什么是JavaServer Faces(JSF)

javaserver 这是一个分为两部分的系列,其中我介绍了JSF 2及其如何适合Java EE生态系统。 在第1部分中,我将介绍JavaServer Pages(JSF)背后的基本思想 ,在第2部分中,我将介绍Facelets声明语言 。 在构建Web应用程序时,我们为最终用户提供了一种与我们的应用程序进行交互的方式,这就是JSF所提供的。 我将向您介绍MVC设计模式以及如何使用...

最佳 Java 编程 311

告别老旧内核!手把手教你为Android 10设备手动更新WebView(以升级至97版为例)

本文详细指导如何在Android 10设备上手动更新WebView至97版,解决老旧内核导致的兼容性、性能和安全问题。通过ADB命令和图形化操作两种方案,无需Root即可完成升级,显著提升网页加载速度和安全性。

weixin_28672681的博客 582

极验第四代滑块验证码破解(三):滑块轨迹构造

极验第四代滑块验证码破解(三):滑块轨迹构造声明 声明 原创文章,请勿转载! 本文内容仅限于安全研究,不公开具体源码。维护网络安全,人人有责。 本文关联文章超链接:

帯泪的鱼的博客 8624

Java安全之Mojarra JSF反序列化

JavaServer Faces,新一代的Java Web应用技术标准,吸收了很多JavaServlet以及其他的Web应用框架的特性。JSF为Web应用开发定义了一个事件驱动的、基于组件的模型。其中常用的是Sun(现在的Oracle)发布的Mojarra和Apache发布的MyFacesJavaServerFaces(JSF)概念在几年前就已经引入,现在主要在J2EE中使用JSF 和类似的 Web 技术之间的区别在于 JSF 使用。

dzqxwzoe的博客 1668

摄像头读取出现VIDIOC_STREAMON: No space left on device 错误

先说下原因,linux中为usb camera提供了一个标准的V4L2的驱动以方便使用,只要符合驱动规范就可以实现即插即用usb camera设备,即免驱动安装。 但市面上的USB 摄像头都是2.0的。usb bus的 bandwidth是有限的,而V4L2驱动采用的是贪心原则,即camera会要求获取最大带宽;因此将两个camera接入一路usb bus,打开第二个camera(尤其是采用YUV...

houge101的博客 9288

什么是jsf_什么是JSF? JavaServer Faces简介

什么是jsf JavaServer Faces(JSF)是Java标准技术,用于构建基于组件的,面向事件的Web界面。 与JavaServer Pages(JSP)一样,JSF允许访问服务器端数据和逻辑。 与JSP本质上是一个具有服务器端功能HTML页面不同,JSF是一个XML文档,它表示逻辑树中的正式组件。 JSF组件由Java对象作为后盾,这些Java对象独立于HTML并且具​​有Java的...

cxu0262的博客 6077

2023最新扫码连wifi-扫码挪车-聚合CPS返利多合一小程序源码

2023最新扫码连wifi-扫码挪车-聚合CPS返利多合一系统 系统特点: 目前已接入的 CPS 渠道: 充值:话费充值、电费充值、影视会员充值、会员卡券充值 本地团购:联联周边游 电商平台:京东、拼多多、唯品会、淘宝、抖音美团:外卖、闪购、酒店、到店、优选饿了么:外卖、商超 出行服务:滴滴打车、滴滴加油、滴滴货运、花小猪打车、高德打车、同程打车 连锁餐饮点餐:肯德基、麦当劳、百果园、奈雪的茶、瑞幸咖啡、星巴克、喜茶、汉堡王、必胜客电影票:特价电影票 注意:以上涉及到需要支付的 CPS 渠道,不需要预存!

qq_41837379的博客 3110

uniapp - 鸿蒙真机运行报错hvigor ERROR: Failed :entry:default@CompileArkTS...,hvigor ERROR: default@CompileAr

uniapp鸿蒙报错> hvigor ERROR: Failed :entry:default@CompileArkTS... hvigor ERROR: default@CompileArkTS watch work[0] failed. 【HarmonyOS】工程编译后报错hvigor ERROR: Failed :entry:default@CompileArkTS,uniAPP鸿蒙开发无法编译运行启动报错,工程编译后报错,运行不起来,删除掉项目entry下的build和.preview缓存文件后重新

🏆 前端领域优质创作者 4790

【Java】--Javaserver faces(JSF) 03

要创建一个简单的JSF应用程序,我们将使用maven-archetype-webapp插件。在下面的示例中,我们将在C:\ JSF文件夹中创建一个基于maven的Web应用程序项目。创建项目 我们打开命令控制台,进入C:> JSF目录,然后执行下面的mvn命令。C:\JSF>mvn archetype:create -DgroupId = com.tutorialspoint.test -

lyn 559

MATLAB基础应用精讲-【数模应用】游程检验(附MATLAB、R语言和python代码实现)

游程检验是一种非参数性统计假设的检验方法,它是游程总数检验和最大游程检验的总称,用于两个独立样本的比较和观测结果随机性的检验测试。​游程检验亦称“连贯检验”,是根据样本标志表现排列所形成的游程的多少进行判断的检验方法。[2]例1:设某样本n=12人的标志表现为男、女,有以下三种排列。(i) 男\男,女\女\女,男,女\女,男\男\男\男;(ii) 男\男\男\男\男\男\男,女\女\女\女\女;(iii) 男,女,男,女,男,女,男,女,男,女,男\男;连续出现男或女的区段称为游程。

qq_36130719的博客 607
下一篇: JavaServer Faces中的页面导航
jonkeyjohns
博客等级 码龄23年 0粉丝 2原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值