java面试题中的j2ee面试题(主要是Struts框架)

1. Struts
的工作原理
       
Struts
中,用户的请求一般以*.do
作为请求服务名,所有的*.do
请求均被指向ActionSevlet ActionSevlet
根据Struts-config.xml
中的配置信息,将用户请求封装成一个指定名称的FormBean
,并将此 FormBean
传至指定名称的ActionBean
,由ActionBean
完成相应的业务操作,如文件操作,数据库操作等。每一个*.do
均有对应的 FormBean
名称和ActionBean
名称,这些在Struts-config.xml
中配置。
 
2. Struts
优点与缺点
   
Struts
是开源软件,使开发者能更深入的了解其内部实现机制。
   
Struts 
优点:业界"
标准"
(很多成功案例),学习资源丰富。
   
Struts
的优点主要集中体现在两个方面:Taglib
和页面导航。
          
a
、利用Struts
提供的taglib
可以大大节约开发时间。
          
b
、维护扩展比较方便。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。
          
c
、表现与逻辑分离
          
d
、表单验证解决了请求数据的验证问题,增强了系统健壮性。
          
e
、便于团队开发
 
   
Struts
缺点:a
、大量的使用标签,对于初学者难度较大。
                      
bActionForms
使用不便、无法进行单元测试(StrutsTestCase
只能用于集成)
 
3. Struts
提供了几个标签库?都是什么标签库?
    
Struts
提供了五个标签库,即:HTMLBeanLogicTemplateNested
 
    
HTML 
标签     

用来创建能够和Struts 
框架和其他相应的HTML 
标签交互的HTML 
输入表单
    
Bean 
标签     

在访问JavaBeans 
及其属性,以及定义一个新的bean 
时使用
    
Logic 
标签     

管理条件产生的输出和对象集产生的循环
    
Template 
标签     

随着Tiles
框架包的出现,此标记已开始减少使用
    
Nested 
标签     

增强对其他的Struts 
标签的嵌套使用的能力
 
7.
你对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
,连接视图
和模型,将视图层数据,发送给模型层,JavaBean
,分为业务类和数据实体,业务类处
理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC
的实现模式。
StrutsMVC
框架(Web application frameworks)
Struts
是使用MVC
的实现模式二来实现的,也就是以控制器为核心。
Struts
提供了一些组件使用MVC
开发应用程序:
ModelStruts 
没有提供model 
类。这个商业逻辑必须由Web 
应用程序的开发者以
JavaBeanEJB
的形式提供
 
8.
叙述Struts ActionForm
执行步骤 
 
答案:(1)检查Action
的映射,确定Action
中已经配置了对ActionForm
的映射
 
(2)根据name
属性,查找form bean
的配置信息
 
(3)检查Actionformbean
的使用范围,确定在此范围下,是否已经有此form bean
的实例。
 
(4)假如当前范围下,已经存在了此form bean
的实例,而是对当前请求来说,是同一种类型的话,那么就重用。
 
(5)否则,就重新构建一个form bean
的实例
 
(6)form beanreset()
方法备调用
 
(7)调用对应的setter
方法,对状态属性赋值
 
(8)如果validatede
的属性被设置为true
,那么就调用form beanvalidate()
方法。
 
9
)如果validate
()方法没有返回任何错误,控制器将ActionForm
作为参数,传给Action
实例的execute
()方法并执行
 
9.
简单叙述Struts  ActionForm Bean
的作 
 
答案:1ActionForm Bean
也是一种JavaBean
,除了具有一些JavaBean
的常规方法,还包含一些特殊的方法,用于验证HTML
表单数据以及将其属性重新设置为默认值。
 
2Struts
框架利用ActionForm Bean
来进行View
组件和Controller
组件之间表单数据的传递。
 
3Struts
框架把View
组件接受到的用户输入的表单数据保存在ActionForm Bean
中,把它传递给Controller
组件,Controller
组件可以对ActionForm Bean
中的数据进行修改,JSP
文件使用Struts
标签读取修改后的ActionForm Bean
的信息,重新设置HTML
表单。
 
10.
简述Struts Form Bean
的表单验证流程
 
答案:1
、当用户提交了HTML
表单,Struts
框架自动把表单数据组装到ActionForm Bean
中。
 
2
、接下来Struts
框架会调用ActionForm Beanvalidate()
方法进行表单验证。
 
3
、如果validate()
方法返回的ActionErrors 
对象为null
,或者不包含任何ActionMessage
对象,就表示没有错误,数据验证通过。
 
4
、如果ActionErrors
中包含ActionMessage
对象,就表示发生了验证错误,Struts
框架会把ActionErrors
对象保存到request
范围内,然后把请求转发到恰当的视图组件,视图组件通过标签把request
范围内的ActionErrors
对象中包含的错误消息显示出来,提示用户修改错误
 
11.
简述Struts
框架响应客户请求的工作流程
 
答案:1. 
检索和用户请求匹配的ActionMapping
实例,如果不存在,就返回用户请求路径无效的信息。
 
2. 
如果ActionForm
实例不存在,就创建一个ActionForm
对象,把客户提交的表单数据保存到ActionForm
对象中。
 
3. 
根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionFormvalidate()
方法。
 
4. 
如果ActionFormvalidate()
方法返回null
或返回一个不包含ActionMessgeActionErrors
对象,就表示表单验证成功。
 
5. ActionServlet
根据AtionMapping
实例包含的映射信息决定将请求转发给哪个Action
。如果应的Action
实例不存在,就先创建这个实例,然后调用Actionexecute()
方法。
 
6. Actionexecute()
方法返回一个ActionForward
对象,ActionServlet
再把客户请求转发给ActionForward
对象指向的JSP
组件。
 
7. ActionForward
对象指向的JSP
组件生成动态页面,返回给客户。
 
对于以上流程的步骤(4
),如果ActionFormvalidate()
方法返回一个包含一个或多个ActionErrorActionErrors
对象,就表示表单验证失败,此时ActionServlet
将直接把请求转发给包含客户提交表单的JSP
组件。在这种情况下,不会再创建Action
对象并调用Actionexecute
方法。
 
12.Get
请求和Post
请求区别 
 
答案:aPost
是通过Http
中的Post
机制将表单中的数据提交到Action
所制定的程序
 
Get
方法是通过Url
请求来提交表单数据的。
 
b.Get
适用于传输数据量小于1K
数据,执行效率高。Post
传输数据量较大,但也有限量

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值