Java框架面试题总结_201104

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Struts 篇

1. Struts的工作流程

当客户端向浏览器发送HTTP请求时,所有浏览器请求都被提交给ActionServlet处理。

如果用户提交表单,则会将表单中的数据放入到ActionForm中。ActionServlet根据struts_config.xml文件中预先配置好的设置选择将请求转发到哪个action对象,action对象从actionForm对象中获取数据,但后调用业务逻辑组件,完成业务功能。

2. Struts的工作流程分解

Web应用如果采用struts框架,在web应用启动时就会加载并初始化ActionServlet, ActionServlet从struts_config.xml文件中读取配置信息,基本执行步骤如下:

(1)所有浏览器请求都被提交给ActionServlet处理

(2)ActionServlet根据struts_config.xml文件中预先配置好的设置,选择应该将请求转发到

哪个action对象.

(3)当用户提交表单时,一个配置好的ActionForm对象将被创建,并被填入表单中的相当

数据.

(4)Action对象从ActionForm对象中获取数据.

(5)Action对象调用业务逻辑组件完成业务功能.

3. Struts控制器组件的组成. 和控制器的主要功能

Struts控制器组件主要包括:

ActionServlet组件:充当Struts框架的中央控制器.

RequestRrocessor组件:充当每个子应用模块的请求处理器.

Action组件:负责处理一项具体的业务.

Struts控制器组件主要完成以下任务:

●接受用户请求.

●根据用户请求,调用合适的模型组件来执行相应的业务逻辑.

●获取业务逻辑执行结果.

●根据当前状态以及业务逻辑执行结果,选择合适的视图组件返回给用户.

4. Struts中的几个关键对象的作用(说说几个关键对象的作用)

ActionServlet类控制导航流.

ActionServlet根据URI来决定哪个Action类被用于处理请求,Action可以校验输入,并访问业务层以便从数据库检索信息.

Action需要知道页面提交了哪些内容,所以由ActionServlet根据请求URI来决定将请求参数绑定到哪个ActionForm中并传入Action.

Action在完成业务逻辑后,返回一个ActionForward对象,ActionServlet根据ActionForward 对象中的路径来调用页面完成响应.

Struts将这些信息绑定在一个ActionMapping对象中,一个ActionMapping对应一个请求URI,当请求路径到达的时候,ActionServlet就会查询ActionMapping对象,ActionMapping对象将告诉ActionServlet哪个Action类会被调用,哪个ActionForm类被用于传递页面数据以及哪

些ActionForward将被用于转向.

有关Action,ActionForm,ActionForward等信息,通过struts-config.xml配置文件来定义.

5. Struts工作流程图(用例图)

注: Servlet 容器在启动时,或者用户首次请求ActionServlet时加载ActionServlet类.

6. 说说MVC设计模式和它的优点

MVC是一种设计模式,.它强制性的把应用程序的输入,处理和输出分开.MVC把应用程序分成三个核心模块:模型(Model),视图(View)和控制器(Controller).他们分别处理不同的任务.

视图是用户看到并与之交互的界面.视图向用户显示相关的数据,并能接受用户的输入数据,但是它不进行任何实际的业务处理.

模型是应用程序的主体部分.模型表示业务数据和业务逻辑.一个模型能为多个视图提供数据.由于同一个模型可以被多个视图重用,所以提高了应用的重用性.

控制器接受用户的输入并调用模型和视图去完成任务.

MVC的处理逻辑如下:

首先控制器接受用户请求,并决定应该调用哪个模型来进行处理,然后模型根据用户请求进行相应的业务逻辑处理,并返回数据. 最后控制器调用相应的视图来格式化模型返回的诗句,并通过视图呈现给用户.

MVC的优点:

(1)在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它

们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性.

(2)MVC的三个模块相互独立,改变其中的一个不会影响其他两个,所以根据这种设计思

想能构造良好的松耦合的构件.

(3)控制器可以用来连接不同的模型和视图去完成用户的需求,也可以为构造应用程序

提供强有力的手段.给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行处理,然后选择适当的视图将结果显示给用户.

7. 说说struts是如何实现MVC的 ?

Struts采用JSP作为MVC的视图, 控制器由ActionServlet和Action类来实现. 控制器负责视图和模型之间的交互. 模型由实现业务逻辑的JavaBean或EJB组件构成, 然后说说Struts的工作流程.

8. Struts优点与缺点

Struts是开源软件,使开发者能更深入的了解其内部实现机制。

Struts 优点:业界"标准"(很多成功案例),学习资源丰富。

Struts的优点主要集中体现在两个方面:Taglib和页面导航。

a、利用Struts提供的taglib可以大大节约开发时间。

b、维护扩展比较方便。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。

c、表现与逻辑分离

d、表单验证解决了请求数据的验证问题,增强了系统健壮性。

e、便于团队开发

Struts缺点:a、大量的使用标签,对于初学者难度较大。

b、ActionForms使用不便、无法进行单元测试(StrutsTestCase只能用于集成)

9 . strust的Action是不是线程安全的?如果不是有什么方式可以保证Action的线程安全?如果是,说明原因

不是. 为了确保action的线程安全, 最好的办法就是不要在action里定义实列变量.

10. Tiles框架是什么?

Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。

11. struts1.x 和struts 2 的区别

本文将从Struts1和Struts2的各个方面进行比较

相关文档
最新文档