常见关于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、大量的使用标签,对于初学者难度较大。
                     b、ActionForms使用不便、无法进行单元测试(StrutsTestCase只能用于集成)

3. Struts提供了几个标签库?都是什么标签库?
   Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。

   HTML 标签      用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单
   Bean 标签      在访问JavaBeans 及其属性,以及定义一个新的bean 时使用
   Logic 标签      管理条件产生的输出和对象集产生的循环
   Template 标签      随着Tiles框架包的出现,此标记已开始减少使用
   Nested 标签      增强对其他的Struts 标签的嵌套使用的能力

  < Html:form>, < html:submit>, < Html:button>, <Html:text>, <Html:select>
  <logic:iterate>, <logic:forward>, <logic:redirect>, <logic:iterate>, <logic:present>, <logic:empty> ... 参考: struts Logic标签说明
  <bean:write>, <bean:message>, <bean:parameter>, <bean:size>
 
   4. Tiles框架是什么?
Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。


   5.谈谈HashMap和Hashtable的区别。
答: HashMap是轻量级的(线程不安全的,效率高的)集合,Hashtable是重量级的
(线程安全的,效率低的)集合。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,
因为它是同步的。



6.什么是中间件?
中间件就是程序中可织入的,可重用的,与业务逻辑无关的各种组件。
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中
间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,
应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助
用户灵活、高效地开发和集成复杂的应用软件。
在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立
的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中
间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
分类:数据访问中间件,远程调用中间件,消息中间件,交易中间件,对象中间件。
举例:
1,RMI(Remote Method Invocations, 远程调用)
第 3 页 共 33 页
2,Load Balancing(负载均衡,将访问负荷分散到各个服务器中)
3,Transparent Fail-over(透明的故障切换)
4,Clustering(集群,用多个小的服务器代替大型机)
5,Back-end-Integration(后端集成,用现有的、新开发的系统如何去集成遗留的系统)
6,Transaction事务(全局/局部)全局事务(分布式事务)局部事务(在同一数据库
联接内的事务)
7,Dynamic Redeployment(动态重新部署,在不停止原系统的情况下,部署新的系统)
8,System Management(系统管理)
9,Threading(多线程处理)
10,Message-oriented Middleware面向消息的中间件(异步的调用编程)
11,Component Life Cycle(组件的生命周期管理)
12,Resource pooling(资源池)
13,Security(安全)
14,Caching(缓存)



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开发应用程序:
Model:Struts 没有提供model 类。这个商业逻辑必须由Web 应用程序的开发者以
JavaBean或EJB的形式提供

View:Struts提供了action form创建form bean, 用于在controller和view间传输数
据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基
础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,
可用于JSP中。
Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来
调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定
义Action规范,还需要在struts-config.xml的特定配置文件中进行配置,接收JSP输入
字段形成Action form,然后调用一个Action控制器。Action控制器中提供了model的逻
辑接口。

8.类的核心特性有哪些?
类具有封装性、继承性和多态性。
封装性:
类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类
中的私有变量和类中方法的实现细节。
继承性:
类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自
动拥有被继承类(父类)的全部成员。
多态性:
类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。



9.、请说出几个常用的异常类
答:NullpointException(空指针异常)
ClassNotFoundException(类找不到异常)
ClassCastException(类型转换异常)
IllegalArgumentException(非法参数异常)
ArithmeticException(算术异常)
NumberFormatException(数据格式异常)
IndexOutOfBoundsException(数组下标越界异常)
IllegalStateException(非法语句异常)

你可能感兴趣的:(mvc,应用服务器,struts,面试,中间件)