java控制层用什么技术,JSF界面控制层技术面试题(附答案)

从事java时间长的程序员应该都会有体会,就是人们在开发基于Java的Web用户界面时仍然需要手工书写大量的标签,同时还要考虑页面状态信息的保存、客户端事件处理等问题,开发难度比较大,效率较低,重用性差。为解决这些问题,Java Server Faces技术就出现了。Java Server Faces简称JSF,所以今天整理了几道JSF界面控制层技术面试题,下面一起看下去吧。

1、JSF技术是什么?

答:JSF是由Java Community Process (JCP)制定的一个Web应用框架标准。JSF具有良好定义的请求处理生命周期和丰富的组件层次结构,旨在推动基于Java的Web用户界面开发的简易性。利用JSF提供的可重用、可扩展、基于组件的用户界面框架,在快速开发工具RAD的支持下,可以通过拖放组件的方式对Web用户界面进行可视化编辑,将用户界面上的组件与一个数据源绑定,并将客户端用户界面产生的事件交给服务器端处理,从而大大降低基于Java的Web用户界面的开发难度,提高开发效率。

2、JSF技术都包括什么部分?

答:两部分(1)一组用于表示用户界面组件并管理其状态、处理事件和验证输入的JavaAPI,这些API支持国际化和可访问性;(2)一个用于在JSP页面中表示JSF 组件的自定义标签库。

简而言之,JSF的主要部分是一个GUI组件框架和一个用于跨不同标记语言或客户端设备描述组件的灵活模型。JSF GUI组件框架使开发人员能够创建JSF应用程序的用户界面。JSF GUI组件包括标准的HTML表单控件(如按钮)、布局组件,以及更复杂的组件,如数据表。此外,第三方还可以扩展规范中定义的基本类,来开发额外的GUI组件。

3、JSF技术的优势是什么?

答:主要优势就是它既是Java Web用户界面标准又是严格遵循模型-视图-控制器 (MVC) 设计模式的框架。用户界面代码(视图)与应用程序数据和逻辑(模型)的清晰分离使JSF应用程序更易于管理。为了准备提供页面对应用程序数据访问的JSF上下文和防止对页面未授权或不正确的访问,所有与应用程序的用户交互均由一个前端“Faces”servlet(控制器)来处理。JSF技术做到了应用程序逻辑和表示的完全分离,是真正彻底的MVC模式。

4、传统JSP开发存在什么问题?

答:实现表示层和业务层的分离,这是J2EE Web应用一直以来的理想,可惜JSP 并没有真正实现这个目标。JSP是一个基于Java的Web用户界面开发标准技术,是一种“脚本式”开发的Web技术,在JSP页面中混淆了大量用于显示逻辑的HTML和用于业务逻辑的Java 代码,使得页面设计与程序开发无法分离;JSP另一个更大的缺陷是脚本不能重用,这常常导致开发者不得不在JSP页面之间进行复制-粘贴操作,进而导致同一段代码出现多个版本,从而使得程序的调试和设计极其错综复杂。而标签库TagLib作为JSP的补充,将Java代码从JSP中剥离,也只是有限地实现了表现与逻辑的分离,始终没有摆脱代码和HTML页面揉和的问题。此外,JSP还存在着其他固有的缺陷,例如对应Servlet编译的出错信息很难在JSP 中找到准确的出错位置,由此给调试带来很大困难。

5、JSF开发Web应用程序的步骤是什么?

答:通常来说有三个步骤:

(1)视图设计。方便、快捷地开发基于JSF的Web应用程序,是在JSF提供了一组丰富的、可重用的服务器端用户界面组件的条件下实现的。在开发工具的支持下,用户可以很容易地在可视化环境中利用这些组件构建Web用户界面,处理组件的数据校验、事件处理等用户界面管理问题。

(2)模型设计。JSF技术做到了应用程序逻辑和表示的完全分离。在模型设计部分,程序员只需要考虑程序的逻辑功能,不需要考虑数据的表现形式。JSF的模型是通过JavaBean程序来实现的。

(3)控制器设计。JSF的控制器设计是在配置文件中完成的,相关的主要有两个文件:web.xml文件和faces-config.xml文件(均在WEB-INF目录下)。web.xml文件用于控制JSF的生命周期,实现部署描述符。faces-config.xml文件实现导航,在文件中控制页面之间的跳转流程。

配置步骤是首先配置Web应用程序的web.xml文件,然后是配置JSF的控制文件faces-config.xml文件。这两个文件格式固定,在IDE环境中这个过程由工具自动完成,不需要设计人员的干预,即使手工配置也比较简单。

6、Jsf中导航的标签是什么?

答:/main.jsp

success

/result.jsp

7、JSF中的LiftCycle六大生命周期是什么?

答:恢复视图->应用请求值->校验->更新模型->调用应用程序->呈现响应

8、JSF中用户界面组件模型有几类?

答:有五类:UI组件、事件监听、显示、类型转换、验证。

9、表格处理及取值?

答:import javax.faces.model.DataModel;

import javax.faces.model.ListDataModel;DataModel:代表一个表格,其可以从客户端传上来。实例化:DataModel dm=new ListDataModel();将一个list值放入到DataModel中。dm.setWrappedData(list),将客户端当前行取出

(LogsVO) dm.getRowData()。

对于多条的查询及增删改在模型中加入了如下属性: 模型的名称是bean,其下的属性是DataModel dm:代表返有的行数据。VO vo:代表一行数据。取一行:vo=(VO) dm.getRowData();通#{bean.vo.属性名},如果修改对应信息自动修改。增加一行:this.vo=new VO();通#{bean.vo.属性名},显示肯定无值,但客户输入值提交后会将值勤写入。

10、JSF的缺点是什么?

答:有两个缺点:(1)性能问题。JSF是个规范,性能本来跟它没有直接关系。但这种大而全又可扩展的东西本身就是鼓励实现厂商拼了命的往里加新特性。

(2)不提供完备的概念封装。事实上JSF所提供的概念体系,并不能对web开发所需要的基础知识作完整的封装和简化。使用组件可以提高你的开发效率,不能不懂JavaScript,不懂CSS,仅仅在组件的层面上开发。

上面就是今天整理的JSF界面控制层技术面试题,共有10道,希望看到这篇文章的朋友都可以搞懂弄明白这几道题目。在众多的J2EE表现层框架技术中,JSF表现出其旺盛的生命力,尽管JSF技术还有不少问题,但随着JSF技术的不断成熟和版本更新,其必将获得越来越多的应用,所以学好JSF界面控制层技术对于java工程师来说还是非常有必要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值