文档库 最新最全的文档下载
当前位置:文档库 › STRUTS面试题

STRUTS面试题

STRUTS面试题
STRUTS面试题

STRUTS面试题

1. 简述Struts框架的初始化流程。

答案:

对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化控制器ActionServlet

ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到ActionMappings对象中。

在Struts framework中, Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。

其中,Action扮演了真正的控制逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。

2. 简述Struts框架响应客户请求的工作流程

答案:

1. 检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。

2. 如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。

3. 根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm 的validate()方法。

4. 如果ActionForm的validate()方法返回null或返回一个不包含ActionMessge的ActionErrors对象,就表示表单验证成功。

5. ActionServlet根据AtionMapping实例包含的映射信息决定将请求转发给哪个Action。如果应的Action实例不存在,就先创建这个实例,然后调用Action 的execute()方法。

6. Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。

7. ActionForward对象指向的JSP组件生成动态页面,返回给客户。

对于以上流程的步骤(4),如果ActionForm的validate()方法返回一个包含一个或多个ActionError的ActionErrors对象,就表示表单验证失败,此时ActionServlet将直接把请求转发给包含客户提交表单的JSP组件。在这种情况下,不会再创建Action对象并调用Action的execute方法。

3 Struts框架的数据验证可分为几种类型?

答案:

表单验证(由ActionForm Bean处理):如果用户没有在表单中输入姓名,就提交表单,将生成表单验证错误

业务逻辑验证(由Action处理):如果用户在表单中输入的姓名为“Monster”,按照本应用的业务规则,不允许向“Monster”打招呼,因此将生成业务逻辑错误。

4 简述Form Bean的表单验证流程。

答案:

1、当用户提交了HTML表单,Struts框架自动把表单数据组装到ActionForm Bean 中。

2、接下来Struts框架会调用ActionForm Bean的validate()方法进行表单验证。

3、如果validate()方法返回的ActionErrors 对象为null,或者不包含任何ActionMessage对象,就表示没有错误,数据验证通过。

4、如果ActionErrors中包含ActionMessage对象,就表示发生了验证错误,Struts框架会把ActionErrors对象保存到request范围内,然后把请求转发到恰当的视图组件,视图组件通过标签把request范围内的ActionErrors对象中包含的错误消息显示出来,提示用户修改错误。

5在struts配置文件中action元素包含哪些属性和子元素?

答案:

path属性:指定请求访问Action的路径

type属性:指定Action的完整类名

name属性:指定需要传递给Action的ActionForm Bean

scope属性:指定ActionForm Bean的存放范围

validate属性:指定是否执行表单验证

input属性:指定当表单验证失败时的转发路径。

元素还包含一个子元素,它定义了一个请求转发路径。

6. 简单叙述ActionForm Bean的作用

答案:

1、ActionForm Bean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。

2、Struts框架利用ActionForm Bean来进行View组件和Controller组件之间表单数据的传递。

3、Struts框架把View组件接受到的用户输入的表单数据保存在ActionForm Bean中,把它传递给Controller组件,Controller组件可以对ActionForm Bean 中的数据进行修改JSP文件使用Struts标签读取修改后的ActionForm Bean的信息,重新设置HTML表单。

7 .叙述ActionForm执行步骤

答案:

(1)检查Action的映射,确定Action中已经配置了对ActionForm的映射

(2)根据name属性,查找form bean的配置信息

(3)检查Action的formbean的使用范围,确定在此范围下,是否已经有此form bean的实例。

(4)假如当前范围下,已经存在了此form bean的实例,而是对当前请求来说,是同一种类型的话,那么就重用。

(5)否则,就重新构建一个form bean的实例

(6)form bean的reset()方法备调用

(7)调用对应的setter方法,对状态属性赋值

(8)如果validatede的属性被设置为true,那么就调用form bean的validate()方法。

(9)如果validate()方法没有返回任何错误,控制器将ActionForm作为参数,传给Action实例的execute()方法并执行。

8.在下面的标签中哪些是struts标签

A、

B、

C、

D、

答案:A B C

9、FormBean的作用

答:FormBean是一种JAVABean,除了具有JAVABean的常规方法,还包含一些特殊方法,用于验证表单数据,以及将其属性重新设置为默认值。 FormBean用来进行View组件和Controller组件之间表单数据的传递。View组件接收到用户输入的表单数据,保存在FormBean中,把它传递给Controller组件,Controller 组件可以对FormBean中的数据进行修改。

10、Forward与Global-Forward的区别

答:Forward是根据Action return的值找到对应的JSP页。当多个Action共同return同一个值时,可将这个Forward元素写在Global-Forward中。

11.问题:在Struts应用的视图中包含哪些组件?

选项:

(A) JSP

(B) Servlet

(C) ActionServlet

(D) Action

(E) 代表业务逻辑或业务数据的JavaBean

(F) EJB

(G) 客户化标签

答案:A,G

12问题:在Struts应用的控制器中包含哪些组件?

选项:

(A) JSP

(B) Servlet

(C) ActionServlet

(D) Action

(E)代表业务逻辑或业务数据的JavaBean

(F) EJB

(G) 客户化标签

答案:B,C,D

13.在struts配置文件中action元素包含哪些属性和子元素?

答案:

path属性:指定请求访问Action的路径

type属性:指定Action的完整类名

name属性:指定需要传递给Action的ActionForm Bean

scope属性:指定ActionForm Bean的存放范围

validate属性:指定是否执行表单验证

input属性:指定当表单验证失败时的转发路径。

元素还包含一个子元素,它定义了一个请求转发路径。

14. 问题:在Struts应用的模型中包含哪些组件?

选项:

(A) JSP

(B) Servlet

(C) ActionServlet

(D) Action

(E) 代表业务逻辑或业务数据的JavaBean

(F) EJB

(G) 客户化标签

答案:F

15. 问题: struts框架中,关于FormBean,下列说法正确的是:

A FormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给Action

B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证

C 用户每次提交表单,都会产生一个新的FormBean实例

D 动态FormBean不能进行验证操作

答案:A

16. 问题:struts框架中,在一个Action的配置信息中,name属性指的是:

A 当前action实例的名字

B 当前action所在的类的名字

C 该Action中调用的FormBean的实例的名字

D 该Action中调用的FormBean的类的所在包名

答案:C

17. 问题:关于struts项目中的类与MVC模式的对应关系,说法错误的是?

A Jsp文件实现视图View的功能

B ActionServlet这一个类是整个struts项目的控制器

C ActionForm、Action都属于Model部分

D 一个struts项目只能有一个Servlet

答案:D

18、问题:以下哪些说法是正确的?

选项:(A)每个HTTP请求对应一个单独的ActionServlet实例

(B)对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的HelloAction实例。

(C)每个子应用对应一个单独的RequestProcessor实例

(D)每个子应用对应一个单独的web.xml文件

答案:C

19 ActionForm Bean对象是由谁创建的?

选项:

(A) 标签处理类

(B) ActionServlet

(C) RequestProcessor

(D) Action

答案:C

20、struts框架,错误的是?

A Struts中无法完成上传功能

B Struts框架基于MVC模式

C Struts框架容易引起流程复杂、结构不清晰等问题

D Struts可以有效地降低项目的类文件数目

答案:C

21、问题:以下代码定义了一个变量,如何输出这个变量的值?

选项:(A)

(B)

(C)<%= stringBean%>

(D)<% String

myBean=(String)pageContext.getAttribute(“stringBean”,PageContext.PA GE_SCOPE);%> <%=myBean%>

答案: A,D

22、问题:把静态文本放在Resource Bundle中,而不是直接在JSP文件中包含这些静态文本,有什么优点?答案: 提高可维护性提高可重用性支持国际化

23在struts配置文件中action元素包含哪些属性和子元素?

答案:

path属性:指定请求访问Action的路径

type属性:指定Action的完整类名

name属性:指定需要传递给Action的ActionForm Bean

scope属性:指定ActionForm Bean的存放范围

validate属性:指定是否执行表单验证

input属性:指定当表单验证失败时的转发路径。

元素还包含一个子元素,它定义了一个请求转发路径。

24. 问题:关于struts项目中的类与MVC模式的对应关系,说法错误的是?

A Jsp文件实现视图View的功能

B ActionServlet这一个类是整个struts项目的控制器

C ActionForm、Action都属于Model部分

D 一个struts项目只能有一个Servlet

答案:D

Java工程师面试题(三大框架)

Java工程师(程序员)面试题 Struts,Spring,Hibernate三大框架的面试 1.Hibernate工作原理及为什么要用? 原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory 3.打开Session 4.创建事务Transation 5.持久化操作6.提交事务7.关闭Session 8.关闭SesstionFactory 为什么要用:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2.Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many 4.Struts1流程: 1、客户端浏览器发出HTTP请求。 2、根据web.xml配置,该请求被ActionServlet接收。 3、根据struts-config.xml配置,ActionServlet先将请求中的参数填充到ActionForm中,然后ActionServlet再将请求发送到Action 进行处理。 4、是否验证,需要验证则调用ActionForm 的validate方法,验证失败则跳转到input,成功则继续。 5、Action从ActionForm获得数据,调用javabean 中的业务方法处理数据。 6、Action返回ActionForward对象,跳转到相应JSP 页面或Action。 7、返回HTTP响应到客户端浏览器。 MVC设计模式:modal:“模型”也称业务逻辑,是正真完成任务的代码,相当与JavaBeanview:视图,其实就是显示界面,相当于JSPcontroller:控制器,他控制模型和视图的交互过程,相当于servletstruts1是基于MVC设计模式hibernate是基于ORM对象关系映射 5.struts是什么? struts1是基于JSP和servlet的一个开源的Web应用框架,使用的是MVC的设计模式struts2是基于webwork技术的框架,是sun和webwork公司联手开发的一个功能非常齐全的框架,struts2和struts1没有任何关系,是一个全新的框架 6.spring是什么? spring是一个集成了许多第三方框架的大杂烩,其核心技术是IOC(控制反转,也称依赖注

JAVA框架面试题汇总

1.SpringMVC Framework的理解: 1、它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是java组件。并且和Spring提供的其他基础结构紧密集成 2、不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于Servlet的) 3、可以任意使用各种视图技术,而不仅仅局限于JSP 4、支持各种请求资源的映射策略 5、它应是易于扩展的 2.简单的谈一下SpringMVC的工作流程? 流程? 1、用户发送请求至前端控制器DispatcherServlet? 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。? 3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。? 4、DispatcherServlet调用HandlerAdapter处理器适配器? 5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。? 6、Controller执行完成返回ModelAndView? 7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet? 8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器? 9、ViewReslover解析后返回具体View? 10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。? 11、DispatcherServlet响应用户 3.如何解决POST请求中文乱码问题,GET的又如何处理呢? 在web.xml中加入: . .CharacterEncodingFilter . .???? .????????encoding .?????? utf-8

华为外包java面试题

SSH篇(后台) 一、SSH概述 1.1 SSH的含义 当前J2EE企业级应用分为三层:表现层-业务层-数据源层,而SSH代表了每一层的具体实现,它是三种流行的开源框架的缩写,S-Struts,S-Spring,H-Hibernate。这三者的组合是当前J2EE开发的标准模式,也代表了J2EE正在朝着简化复杂性,轻量化方向发展,最新J2EE 6已证明了这种趋势。 1.2 J2EE开发模式的演变 J2EE应用一直采用三层加构,即表现层-业务层-数据源层。 旧石器时代:J2EE应用采用表现层-远程EJB-实体EJB(或JDBC),这是最为正宗也是最复杂的J2EE开发,适用于银行等小部分项目;随后由于微软.NET的兴起以及其对J2EE的挑战,正宗的J2EE出现了一个变种:表现层-本地EJB-Ibatis,在这种模型中业务层选择了本地EJB,同时数据源层也改为Ibatis,这种模式极大的提高性能,华为大部分项目采用这种构架。在这两种架构中,由于采用了EJB组件模型,从而依赖于EJB容器,而EJB容器以一种全无或全有的方式提供服务,同时业务实现也受制于容器。这种开发模式导致了以下复杂性:依赖于应用服务器,不可移植,开发困难,无法在容器外测试,部署复杂,效率低下。 新石器时代:在新石器时代依然采用了三层加构,只是抛弃了EJB,而采用了Spring等轻量级容器,同时持久化由全自动的Hibernate承担。在这种架构中,由于放弃了EJB,放弃了全功能的应用服务器,在节省了软件许可费用的同时也大大提高了软件开发效率。由于web服务器的可移植也好于应用服务器,从而使得J2EE应用可顺利移植。

软件工程师面试题含答案

、你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用? 答: MVC设计模式(应用观察者模式的框架模式) M: Model(Business process layer) ,模型,操作数据的业务处理层, 并独立于表现层(Independent of presentation) 。 V: View(Presentation layer) ,视图,通过客户端数据类型显示数据, 并回显模型层的执行结果。 C: Controller(Control layer) ,控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图 MVC框架的一种实现模型 模型二(Servlet-centric) : JSP+Servlet+JavaBean ,以控制为核心,JSP 只负责显示和收集数据,Sevlet ,连接视图和 模型,将视图层数据,发送给模型层,JavaBea n,分为业务类和数据实体,业务类处理业 务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。StrutsMVC 框架(Web application frameworks) Struts是使用MVC勺实现模式二来实现的,也就是以控制器为核心。 Struts提供了一些组件使用MVC开发应用程序: Model: Struts没有提供model类。这个商业逻辑必须由Web应用程序的幵发者以JavaBean 或EJB的形式提供 View:Struts 提供了action form 创建form bean, 用于在controller 和view 间传输数据。此外,Struts 提供了自定义JSP标签库,辅助幵发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中Controller :Struts 提供了一个核心的控制器ActionServlet ,通过这个核心的控制器来

struts面试题

1.简述Struts框架的初始化流程。 答案:对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化控制器ActionServlet ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到ActionMappings对象中。 在Struts framework中,Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的 业务逻辑一块)。 其中,Action扮演了真正的控制逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务 逻辑或流程的运行方向。 2.简述Struts框架响应客户请求的工作流程 1.检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。 2.如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。 3.根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的validate()方法。 4.如果ActionForm的validate()方法返回null或返回一个不包含ActionMessge的ActionErrors对象,就表示表单验证成功。 5.ActionServlet根据AtionMapping实例包含的映射信息决定将请求转发给哪个Action。如果应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。 6.Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。 7.ActionForward对象指向的JSP组件生成动态页面,返回给客户。 对于以上流程的步骤(4),如果ActionForm的validate()方法返回一个包含一个或多个ActionError 的ActionErrors对象,就表示表单验证失败,此时ActionServlet将直接把请求转发给包含客户提交表 单的JSP组件。在这种情况下,不会再创建Action对象并调用Action的execute方法。 3Struts框架的数据验证可分为几种类型? 表单验证(由ActionForm Bean处理):如果用户没有在表单中输入姓名,就提交表单,将生成表单验证 错误 业务逻辑验证(由Action处理):如果用户在表单中输入的姓名为“Monster”,按照本应用的业务规则,不允许向“Monster”打招呼,因此将生成业务逻辑错误。 4简述Form Bean的表单验证流程。 1、当用户提交了HTML表单,Struts框架自动把表单数据组装到ActionForm Bean中。 2、接下来Struts框架会调用ActionForm Bean的validate()方法进行表单验证。 3、如果validate()方法返回的ActionErrors对象为null,或者不包含任何ActionMessage对象,就表示没有错误,数据验证通过。 4、如果ActionErrors中包含ActionMessage对象,就表示发生了验证错误,Struts框架会把ActionErrors对象保存到request范围内,然后把请求转发到恰当的视图组件,视图组件通过 标签把request范围内的ActionErrors对象中包含的错误消息显示出来,提示用户修改错误。 5在struts配置文件中action元素包含哪些属性和子元素? path属性:指定请求访问Action的路径 type属性:指定Action的完整类名 name属性:指定需要传递给Action的ActionForm Bean scope属性:指定ActionForm Bean的存放范围 validate属性:指定是否执行表单验证 input属性:指定当表单验证失败时的转发路径。

java笔试模拟题三

Java寒假笔试模拟题三 姓名:________学号:___________ 一、单项选择题: 1.Struts是一个开源的Web开发框架,它是由哪个组织进行维护的?( c )。 A.BEA B.JBoss C.Apache D.Sybase 2.如果在Web应用程序中添加struts2框架的支持,需要在配置哪个类作为struts2的核心控制器( a )。 A.FilterDispatcher B.StrutsServlet C.ApplicationContextListener D.SessionFactory 3.Struts2的核心控制器需要在哪个配置文件中进行配置( b ) A.struts.xml B.web.xml C.applicationContext.xml D.webwork.xml 4.关于开发人员自己创建的Action,以下说法正确的是( c ) A.Struts2中的Action必须继承Action类 B.Struts2中的Action必须实现Action接口

C.Struts2中的Action无需实现或者继承任何类或接口 D.Struts2中的Action必须继承ActionSupport类 解释:Struts 2的Action无须实现任何接口或继承任何类型,普通的POJO类就可以用做Action类,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法,因为ActionSupport已经实现了Action接口,还实现了Validateable 接口,提供了数据校验功能。通过继承该ActionSupport类,可以简化Struts 2的Action开发。 5.以下关于Struts2配置文件中package元素说法错误的是( d ). A.package元素的name属性不可以重复 B.package元素可以进行继承 C.package元素可以声明为抽象(abstract=”true”) D.package元素可以嵌套 6.以下关于Struts2配置文件中action元素说法错误的是( a ). A.任何一个action的name属性都不可以相同 B.action元素可以没有class属性 C.action元素中拥有method属性 D.action元素的子元素可以配置interceptor-ref 7.Struts2进行数据收集和类型转换的工作,是由以下哪个负责完成的( a )。 A.FilterDispatcher B.ActionInvocation

软件工程师面试题含答案

一、你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用? 答: MVC设计模式(应用观察者模式的框架模式) M:Model(Businessprocesslayer),模型,操作数据的业务处理层,并独立于表现层(Independentofpresentation)。 V:View(Presentationlayer),视图,通过客户端数据类型显示数据,并回显模型层的执行结果。C:Controller(Controllayer),控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图 MVC框架的一种实现模型 模型二(Servlet-centric): JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,Sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。 StrutsMVC框架(Webapplicationframeworks) Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。 Struts提供了一些组件使用MVC开发应用程序: Model:Struts没有提供model类。这个商业逻辑必须由Web应用程序的开发者以JavaBean或EJB 的形式提供 View:Struts提供了actionform创建formbean,用于在controller和view间传输数据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。 Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action规范,还需要在的特定配置文件中进行配置,接收JSP输入字段形成Actionform,然后调用一个Action控制器。Action控制器中提供了model的逻辑接口。 二、什么是WebService? 答: WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。 WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web 服务定义语言)/SOAP(简单请求协议)规范的。 WebService=WSDL+SOAP+UDDI(webservice的注册) Soap是由Soap的part和0个或多个附件组成,一般只有part,在part中有Envelope和Body。WebService是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA架构。 WebService的优点 (1)可以让异构的程序相互访问(跨平台) (2)松耦合 (3)基于标准协议(通用语言,允许其他程序访问) WebService的基本原理 (1)ServiceProvider采用WSDL描述服务 (2)ServiceProvider采用UDDI将服务的描述文件发布到UDDI服务器(Registerserver) (3)ServiceRequestor在UDDI服务器上查询并获取WSDL文件 (4)Servicerequestor将请求绑定到SOAP,并访问相应的服务。

三大框架面试题

1.Spring中Bean的生命周期 1.容器启动,实例化所有实现了BeanFactoyPostProcessor接口的类。他会在任何普通Bean 实例化之前加载. 2.实例化剩下的Bean,对这些Bean进行依赖注入。 3.如果Bean有实现BeanNameAware的接口那么对这些Bean进行调用 4.如果Bean有实现BeanFactoryAware接口的那么对这些Bean进行调用 5.如果Bean有实现ApplicationContextAware接口的那么对这些Bean进行调用 6.如果配置有实现BeanPostProcessor的Bean,那么调用它的postProcessBeforeInitialization 方法 7.如果Bean有实现InitializingBean接口那么对这些Bean进行调用 8.如果Bean配置有init属性,那么调用它属性中设置的方法 9.如果配置有实现BeanPostProcessor的Bean,那么调用它的postProcessAfterInitialization方法 10.Bean正常使用 11.调用DisposableBean接口的destory方法 12.调用Bean定义的destory方法 如果从大体上区分值分只为四个阶段 1.BeanFactoyPostProcessor实例化 2.Bean实例化,然后通过某些BeanFactoyPostProcessor来进行依赖注入 3.BeanPostProcessor的调用.Spring内置的BeanPostProcessor负责调用Bean实现的接口: BeanNameAware, BeanFactoryAware, ApplicationContextAware等等,等这些内置的BeanPostProcessor调用完后才会调用自己配置的BeanPostProcessor 4.Bean销毁阶段 2.你对spring的理解是什么? 1)开源框架 2)IoC(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合 3)AOP 将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照方面编程,提高了复用性 或者答概念Spring是一个轻型容器(light-weight container),其核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model)。在此基础之上,Spring提供了AOP(Aspect-Oriented Programming, 面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展ApplicationContext更加方便我们实现J2EE的应用;DAO/ORM 的实现方便我们进行数据库的开发;Web MVC和Spring Web提供了Java Web应用的框架或与其他流行的Web框架进行集成。 3.Spring框架有哪几部分组成? Spring 核心容器(Core):提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,她是工厂模式的实现。BeanFactory使用控制反转(Ioc)模式将应用程序的配置和依赖性规范与实际的应用代码程序分开。 Spring AOP:通过配置管理特性,Spring AOP模块直接面向方面的编程功能集成到了Spring 框架中,所以可以很容易的使Spring框架管理的任何对象支持AOP。Spring AOP模块为基

struts2面试题(自己总结)

Struts2面试题 1、struts2工作流程 Struts 2框架本身大致可以分为3个部分: 核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。核心控制器FilterDispatcher是Struts 2框架的基础,

包含了框架内部的控制流程和处理机制。 业务控制器Action和业务逻辑组件是需要用户来自己实现的。 用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件, 供核心控制器FilterDispatcher来使用。 Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同, 所以说Struts 2是WebWork的升级版本。基本简要流程如下: 1 、客户端初始化一个指向Servlet容器的请求; 2、这个请求经过一系列的过滤器(Filter) (这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器, 这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 、接着FilterDispatcher被调用, FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action 4、如果ActionMapper决定需要调用某个Action, FilterDispatcher把请求的处理交给ActionProxy 5、ActionProxy通过Configuration Manager询问框架的配置文件, 找到需要调用的Action类 6、ActionProxy创建一个ActionInvocation的实例。 7、ActionInvocation实例使用命名模式来调用, 在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。 8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP 或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper 9、响应的返回是通过我们在web.xml中配置的过滤器 10、如果ActionContextCleanUp是当前使用的,则FilterDispatecher将不会清理sreadlocal ActionContext;如果ActionContextCleanUp不使用,则将会去清理sreadlocals。 2、说下Struts的设计模式 MVC模式: web应用程序启动时就会加载并初始化ActionServler。用户提交表单时,一个配置好的ActionForm对象被创建,并被填入表单相应的数据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm的Validate()验证后选择将请求发送到哪个Action,如果Action不存在,ActionServlet会先创建这个对象,然后调用Action的execute()方法。Execute()从ActionForm对象中获取数据,完成业务逻辑,返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指定的jsp组件,ActionForward对象指定的jsp生 成动态的网页,返回给客户。

IT综合面试题(1-80题)

综合面试题(1-80题) 1、写出6个java 常用的包 答:(1)https://www.wendangku.net/doc/9518091974.html,ng包(2)java.util包(3)java.io包 (4)java.awt包(5)javax.swing包(6)https://www.wendangku.net/doc/9518091974.html,包 2、写出java 类的super 和this 区别 答:super表示超(父)类的意思,this代表对象本身。 3、写出tomcat默认端口号,以及修改 答:在server.xml的修改里面port值 4、写出生成20个随机数,并用冒泡排序 答:int temp=0;//设置一个临时变量 int[] demo={3,5,1,4,2}; for(int i=1;i

} } } //输出 for(int k=0;k用户名: 密码:

数据分析面试题及答案

数据分析面试题及答案 linux的启动顺序 通电后读取ROM的BIOS程序进行硬件自检,自检成功后把计算机控制权交给BIOS中BOOTsequence中的下一个有效设备,读取该设备MBR找到操作系统,载入linux的bootloader,一般是grub。之后载入kernel,执行/etc/rc.d/sysinit ,开启其他组件(/etc/modules.conf),执行运行级别,执行/etc/rc.d/rc.local ,执行/bin/login,最后shell启动。 使用过的开源框架介绍 Struts2 Spring hibernate mybatis hadoop hive hbase flume sqoop Zookeeper Mahout Kafka Storm Spark

擅长哪种技术 Hadoop。介绍 HIVE的优化 底层是MapReduce,所以又可以说是MapReduce优化。 小文件都合并成大文件 Reducer数量在代码中介于节点数*reduceT ask的最大数量的0.95倍到1.75倍 写一个UDF函数,在建表的时候制定好分区 配置文件中,打开在map端的合并 开发中遇到的问题 Hbase节点运行很慢,发现是Hfile过小,hbase频繁split。 修改了hfile大小。或者设置major compack设置为手动 Major compack设置为手动会出现什么问题 ? Zookeeper的二次开发 Flume 的实时和定时数据采集,项目和flume的解耦 Mogodb和hbase的区别 Mogodb是单机 Hbase是分布式?? 项目组多少人?人员分配?数据量?集群的配置?

Spring面试题库

Spring面试题库 2、关于依赖注入说法正确的是() A.依赖注入的目标是在代码之外管理程序组建间的依赖关系 B.依赖注入即是“面向接口”的编程 C.依赖注入是面向对象技术的替代品 D.依赖注入的使用会增大程序的规模 3、关于AOP错误的是() A.AOP将散落在系统中的“方面”代码集中实现 B.AOP有助于提高系统可维护性 C.AOP已经表现出将要替代面向对象的趋势 D.AOP是一种设计模式,Spring提供了一种实现 4、关于spring AOP错误的是() A.首先要编写方面代码,实现MethodBeforeAdvice接口 B.AOP采取拦截方法调用方式实现,可以在调用方法前,后,抛出异常时拦截 C.AOP采取代理的方式实现,常用代理对象的类别为org.springframework.aop.framework.ProxyFactoryBean D.AOP可以在对目标(target)不做任何修改的情况下增加程序功能 5、在Spring配置文件di.xml中包含下面的配置代码,可以推

断()。(选1项) A.下列语句运行时无异常 ApplicationContext context=new ClassPathXmlApplicationContext(“di.xml”); A a=(A)content.getBean(“a”); B.A是抽象类 C.A是接口 D.类A中定义了getM()方法 6、关于Struts+Spring+Hibernate集成框架,下列说法正确的是()。(选1项) A.使用SSH框架开发项目,由于增加了大量配置工作,从而会降低开发的效率 B.三个框架可以用多种方式进行集成 C.使用SSH框架开发不利于实现复杂的业务逻辑 D.使用SSH框架开发不利于构造复杂的页面和交互流程 7、对于Sping和Struts的集成,下列说法错误的是()。(选1项) A.Action Bean的实例可以由Spring创建 B.在Struts配置文件中,Action Bean的配置可以如下所示: type= “org.springframework.web.struts.DelegatingActionProxy”>

j2EE面试题

java面试题第II季<基础java JEE> 1.简述Java Server Page 和Servlet 的联系和区别? Java Servlet是一个专门用于编写网络服务器应用程序的Java组件 2.jsp有哪些内置对象?作用分别是什么? 3.jsp有哪些动作?作用分别是什么? 4.在jsp页面间传递值可用哪些方法? Cookie:客户端存储 Ceche:服务器缓存 ViewState:页面生命周期内 (Session:用户会话期内) Application:程序生命期内 HiddenFiled:隐含域 DB:写数据库 File:和数据库类似,写文件 js:document.window.opener.getElementById() 5.说一说Servlet的生命周期? 有哪些方法?各在什么是否被调用和其含义? servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy 方法表达。Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于 servlet。 6.JA V A SERVLET API中forward( ) 与redirect( )的区别,在JSP开发中优先采用哪种方 式? Forward ... Forward 由应用程序内部执行

Java框架面试题总结_201104

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类被用于传递页面数据以及哪

个经典Spring面试题和答案

69个经典S p r i n g面试题和答案 Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。 2. 使用Spring框架的好处是什么? ?轻量:Spring 是轻量的,基本的版本大约2MB。 ?控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 ?面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。 ?容器:Spring 包含并管理应用中对象的生命周期和配置。 ?:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。 ?事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。 ?异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。 3. Spring由哪些模块组成? 以下是Spring 框架的基本模块: ?Core module ?Bean module ?Context module ?Expression Language module ?JDBC module ?ORM module ?OXM module ?Java Messaging Service(JMS) module ?Transaction module ?Web module ?Web-Servlet module ?Web-Struts module ?Web-Portlet module 4. 核心容器(应用上下文) 模块。

Spring 常见面试题

spring 的优点? 1.降低了组件之间的耦合性,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 5.容器提供了众多的辅助类,能加快应用的开发 6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等 7.spring属于低侵入式设计,代码的污染极低 8.独立于各种应用服务器 9.spring的DI机制降低了业务对象替换的复杂性 10.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的部分或全部 什么是DI机制? 依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,具体的讲:当某个角色 需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中 创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者 因此也称为依赖注入。 spring以动态灵活的方式来管理对象,注入的两种方式,设置注入和构造注入。 设置注入的优点:直观,自然 构造注入的优点:可以在构造器中决定依赖关系的顺序。 什么是AOP? 面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面 1.面向切面编程提供声明式事务管理 2.spring支持用户自定义的切面 面向切面编程(aop)是对面向对象编程(oop)的补充, 面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。 AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop是静态的抽象,aop 是动态的抽象, 是对应用执行过程中的步骤进行抽象,,从而获得步骤之间的逻辑划分。 aop框架具有的两个特征: 1.各个步骤之间的良好隔离性 2.源代码无关性

Java面试题(SSH框架)

Java工程师(程序员)面题 Struts,Spring,Hibernate三大框架 1.Hibernate工作原理及为什么要用? 原理:1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory3.打开Session4.创建事务Transation5.持久化操作 6.提交事务7.关闭Session8.关闭SesstionFactory 为什么要用:1.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3.hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4.hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2.Hibernate是如何延迟加载? 1.Hibernate2延迟加载实现:a)实体对象b)集合(Collection) 2.Hibernate3提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 类与类之间的关系主要体现在表与表之间的关系进行操作,它们都是对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many 4.Struts1流程: 1、客户端浏览器发出HTTP请求。 2、根据web.xml配置,该请求被ActionServlet接收。 3、根据struts-config.xml配置,ActionServlet先将请求中的参数填充到ActionForm中,然后ActionServlet再将请求发送到Action进行处理。 4、是否验证,需要验证则调用ActionForm 的validate方法,验证失败则跳转到input,成功则继续。 5、Action从ActionForm获得数据,调用javabean中的业务方法处理数据。 6、Action返回ActionForward对象,跳转到相应JSP 页面或Action。 7、返回HTTP响应到客户端浏览器。 MVC设计模式:modal:“模型”也称业务逻辑,是正真完成任务的代码,相当与JavaBeanview:视图,其实就是显示界面,相当于JSPcontroller:控制器,他控制模型和视图的交互过程,相当于servletstruts1是基于MVC设计模式hibernate是基于ORM对象关系映射 5.struts是什么? struts1是基于JSP和servlet的一个开源的Web应用框架,使用的是MVC的设计模式struts2是基于webwork技术的框架,是sun和webwork公司联手开发的一个功能非常齐全的框架,struts2和struts1没有任何关系,是一个全新的框架 6.spring是什么?

相关文档