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(非法语句异常)
分享到:
相关推荐
在深入探讨Struts面试题之前,我们首先理解Struts1的基本架构和工作原理。 **1. Struts1框架的核心组件:** - **ActionServlet**:这是Struts1的核心控制器,它是一个实现了Servlet接口的类。当用户发起HTTP请求时...
JAVA Struts2 框架面试题解析 本文将详细解析 JAVA Struts2 框架相关知识点,涵盖异常处理、Servlet 生命周期、集合框架、HashMap 和 Hashtable 的区别、final、finally 和 finalize 的区别、sleep 和 wait 的区别...
以上是关于Struts面试题的一些常见知识点,理解和掌握这些内容将有助于Java程序员在面试中展示自己对Struts框架的深入理解。同时,不断实践和探索Struts的高级特性和最佳实践也是提升技能的关键。
Spring、Struts2、Hibernate面试题详解 本文将详细解释 Spring、Struts2、Hibernate 面试题中的知识点,涵盖了 MVC 模式、Struts1.2 和 Struts2.0 的区别、单例模式、Servlet 依赖、可测试性、项目中使用 SSH 的...
Struts 是一个开源的Java Web框架,由Apache软件基金会维护,主要用于构建企业级...以上是关于Struts基础的一些常见面试题和答案,深入理解和掌握这些概念对于Java Web开发者来说非常重要,尤其是在处理企业级应用时。
在面试中,了解Struts2的核心组件及其与Struts1的区别是至关重要的。熟悉这些知识点可以帮助开发者在实际项目中更有效地利用Struts2框架,提高开发效率和应用的质量。同时,理解Web项目开发的角色划分和流程规范,也...
6、java常见面试题 7、java程序员面试宝典 8、java面试题及答案 9、java面试题编程篇 10、Oracle面试题 11、Oracle企业面试题集锦 12、Spring面试题 13、SSH面试题 14、Strut+Spring+Hibernate面试题 15、张孝祥整理...
这些面试题涵盖了Hibernate、Struts和Spring的主要概念、工作原理和最佳实践,深入理解和掌握这些知识点对于Java开发者来说至关重要。在实际面试中,除了基础理论知识,面试官还会关注开发者在项目中如何应用这些...
- **面试题示例:**解释Struts的工作流程;什么是ActionForm?如何处理表单验证? 2. **Hibernate框架** Hibernate是一个对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库,简化了数据库操作的复杂...
【面试题总结】 1. 了解Struts的工作流程和优缺点,理解Action的线程安全性问题。 2. 理解MVC模式,知道Struts如何实现MVC,以及MVC的组成部分。 3. 熟悉Spring的AOP和IOC概念,理解它们在Spring中的应用。 4. 掌握...
标题《200+最常见Java面试题参考答案(嗯嗯).pdf》说明这是一份包含了200多道最常见Java面试问题及其参考答案的PDF文档。Java作为一门编程语言,在全球范围内被广泛使用,尤其在企业级应用和安卓开发方面表现出色。...
框架面试题,集合了String,struts2,springmvc 在本文中,我们将详细讨论框架面试题,涵盖了String、struts2和springmvc等多个方面的知识点。 首先,让我们从IOC容器开始。IOC容器是具有依赖注入功能的容器,是...
### Struts、Spring、Hibernate 面试题详解 #### 1. Action 是否线程安全?如果不是,如何保证 Action 的线程安全? - **答案**:通常情况下,Struts 的 Action 不是线程安全的。因为同一个 Action 实例可能会被多...
Java架构师面试题涵盖了许多关键领域,包括J2EE开发、大数据处理、日志管理、权限分配、服务扩展性、负载均衡、性能调优、系统整合、软件开发模型、云计算理解以及框架比较与安全性分析。以下是对这些知识点的详细...
在IT行业的面试中,SSH(Struts、Hibernate、Spring)框架是常见的面试主题,因为这三大框架在企业级Java应用开发中占据着核心地位。以下是对这些框架的一些关键知识点的详细解释: 1. **Hibernate**: - **工作...
通过阅读和练习《三大框架SSH面试题.docx》中的题目,你可以更好地检验自己的知识水平,找出不足并加以补充,从而提高获得高薪工作的机会。在学习过程中,不断实践和反思,将理论知识转化为实际能力,才能在面试中...
以上涵盖了 Spring、Struts 和 Hibernate 的一些常见面试题及解答,希望对准备相关技术面试的读者有所帮助。对于这些技术的理解不仅限于理论知识,更重要的是能够在实际项目中运用并解决具体问题。
面试中可能会问到Struts的生命周期,ActionForm、ActionServlet、ActionMapping和ActionForward等概念,以及如何处理表单数据和验证。 面试时可能会综合考察这三个框架的整合使用,如Spring与Hibernate的集成,以...