Struts框架面试题
- 格式:docx
- 大小:16.73 KB
- 文档页数:8
目录1 Struts框架 (2)2 Spring框架 (8)3 AJAX技术 (14)4 Hibernate框架 (17)5 框架综合运用 (24)6 J2EE初级题目 (27)7 J2SE初级题目 (34)1Struts框架1.Struts框架的整体运行流程在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象,例如:Action的映射信息存放在ActionMapping对象中.当ActionServlet接收到一个客户请求时,将执行如下流程.A.检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;B.如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;C.根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm 的validate()方法;D.如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功;E. ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;F. Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件;G. ActionForward对象指向JSP组件生成动态网页,返回给客户2.ActionServlet在Struts框架中的总体作用功能是什么A.在web应用启动时ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象,例如:Action的映射信息存放在ActionMapping对象中。
1、请讲一下struts的流程答:用户提交表单Struts根据表单的请求路径,在web.xml中指定servlet,并根据<init-param>元素读取servlet的配置信息ActionServlet或者扩展的ActionServlet接收请求,并根据请求的路径来判断调用哪一个action,即action元素中的path路径,再根据action元素中的type属性,用来指定处理请求的逻辑action(属于控制器部分),再根据其name属性来绑定form-bean,即创建一个HelloForm对象,并把用户提交的表单数据传给ActionForm对象,这个对象保存在scope设置的范围内。
如果action的validate属性设置为true,则ActonServlet就调用HelloForm 对象的validate()方法,对表单进行验证。
ActionServlet查找action是否存在,如果不存在就创建一个实例,然后调用HelloAction的execute()方法。
通过execute()方法中的逻辑验证后,执行相关的业务逻辑,最后调用ActionMapping.findForward(“SayHello”)方法。
其中的参数SayHello与struts-config.xml文件中的action元素的forword属性值对应,则就将请求转发到“hello.jsp”页面,结束。
2、一条SQL语句的执行顺序是怎么样的?答:1、from子句组装来自不同数据源的数据;2、where子句基于指定的条件对记录行进行筛选;3、group by子句将数据划分为多个分组;4、使用聚集函数进行计算;5、使用having子句筛选分组;6、计算所有的表达式;7、使用order by对结果集进行排序。
3、CMM是什么?CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。
软件工程师面试题(含答案)一、MVC设计模式及其优缺点,结合Struts框架讨论其在Web应用中的使用MVC是一种应用观察者模式的框架模式,包括三个主要组成部分:模型、视图和控制器。
模型是业务处理层,独立于表现层;视图通过客户端数据类型显示数据,并回显模型层的执行结果;控制器是视图层和模型层之间的桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图。
MVC的优点是分离了应用程序的关注点,使得应用程序更易于维护和扩展。
缺点是增加了开发复杂度,需要更多的代码和设计时间。
在Web应用中,常用的MVC实现模式是Servlet-centric,即使用JSP、Servlet和JavaBean实现。
其中,JSP负责显示和收集数据,Servlet连接视图和模型,将视图层数据发送给模型层,JavaBean分为业务类和数据实体,业务类处理业务数据,数据实体承载数据。
Struts是一个Web应用程序框架,使用MVC实现模式二,即以控制器为核心。
它提供了一些组件,包括:Model:Struts没有提供model类,开发者需要自行提供商业逻辑的JavaBean或EJB形式。
View:n form创建form bean,用于在控制器和视图之间传输数据。
此外,Struts还提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序。
应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。
nServlet,n。
n需要符合Struts规范,并在struts-config.xml中进行配置,n form,n控制器。
n控制器提供了model的逻辑接口。
WebService是基于SOA架构的,不依赖于语言和平台,可实现不同语言间的相互调用,进行基于Http协议的网络应用交互。
WebService遵守WSDL/SOAP规范,实现不同语言间的调用。
Web Service = WSDL + SOAP + UDDI(webservice的注册)。
struts2常见面试题Introduction:Struts2是一种用于开发Java Web应用程序的开源Web应用框架。
在软件工程领域,Struts2常常是面试中的热门话题。
本文将介绍一些常见的Struts2面试题,并提供详细解答和示例。
Question 1: 什么是Struts2框架?它的主要特点是什么?Struts2是一个基于MVC设计模式的Web应用框架。
它通过集成多个核心组件(如拦截器、过滤器、表单验证等)提供了一套丰富的功能,用于简化开发和管理Java Web应用程序。
Struts2的主要特点包括:1. 松耦合:Struts2使用基于配置的方式来管理组件之间的依赖关系,降低了模块之间的耦合。
2. 灵活性:开发人员可以根据自己的需求进行扩展和定制,以适应不同的项目需求。
3. 可测试性:Struts2的组件松耦合特点使得单元测试变得容易,并且可以方便地模拟用户请求进行测试。
Question 2: Struts2的核心组件有哪些?Struts2的核心组件包括:1. Action:处理用户请求的核心组件,负责接收请求并执行相应的业务逻辑。
2. Interceptor:用于对请求进行预处理和后处理的拦截器组件。
3. Result:负责生成响应结果,可以是页面视图或其他格式的数据(如JSON、XML等)。
4. FilterDispatcher:负责将请求分发给合适的Action处理。
5. ValueStack:用于存储Action处理的结果数据,支持OGNL表达式以便于数据的访问和操作。
Question 3: 如何定义一个Struts2的Action?在Struts2中,可以通过以下几种方式来定义一个Action:1. 实现Action接口:通过实现Action接口,并提供相应的业务方法来处理请求。
2. 继承ActionSupport类:ActionSupport是一个提供了一些方便方法的抽象类,可以直接继承并实现自己的业务逻辑。
struts2面试题Struts2是一个基于Java开发的Web应用程序框架,被广泛应用于企业级Java应用开发中。
在面试中,面试官可能会提出一些关于Struts2的问题,以评估应聘者的技术水平。
下面是一些常见的Struts2面试题及其详细答案,希望对你在面试中有所帮助。
1. 什么是Struts2?Struts2是一个轻量级的、基于MVC模式的Web应用程序框架。
它采用Java Servlet API和JavaServer Pages (JSP)技术,并提供了一种简单易用的方式来开发可维护和可扩展的Web应用程序。
2. Struts2的主要特性是什么?Struts2的主要特性包括:- MVC架构:将应用程序分为模型、视图和控制器,使开发更容易管理和扩展。
- 拦截器:通过拦截器可以在请求处理的各个阶段添加自定义的逻辑。
- 标签库:提供了丰富的标签库,简化了页面开发。
- 表单验证:提供了灵活且强大的表单验证机制,可以验证用户输入的数据。
- 国际化支持:支持多语言和本地化。
- 配置简单:通过配置文件来管理应用程序的行为。
3. Struts2的工作原理是什么?Struts2的工作原理如下:1) 客户端发送HTTP请求到服务器。
2) 服务器将请求交给Struts2的过滤器(Filter)。
3) 过滤器通过配置文件找到对应的Action,并调用相应的方法。
4) Action处理请求,并返回一个结果页面的名称或一个结果对象。
5) 结果页面的名称通过配置文件进行映射,服务器将其发送给客户端。
4. 什么是Struts2中的Action类?Action类是Struts2框架中的核心组件,用于处理Web请求。
一个Action类对应一个业务功能,其包含了要执行的方法和数据。
它负责接收请求、处理业务逻辑、将结果返回给前端页面。
5. Struts2中的拦截器是什么?有哪些内置的拦截器?拦截器是Struts2中的组件,用于在请求处理的各个阶段添加自定义的逻辑。
第1篇一、引言随着互联网技术的飞速发展,Web框架在软件开发中扮演着越来越重要的角色。
掌握一门优秀的Web框架不仅能够提高开发效率,还能提升代码质量。
本面试题目将从多个角度对Web框架进行深入解析,并辅以实战案例,帮助您在面试中脱颖而出。
二、基础知识1. 什么是Web框架?Web框架是一套软件架构,它提供了一套标准的开发模式,用于构建Web应用程序。
它通常包含路由、模板、数据库交互、会话管理等功能。
2. 常见的Web框架有哪些?- Python:Django、Flask、Pyramid- Ruby:Ruby on Rails- PHP:Laravel、Symfony- Java:Spring MVC、Struts2- JavaScript:Express、Koa3. Web框架的核心组件有哪些?- 路由(Routing):根据请求的URL,将请求映射到对应的控制器或函数。
- 模板引擎(Template Engine):将数据渲染到HTML模板中。
- 数据库ORM(Object-Relational Mapping):将对象映射到数据库表。
- 会话管理(Session Management):管理用户会话信息。
- 中间件(Middleware):在请求处理过程中添加额外的处理逻辑。
三、面试题目1. Python Web框架:Django- 题目1:简述Django的MVC模式与传统的MVC模式有何不同?- 解析:Django采用MVC模式,但与传统的MVC模式相比,Django将模型(Model)和视图(View)进行了合并,形成了一个更紧凑的框架结构。
- 题目2:解释Django中的`__init__.py`文件的作用。
- 解析:`__init__.py`文件用于初始化Python包,确保Django能够正确加载应用程序中的模块。
- 题目3:简述Django中ORM的基本用法。
- 解析:Django的ORM允许开发者使用Python代码操作数据库,而不需要编写SQL语句。
(问答题+选择题(在55页))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-many4.Struts1流程:1、客户端浏览器发出HTTP请求。
2、根据web.xml配置,该请求被ActionServlet接收。
3、根据struts-config.xml配置,ActionServlet先将请求中的参数填充到ActionForm中,然后ActionServlet再将请求发送到Action 进行处理。
struts面试题Struts是一种基于Java的开源Web应用程序框架,用于开发企业级Java Web应用程序。
在面试过程中,了解和掌握Struts框架的相关知识是非常重要的。
下面将介绍一些常见的Struts面试题及其答案,希望能够帮助你在面试中获得成功。
1. 什么是Struts框架?Struts是一个基于MVC(Model-View-Controller)模式的Java Web 应用程序框架。
它将应用程序的不同部分(模型、视图和控制器)分离开来,以达到代码复用和易维护的目的。
2. Struts框架的核心组件有哪些?Struts框架的核心组件包括:- Action:处理用户请求,并进行相应的业务逻辑处理。
- ActionForm:用于封装用户请求的表单数据。
- ActionMapping:将请求和具体的Action进行映射。
- ActionForward:定义Action处理完成后的跳转方式。
- Interceptor:用于在Action处理前后进行拦截和处理。
- View(JSP页面):展示数据给用户。
3. Struts框架的工作原理是什么?当用户发送请求时,Struts框架根据配置文件中的ActionMapping,调用相应的Action来处理请求。
Action执行相应的业务逻辑后,将处理结果封装到ActionForm中,并通过ActionForward指定跳转到哪个View(JSP页面)进行展示。
4. Struts中的ActionForm和普通的JavaBean有什么区别?ActionForm是Struts框架提供的一个特殊的JavaBean,用于封装用户请求的参数。
相对于普通的JavaBean,ActionForm还具有以下特点:- 可以通过数据校验来验证用户输入。
- 可以保存表单数据并跨多个请求之间共享数据。
5. Struts的数据校验是如何实现的?Struts提供了基于XML配置文件和基于注解的两种数据校验方式。
1. 【基础题】请描述访问控制符的各自作用域与区别答:√√√√√√√√√一、名词解释二、问答题1. 【中等题】请说出ArrayList和Vector的区别答:主要从二方面来说.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的二.数据增长:当需要增长时,Vector 默认增长为原来一培,而ArrayList却是原来的一半2. 【中等题】请说出HashMap和Hashtable的区别答:HashMap与HashT able主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的三.值:只有HashMap可以让你将空值作为一个表的条目的key或value3. 【基础题】Collection 和Collections的区别答:Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口第十八章输入输出笔试题一、填空题1. 【基础题】File对象的isFile()方法作用是判断是否是文件,getAbsolutePath() 方法作用是获取文件或目录的绝对路径。
2. 【基础题】BufferedReader和BufferedWriter以字符流的方式读写文本文件,且效率更高。
3. 【基础题】FileInputStream和FileOutputStream以字节流的方式读写文本文件。
二、选择题1. 【基础题】下列哪个类是实体类(BC )A. InputStreamB. PrintStreamC. SocketD. ReaderE. DataInput2. 【提高题】请选择下列程序的运行结果(A)public class TestIOapp{public static void main(String [] args) throws IOException{StringReader stingin = new StringReader("test");LineNumberReader in = new LineNumberReader(stingin);PrintWriter out = new PrintWriter(System.out);out.println(in.readLine());out.flush();}}A. testB. test:1C. 1:testD. 1 test3. 【提高题】请选择下列程序的运行结果( B )public class TestIOapp{public static void main(String [] args) throws IOException{RandomAccessFile file = new RandomAccessFile("test.txt","rw");file.writeBoolean(true);file.writeInt(123456);file.writeInt(7890);file.writeLong(1000000);file.writeInt(777);file.writeFloat(.0001f);file.seek(5);System.out.println(file.readInt());}}A. 123456B. 7890C. 1000000D. 777E. 0001三、名词解释四、问答题1. 【中等题】请说出java.io.reader和java.io.inputstream的区别答:java.io.Reader 和java.io.InputStream 组成了Java 输入类。
Spring,hibernate,struts的面试笔试题(含答案)Hibernate的相关试题:1、Hibernate的工作原理?hibernate的初始化读取hibernate的配置信息,创建SessionFactory。
A、创建Configeration的实例。
它的构造方法:将配置文件信息(hibernate-config.xml)读入到内存。
一个Configeration实例代表java类到sql数据库映射的集合。
B、创建SessionFactory实例。
把Configeration的所有配置信息拷贝到SessionFactory的缓存中。
SessionFactory是实例代表一个数据库的存储源,创建后不再与Configeration有关联。
C、调用SessionFactory创建Session方法。
1)、用户自行创建JDBC连接。
Connection con=dataSource.getConnection();Session s=SessionFactory.openSession(con);2)、让SessionFactory提供连接Session s=sessionFactory.openSession();D、通过Session接口提供的各种方法类访问数据库。
原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Sesssion4.创建事务Transation5.持久化操作6.提交事务7.关闭Session8.关闭SesstionFactory2、Hibernate的缓存体系一级缓存:Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象。
每个Session 都有自己独立的缓存,且只能被当前工作单元访问。
二级缓存:SessionFactory的外置的可插拔的缓存插件。
其中的数据可被多个Session共享访问。
SessionFactory的内置缓存:存放了映射元数据,预定义的Sql语句。
1. 简述Struts框架的初始化流程。
答案:对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化控制器ActionServletActionServlet从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范围内,然后把请求转发到恰当的视图组件,视图组件通过<html:errors>标签把request范围内的ActionErrors对象中包含的错误消息显示出来,提示用户修改错误。
5在struts配置文件中action元素包含哪些属性和子元素?答案:path属性:指定请求访问Action的路径type属性:指定Action的完整类名name属性:指定需要传递给Action的ActionForm Beanscope属性:指定ActionForm Bean的存放范围validate属性:指定是否执行表单验证input属性:指定当表单验证失败时的转发路径。
<action>元素还包含一个<forward>子元素,它定义了一个请求转发路径。
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、<html:form>B、<html:text>C、<html:errors>D、<html:message>答案:A B C9、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,G12问题:在Struts应用的控制器中包含哪些组件?选项:(A) JSP(B) Servlet(C) ActionServlet(D) Action(E)代表业务逻辑或业务数据的JavaBean(F) EJB(G) 客户化标签答案:B,C,D13.在struts配置文件中action元素包含哪些属性和子元素?答案:path属性:指定请求访问Action的路径type属性:指定Action的完整类名name属性:指定需要传递给Action的ActionForm Beanscope属性:指定ActionForm Bean的存放范围validate属性:指定是否执行表单验证input属性:指定当表单验证失败时的转发路径。
<action>元素还包含一个<forward>子元素,它定义了一个请求转发路径。
14. 问题:在Struts应用的模型中包含哪些组件?选项:(A) JSP(B) Servlet(C) ActionServlet(D) Action(E) 代表业务逻辑或业务数据的JavaBean(F) EJB(G) 客户化标签答案:F15. 问题: struts框架中,关于FormBean,下列说法正确的是:A FormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给ActionB 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证C 用户每次提交表单,都会产生一个新的FormBean实例D 动态FormBean不能进行验证操作答案:A16. 问题:struts框架中,在一个Action的配置信息中,name属性指的是:A 当前action实例的名字B 当前action所在的类的名字C 该Action中调用的FormBean的实例的名字D 该Action中调用的FormBean的类的所在包名答案:C17. 问题:关于struts项目中的类与MVC模式的对应关系,说法错误的是?A Jsp文件实现视图View的功能B ActionServlet这一个类是整个struts项目的控制器C ActionForm、Action都属于Model部分D 一个struts项目只能有一个Servlet答案:D18、问题:以下哪些说法是正确的?选项:(A)每个HTTP请求对应一个单独的ActionServlet实例(B)对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的HelloAction实例。
(C)每个子应用对应一个单独的RequestProcessor实例(D)每个子应用对应一个单独的web.xml文件答案:C19 ActionForm Bean对象是由谁创建的?选项:(A) <html:form>标签处理类(B) ActionServlet(C) RequestProcessor(D) Action答案:C20、struts框架,错误的是?A Struts中无法完成上传功能B Struts框架基于MVC模式C Struts框架容易引起流程复杂、结构不清晰等问题D Struts可以有效地降低项目的类文件数目答案:C21、问题:以下代码定义了一个变量,如何输出这个变量的值?<bean:define id=”stringBean” value=“helloWorld“/>选项:(A)<bean:write name=“stringBean”/>(B) <bean:write name=“helloWorld”/>(C)<%= stringBean%>(D)<% StringmyBean=(String)pageContext.getAttribute(“stringBean”,PageContext.PA GE_SCOPE);%> <%=myBean%>答案: A,D22、问题:把静态文本放在Resource Bundle中,而不是直接在JSP文件中包含这些静态文本,有什么优点?答案: 提高可维护性提高可重用性支持国际化23在struts配置文件中action元素包含哪些属性和子元素?答案:path属性:指定请求访问Action的路径type属性:指定Action的完整类名name属性:指定需要传递给Action的ActionForm Beanscope属性:指定ActionForm Bean的存放范围validate属性:指定是否执行表单验证input属性:指定当表单验证失败时的转发路径。