用JavaServer Faces开发Web应用(1)

原创 2003年05月30日 09:29:00

JavaServer Faces开发Web应用

 

http://developer.java.sun.com/developer/technicalArticles/GUI/JavaServerFaces/

by  Qusay H. Mahmoud
May 2003

 

 

当你为服务器端应用开发用户界面时,你可以有很多选择,使用JspServletJava开发者一般使用HTML的用户界面组件来构建用户界面。这个主要是因为HTML的用户界面组件是所有的Web浏览器都支持的最小子集。当然,这样的Web应用与传统的独立胖客户端相比缺乏富有表现力的用户界面,因而功能更少,可用性也没有那么好。虽然applet可以用来设计出富有表现力的用户界面,不过Web页面的开发者可能并不精通Java程序设计。

 

另外,如果你参与一个大型Web系统开发的话,你可能会遇到一些技术上的难题,比如说如何实现一个查询构件或一个表浏览构件等数据库应用的组件等等等等。开发这些定制的组件需要专门的技术,而且要花一些时间来编译和测试新的库。在一个理想的情况下,开发者可以使用已经预先编译并且测试通过的,同时具有高度可配置性的组件来集成到自己的开发环境中。

 

JavaServer Faces 是一种可以开发富有表现力的用户界面的Web应用的服务器端技术,在它的帮助下,你可以解决像创建定制的用户界面组件这样的技术问题。这是因为,JavaServer Faces技术是一项开发运行在服务器端的Web应用程序的一个用户界面框架,它可以反过来向客户端提供用户界面。没错,用户界面的代码运行在服务器端,然而却可以响应客户端产生的各种事件。

 

其实现在已经存在多种可以开发富有表现力的用户界面的技术,比如Flash Swinglets Jade等。不过,这些解决方案都是专有的,而且开发工具一般也总是局限于某一个提供商。而JavaServer Faces最重要的就是它是一个标准,这意味着开发者不会被锁定到某一个单独的开发商。制定这个规范的专家组由Java开发社区的主要工具提供商的代表组成,这样开发者就不会缺乏可以选择的工具,而且他们可以使用现在使用的工具的最新版本。不过虽然各个开发商在制定规范的事情上相互合作,他们具体的实现却又相互竞争。这个就可以让开发者受益,他们可以使用工具商实现的各种特性,或是选择各种定制组件。

 

JavaServer Faces技术基于模型视图控制器(MVC)的把应用逻辑和表现相分离的思想,所以如果你理解MVC模式的话,你就可以真正理解JavaServer Faces技术。

本文是一个快速入门的教程,通过本文的学习,你可以开始使用JavaServer Faces 进行开发你自己的应用程序。同时本文还提供了一些其他的内容:

  • JavaServer Faces 技术的简介
  • 使用JavaServer Faces 的好处
  • 描述了JavaServer Faces内在结构
  • 描述了JavaServer Faces技术的构成
  • 通过一个使用JavaServer Faces 进行开发的例子,给你最直观的感觉
  • 提供了一个例程,你可以修改一下用到自己的开发中

不过本文并没有包含如何开发定制组建的内容。

 

JavaServer Faces概览

 

JavaServer Faces是一项由Sun公司倡导的技术(其它相关可以参考JSR 127),它的主要目的是提供开发Web应用的用户界面的一个标准框架。如前所述,JavaServer Faces可以让你开发一个运行在Java服务器上的Web应用,它可以向客户端提供用户界面。 这个技术使用Servlet作为控制器,提供了富有表现力的组件模型,实现了事件处理以及模型表现。从而提供了一个Web应用的生命周期管理。

 

JavaServer Faces有两个主要部分组成:

  1. Java APIs用来提供UI组件、状态管理、事件处理和检查用户输入数据的功能。这些API同时支持国际化并且容易使用。
  2. 用来在一个JSP 页面内表现JavaServer Faces用户界面的JSP定制标记库。页面开发者可以通过这个标记库来开发丰富多彩的网页。

下图给出了客户端、服务器端和JavaServer Faces 之间的关系。

 

 


1: UI 运行在服务器上

 

 

这里,这个JSP页面不是硬编码标记语言,而是通过使用JavaServer Faces定制标记库(tag library)来开发用户界面。应用程序的UI用来管理JSP页面所包含的组件对象。

 

很多人都可以享受到这项技术所带来的好处:

  • 使用标记语言(比如HTML)的网页开发者可以使用JSP标记库开发出丰富多彩的JavaServer Faces 用户界面。
  • 应用开发者可以专注于开发模型对象和进行事件处理。
  • 组件开发者可以在JavaServer Faces 所提供组件的基础上开发新的定制组件。
  • 工具提供商可以把JavaServer Faces 技术集成到新版本的开发工具中用来简化基于Web的多层应用的开发。

这项技术同时也打开了Web用户界面组件复用的市场。开发者和工具提供商可以像搭积木一样使用JavaServer Faces定制组件来构建用户界面。

 

JavaServer Faces 的一个优势就是使用模型、视图、控制器架构(MVC)来清晰地分离应用逻辑和表现。您可能会觉得这个可能会影响到那些使用现存Web框架技术比如Struts的那些人。不过请注意,JavaServer Faces Struts并不是相互竞争的产品,事实上它们可以协作得很好。不过,JavaServer Faces确实比Struts有一些优势。举例来说,在Struts中,只有一种方式来表现一个元素,而JavaServer Faces却提供了多种方式来表现一个元素。选择适当的表现方式设计符合要求的表现是网页设计师的事情,应用开发人员并不需要知道使用哪一种机制来表示组件。(关于如何把JavaServer Faces Struts集成在一起,请参考integration of JavaServer Faces and Struts)事实上,读者可能已经注意到,Sun公司的Craig McClanahan就是Struts的作者,但他同时也是JavaServer Faces规范制定的头面人物。

<未完待续>

其余部分请参考:

http://www.csdn.net/develop/read_article.asp?id=18707 JavaServer Faces开发Web应用(2)

http://www.csdn.net/develop/read_article.asp?id=18709 JavaServer Faces开发Web应用(3)

http://www.csdn.net/develop/read_article.asp?id=18710 JavaServer Faces开发Web应用(4)

http://www.csdn.net/develop/read_article.asp?id=18712 JavaServer Faces开发Web应用(5)

Maven创建所遇到的问题记录

Maven创建所遇到的问题记录: 第一次搭建ssm框架,eclipse搭建maven时候,遇到了各种奇葩奇怪的问题,各种百度Google,终无解。 偶然看见的maven官网maven对jdk版本的...
  • geqianqing
  • geqianqing
  • 2016年05月31日 22:36
  • 5772

使用Nodejs开发web应用—1

使用Nodejs开发web应用。Node.js是一个可以快速构建网络服务及应用的平台,该平台的构建是基于Google V8引擎。Node.js是单线程的,它用异步式I/O和事件驱动代替多线程,所以在性...
  • ssun125
  • ssun125
  • 2013年10月26日 01:08
  • 2085

java 应用-创建,发布,目录结构,WEB-INF,META-INF,web.xml,build.xml

创建和发布Web应用     Java Web应用由一组静态HTML页、Servlet、JSP和其他相关的class组成。每种组件在Web应用中都有固定的存放目录。Web应用的配置信息 存放在web...
  • yanjiaye520
  • yanjiaye520
  • 2014年03月11日 15:53
  • 4370

JDeveloper使用EJB,JPA,JavaServer Faces技术开发Web应用程序实例

概要:在JDeveloper 11gR1中,使用EJB, JPA and JavaServer Faces技术开发一个Web应用程序。Data Model,使用EJB diagrammer, EJB ...
  • weiyangcau
  • weiyangcau
  • 2012年03月10日 12:00
  • 1106

用JavaServer Faces开发Web应用

  • 2007年07月12日 14:52
  • 133KB
  • 下载

Core JavaServer Faces, Second Edition (JSF)part1

  • 2008年04月08日 16:48
  • 8.58MB
  • 下载

JSF的基础入门,JavaServer Faces作为一种新兴的Web表现层框架

  • 2009年08月13日 16:54
  • 600KB
  • 下载

Addison Wesley[1].Core Javaserver Faces Jun 2004.chm

  • 2008年04月06日 13:37
  • 7.04MB
  • 下载

Manning - JavaServer Faces in Action(2-1).pdf

  • 2007年08月09日 21:27
  • 5MB
  • 下载

javaServer Faces 技术架构与应用.pdf

  • 2011年03月17日 18:14
  • 941KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用JavaServer Faces开发Web应用(1)
举报原因:
原因补充:

(最多只允许输入30个字)