文档库 最新最全的文档下载
当前位置:文档库 › struts2复习题(含答案)

struts2复习题(含答案)

struts2复习题(含答案)
struts2复习题(含答案)

Struts2复习题

1.以下属于struts2的控制器组件是:

A.Action

B.ActionForm

C.ActionServlet

D.dispatchAction

2.以下属于struts2配置文件中的配置元素是:(多选)

A.

B.

C.

D.

3.关于struts1和struts2对比的说法正确的是:

A.struts1要求Action类继承struts1框架中的Action父类,struts2中则不一定需要继承,可以是POJO类

B.struts1中的Action不是线程安全的,而struts2中的Action是线程安全的

D.struts1使用OGNL表达式语言来支持页面效果,struts2通过ValueStack技术使标签库访问值

4.以下关于ValueStack说法正确的是:(多选)

B.每个Action对象实例拥有多个ValueStack对象

C.Action中封装了需要传入下一个页面的值,Action对象封装在ValueStack对象中

D.ValueStack会在请求开始时被创建,请求结束时消亡

5.关于struts2配置文件说法正确的是:

A.必须在WEB-INF/classes目录下

B.名字必须为struts.xml

C.配置Action时,必须配置包信息

D.使用元素配置转发

6.在struts2配置中用()元素来配置常量:

A.

B.

C.

D.

7.关于struts2包的说法正确的是:

A.struts2框架使用包来管理常量

B.struts2框架定义包时必须指定name属性

D.struts2框架中使用包来管理Action

8.struts2中获取Servlet API的方法正确的是:(多选)

A.使用ActionContext对象以解耦合的方法访问Servlet API

B.使用ServletActionContext对象以解耦合的方式访问Servlet API

C.使用ActionContext对象以耦合的方式访问Servlet API

D.使用ServletActionContext对象以耦合的方式访问Servlet API

9.struts2动态方法调用的格式为:

A.ActionName?methodName.action

B.ActionName! methodName.action

C.ActionName*methodName.action

D.ActionName@mathodName.action

10.如果要实现struts2的数据校验功能

A.普通Action类可以实现

B.继承自Action接口可以实现

C.继承自ActionSupport类可以实现

D.继承自ActionValidate类可以实现

11.如果要实现自定义处理结果,需继承那个类

A.Dispathcer

B.StrutsResultSupport

C.Support

D.Action

12.实现动态返回结果,在配置元素时使用()指定视图资源

A.${属性名}

B.@{属性名}

C.${'属性名'}

D.${"属性名"}

13.用于实现国际化的struts2标签是:

A.

B.

C.

D.

14.struts2默认的处理结果类型是:

A.dispatcher

B.redirect

C.chain

D.forward

15.自定义转换器继承的抽象类是:

A.Converter

B.TypeConverter

C.StrutsTypeConverter

D.DefaultTypeConverter

16.自定义转换器的注册方式有:

A.只有全局注册方式

B.只有局部注册方式

C.只有全局和局部注册方式

D.以上说法都不对

17.自定义拦截器类的方式有:(多选)

A.实现Interceptor接口

B.实现AbstractInterceptor接口

C.继承Interceptor类

D.继承AbstractInterceptor类

18.在struts.xml文件中,使用()元素定义拦截器

A.

B.

C.

D.

19.

20.以下属于struts2标签的是:(多选)

A.Ajax标签

B.数据访问标签

C.logic标签

D.bean标签

21.以下哪个标签是struts2中的用于循环迭代:

A.

B.

C.

D.

22.Struts2主要核心功能是由()实现

a)过滤器

b)拦截器

c)类型转换器

d)配置文件

23.

24.Struts2框架由()和()框架发展而来的【选择二项】

a)Hibernate

b)Struts 1

c)Spring

d)WebWork

25.Struts2以(B)为核心,采用()的机制处理用户请求

a)Struts

b)拦截器

c)jar包

26.struts2中,不属于Action接口中定义的字符串常量的是()

a)SUCCESS

b)FAILURE

c)ERROR

d)INPUT

27.struts2在控制器类中一般需要添加相应属性的()和()【选择二项】

a)setter方法

b)as方法

c)getter方法

d)is方法

28.struts2控制器需要在()配置文件中进行配置

a)web.xml

b)struts.xml

c)application.porperties

d)webwork.xml

29.不属于struts2标签库的是()

a)

b)

c)

d) 4.在JSP页面中可以通过Struts 2提供的( D )标签来输出国际化信息。 A. B. C. D. 5.资源文件的后缀名为( D )。 A.txt B.doc C.property D. properties 6.以下关于struts的描述中,不正确的是( BD )(选两项) A. struts 是一个基于JAVA EE的MVC B. struts2的框架配置文件是struts-config.xml C. struts2的控制组建核心包括核心控制和业务控制器 D. 在struts中解决中文乱码可以通过修改struts.I18n.encoding的值为GBK来实现 7.在struts.xml中。假如在一个package中没有配置namespace,那么在其中配置一个Action 名字叫做login,它的result是这样配置的/login.jsp,已知在此配置文件 中还有另一个namespace为user的package其中也有一个Action名字为login,它的result 是这样配置的/loginUser.jsp那么在以下什么情况下将能访问到 login.jsp( A ) A.在根路径后输入/login B.在根路径后输入/user/login C.在根路径后输入/login/user D.在根路径后输入/abc/login 8.在不同的线程在调用Action时创建几个Action实例( C) A.1个 B.2个 C.每个线程创建1个。 D.可以自定义配置。 9.MVC模式中的M在Java Web项目中是指( B ) A.业务层 B.模型层 C.JSP页面 D.Servlet或Action 10.Struts2体系中的控制器主要由( AC )两部分组成(选两项)。 A.核心控制器 B.拦截控制器 C.业务控制器 D.页面控制器 11.StrutsPrepareAndExecuteFileter默认加载的struts.xml文件位于(C)。 A.WebRoot根目录下 B.WEB-INF目录下 C.WEB-INF/classes目录下 D.WEB-INF/lib目录下 12.Struts2使用( C )封装用户请求参数,使用户无需手动写代码去作用域中取参数的值 A.Servlet B.Form C.Action D.ActionForm 13.Struts2中使用的处理用户请求的类在配置文件中使用( C )标签来表示 A. B. C. D. 14.关于Struts中的配置文件说法错误的是(B ) A.一般名为struts.xml B.配置文件名称有限制,只能为struts.xml C.配置信息主要放在标签内 D.可以在web.xml文件中指定要加载的struts配置文件位置 15.Java Web项目在运行时通过web.xml中的( A )标签来得知页面请求交给struts框架处理。 A. B. C. D. 16.关于业务控制器的默认访问扩展名说明不正确的是( C )。 A.通常为*.action,但是也可以改成其他的,如*.do B.可以通过配置struts的属性struts.action.extension来指定扩展名 C.若将一个表单提交到person.action,表示提交到的action类是PersonAction

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(控制反转,也称依赖注

Struts2框架工作原理及应用体会

2012年第11卷第6期 产业与科技论坛2012.(11).6 Industrial &Science Tribune Struts2框架工作原理及应用体会 □宋 君 张家爱 【摘要】通过针对特定用户的分析,搭建以Struts2为技术核心的旅行社管理系统。本文简单的介绍了MVC 、 Struts2的工作原理,同时总结了在项目制作过程中所得到的心得。 【关键词】 Struts2;MVC ;FilterDispatcher ;Action 【基金项目】本文为大学生科技创新院级基金项目(编号:2011070)成果 【作者单位】宋君,吉林农业科技学院信息工程学院;张家爱,吉林农业科技学院信息工程学院教师 本着锻炼自我与积极参与到实用性技术的目标,以发掘自身创新意识为前提。利用空闲时间,在老师的指导下,进行了一次大学生创新项目的实践性活动。本着实用原则,以某中小旅行社为客户(根据用户需求,匿名),以Struts2框架为基点,进行了一次旅行社管理系统的开发。在项目结束之余, 特将在项目过程中经历的种种认识进行了简单的总结,希望让阅读本文的朋友们,更多的参与到此类活动中。 一、基础思想— ——MVC 简述作为时下经典框架之一, MVC 具有其独特的价值。MVC 框架简单的说,就是将数据模型与用户视图进行分离。通过控制器进行协调处理的一种结构是框架。同时,也是本文中要讨论的Sturts2框架的基础思想。 M 是指模型层(Model ),V 是指用户视图(View ),C 则是指控制器 (Controller )。这种划分方式是以将模型层与视图层进行代码分离,从而降低两者之间的耦合性,使同一程序可以使用不同形式进行表现。不同层之间的修改不会或尽量少的印象到其他层功能的史前为前提。有效的提高的代码的维护性和设计难度。 图1 二、 Struts2工作原理(一)Struts2框架组成。Struts2框架由三个主要部分组成:核心控制器、业务控制器,以及由用户实现的业务逻辑组件。这里我们将侧重于核心控制器与业务控制器的理解与说明。 (二)核心控制器:FilterDispatcher 。FilterDispatcher 是Struts2框架的核心控制器,在此,我们可以将FilterDispatcher 看作一个类似于过滤网的过滤器。当用户发出请求,并到达Web 硬哟那种时,该过滤器会过滤用户请求。如果用户请求的结尾为action ,则将该请求转入Struts2框架进行处理。当Struts2框架获得了*.actio 请求后,会根据请求前面“*”的那部分内容,决定调用哪个业务逻辑组件作为响应单位。这里需要说明的是Struts2用来处理用户请求的Action 实例并不是业务控制器,而是作为Action 的代理———正因为Struts2的一大特点,与Servlet API 的非耦合性,使得用户实现的业务控制器无法直接处理用户请求。有效的提高了后期调试维护的效率。而Struts2框架再次提供了了一系列的拦截器。这些拦截器负责将HttpServletRequest 请求的参数解析出来,传入Action 中,并毁掉Action 的Execute 方法来处理用户请求。用户实现的Action 类仅作为Struts2的Action 代理的代理目标。用户实现的业务控制器则包含了对用户请求的处理。用户的请求数据包含在HttpServletRequest 对象中,而用户的Action 类无需访问HttpServletRequest 对象。拦截器负责将HttpServletRequest 里的请求数据解析出来,并传给业务逻辑组件Action 实例。 (三)业务控制器。业务控制器就是前文提到的用来实现用户Action 的实力,这里的每个Action 类通常包含有一个execute 方法,当业务控制器处理完用户的请求后,该方法将会针对此次处理返回一个字符串— ——该字符串就是一个逻辑树图名。当程序开发人员开发出系统所需要的业务控制器后,还需要针对性的配置Struts2的Action ,即需要配置Ac- tion 的以下三个部分:(1)Action 所处理的URl 。(2)Action 组件所对应的实现类。(3)Action 里包含的逻辑试图和物理资源之间的对应关系。每个Action 都要处理一个用户请求,而用户请求则总是包含有指定的URL 。当核心控制器过滤用户请求,并调用后,根据请求的URL 和Action 处理URL 之间的对应关系来处理转发。 · 342·

Struts2练习题说课讲解

Struts 2作业 1.简述什么是MVC? 答:MVC 的全称为model-view-controller(模型-视图-控制器)。MVC 是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护。使用MVC 开发出来的应用程序一般包括以下几块内容:·控制器(Controller):控制器类处理客户端向Web 应用程序发出的请求,获取数据,并指定返回给客户端,用来显示处理结果的视图。·模型(Model):模型类代表了应用程序的数据,这些数据通常具有一个数据验证逻辑,用来使得这些数据必须符合业务逻辑。·视图(View):视图类是Web 应用程序中用来生成并显示HTML 格式的服务器端对客户端请求的响应结果的模板文件 2.Struts 2以(WebWork)为核心,采用(拦截器)的机制来处理用户的 请求。 3.简述一个请求在Struts 2框架中的处理流程,请按自己对框架的理解叙述。答:1-用户提交自己的请求;2-由web.xml拦截,转发到action进行处理;3- Struts.xml根据相应的action配置,调用相应的方法来处理,并根据结果转发到不同的页面。 4.不属于Action接口中定义的字符串常量是( B )? A)SUCCESS B)FAILURE C)ERROR D)INPUT 5.资源文件的后缀名为(D)? A)txt B)doc C)property D)properties 6.在JSP页面中可以通过Struts 2提供的(D)标签来输出国际化信息。 A) B) C) D) 7.以文字过滤拦截器为例,简述拦截器的使用步骤。 答:1-用户提交自己的请求; 2-由web.xml拦截,转发到action进行处理; 3- Struts.xml根据相应的action配置,调用相应的方法来处理,并根据结果转发到不同的页面; 8.在同一个系统中配置多个拦截器,试说明它们的执行顺序。 答:一般来说:先配置的拦截器,会先获得执行的机会,但是实际情况不是这样。execute()方法执行之前,配置在前面的拦截器,会先对用户的请求起作用。execute()方法执行之后,配置在后面的拦截器,会先对用户的请求起作用。(两头向中间靠拢的执行)。 9.请简述struts2中输入校验的几种方式。

struts2复习题(含答案)

Struts2复习题 1. 以下属于struts2 的控制器组件是: A. Action B.ActionForm C.ActionServlet D.dispatchAction 2. 以下属于struts2 的体系结构的是:(多选) A. struts2 控制器组件 B.struts2 配置文件 C.FilterDispathcer D.Action 3. 以下属于struts2 配置文件中的配置元素是:(多选) A. B. C. D. 4. 关于struts1 和struts2 对比的说法正确的是: A. struts1 要求Action 类继承struts1 框架中的Action 父类,struts2 中则不一定需要继承,可以是POJO类 B. struts1 中的Action 不是线程安全的,而struts2 中的Action 是线程安全的 C. struts1 和struts2 中都使用ActionForm 对象封装用户的请求数据 D. strutsl使用OGNL表达式语言来支持页面效果, struts2通过ValueStack技术使标签库访问 值 5. 以下关于ValueStack说法正确的是:(多选) A. 每个Action对象实例拥有一个ValueStack对象 B每个Action对象实例拥有多个ValueStack对象 C. Action中圭寸装了需要传入下一个页面的值,这些值圭寸装在ValueStack对象中 D. ValueStack会在请求开始时被创建,请求结束时消亡 6. 关于struts2 配置文件说法正确的是: A.必须在WEB-INF/classes目录下B名字必须为struts.xml C.配置Action时,必须配置包信息 D.使用元素配置转发 7. 在struts2 配置中用()元素来配置常量: A. B. C. D. 8. 关于struts2 包的说法正确的是: A. struts2 框架使用包来管理常量 B. struts2 框架定义包时必须指定name 属性 C. struts2 框架中配置包时,必须继承自struts-default 包,否则会报错 D. struts2 框架中使用包来管理Action 9. struts2 中获取Servlet API 的方法正确的是:(多选) A.使用ActionContext对象以解耦合的方法访问Servlet API B使用ServletActionContext对象以解耦合的方式访问Servlet API C使用ActionContext对象以耦合的方式访问Servlet API D使用ServletActionContext对象以耦合的方式访问Servlet API 10. struts2 动态调用的格式为: A. ActionName?methodName.action B. ActionName! methodName.action C. ActionName*methodName.action D. ActionName@mathodName.action 11. 如果要实现struts2 的数据校验功能 A.普通Action类可以实现 B继承自Action接口可以实现 C继承自ActionSupport类可以实现 D.继承自Actio nV alidate类可以实现 12. 如果要实现自定义处理结果,需继承那个类

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

struts2复习模拟题.doc

填空: 1.Struts 2以_过滤器_为核心,采用_矜截器_的机制来处理用户的请求。 2.构逮Struts 2应用的最基础的几个类库是_struts2-core_、_commons-logging_、 _xwork-core_^ _freamarker _____ 以及_ognl_。 3.Struts 2屮的控制器类是一个普通的_POjO_。 4.如果要在jSP页面屮使川Struts 2提供的标签库,酋先必须在页面屮使川taglib编译指令导入标签库?,其中taglib 编译指令力_<%@ taglib prefix=”s” uri=”strut-tags”%> _________ 。 5 .在Struts 2表华标签序?中,表単标签为__ _____ 。 6.ActionSupport 类实现了_action __________ 接U和_ validateable ________ 等接UI。 7.通过控制器类屮的 __ validate() ______ 方法来输出校验错误信息。 8.在Hibernate XML影射文件中描述主键生成机制,.其属性描述了主键的生成策略,至少写出三种策略名increment 、native 、uuid 。 9.在Hibernate中级联操作的属性值至少写出三个____________________ none ______ 、_____ s ave-update ______ 、__ all ______ o 10 Hibernate 的会ffi接口是____ Session 接口_____ ,它山接口 _SessionFactory 接口_创建;Hibernate处理事务的接口是______ Transaction接口 _______ :封妓HQL的接口足 _____ C riteria 接口_____ 0 11. Struts2框架山 _____ Struts ______ 和_____ WebWork _____ 框架发展而来。 12.Struts2屮的控制器类是一个普通的____ C lass _______ 。 13.注入资源的注释是 _ @ Resource ____

华为外包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应用可顺利移植。

struts2标签使用实例

Struts2中数据标签使用示例 S truts2提供了大量丰富的标签供使用,它不再像S truts1中一样,将种类标签进行分门列别,但可以根据其使用的用途用以区别。本文通过对S truts2中数据标签的学习,来对S truts2中标签的学习起到一个抛砖引玉的作用。 文中将介绍Action标签、Bean标签、Data标签、Include标签、P aram标签、Set标签、T ext标签、P roperty 标签等标签。 代码下载:https://www.wendangku.net/doc/f812848104.html,/y1ps2Mjpc3NiLKuetMOpCsZOOypD6KSdo8-46Zy2wpoMcABeo4vOC NJXtWDEO93-TXgZogwAF YxSOni5BEG2EoN65OFwHdG71v-/St ruts2DataTags.rar?download 一、标签 Action标签,顾名思义,是用来调用Action的标签,在JSP中页面中,可以指向具体指定某一命名空间中的某一Action。而标签的主体用于显示及渲染Actionr的处理结果。 1.WebRoot\pages\dataTagssuccess.jsp处理页面 <%@ page contentType="text/htm l; charset=GBK" %> <%@ taglib prefix="s" uri="/struts-tags" %> Action Tag 示例

Action Tag 示例

s:action标签用于在页面显示结果.
这里使用标签进行页面跳转,并用于显示处理的结果。 2.先来看st ruts.xml中的配置: /pages/dataTags/success.jsp

java-struts2复习题

Struts2复习题 1.以下属于struts2的控制器组件是: A.Action B.ActionForm C.ActionServlet D.dispatchAction 2.以下属于struts2的体系结构的是:(多选) A.struts2控制器组件 B.struts2配置文件 C.FilterDispathcer D.Action 3.以下属于struts2配置文件中的配置元素是:(多选) A. B. C. D. 4.关于struts1和struts2对比的说法正确的是: A.struts1要求Action类继承struts1框架中的Action父类,struts2中则不一定需要继承,可以是POJO类 B.struts1中的Action不是线程安全的,而struts2中的Action是线程安全的 C.struts1和struts2中都使用ActionForm对象封装用户的请求数据 D.struts1使用OGNL表达式语言来支持页面效果,struts2通过ValueStack技术使标签库访问值 5.以下关于ValueStack说法正确的是:(多选) A.每个Action对象实例拥有一个ValueStack对象 B.每个Action对象实例拥有多个ValueStack对象 C.Action中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中 D.ValueStack会在请求开始时被创建,请求结束时消亡 6.关于struts2配置文件说法正确的是: A.必须在WEB-INF/classes目录下 B.名字必须为struts.xml C.配置Action时,必须配置包信息 D.使用元素配置转发 7.在struts2配置中用()元素来配置常量: A. B. C. D. 8.关于struts2包的说法正确的是: A.struts2框架使用包来管理常量 B.struts2框架定义包时必须指定name属性 C.struts2框架中配置包时,必须继承自struts-default包,否则会报错 D.struts2框架中使用包来管理Action 9.struts2中获取Servlet API的方法正确的是:(多选) A.使用ActionContext对象以解耦合的方法访问Servlet API B.使用ServletActionContext对象以解耦合的方式访问Servlet API C.使用ActionContext对象以耦合的方式访问Servlet API D.使用ServletActionContext对象以耦合的方式访问Servlet API 10.struts2动态调用的格式为: A.ActionName?methodName.action B.ActionName! methodName.action C.ActionName*methodName.action D.ActionName@mathodName.action 11.如果要实现struts2的数据校验功能 A.普通Action类可以实现

软件工程师面试题含答案

、你对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 ,通过这个核心的控制器来

Struts2的工作机制原理分析及实例

Struts2的工作机制分析及实例 一、概述 本章讲述Struts2的工作原理。 读者如果曾经学习过Struts1.x或者有过Struts1.x的开发经验,那么千万不要想当然地以为这一章可以跳过。实际上Struts1.x 与Struts2并无我们想象的血缘关系。虽然Struts2的开发小组极力保留Struts1.x的习惯,但因为Struts2的核心设计完全改变,从思想到设计到工作流程,都有了很大的不同。 Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork 的核心,所以,Struts2并不是一个不成熟的产品,相反,构建在WebWork基础之上的Struts2是一个运行稳定、性能优异、设计成熟的WEB框架。 本章主要对Struts的源代码进行分析,因为Struts2与WebWork的关系如此密不可分,因此,读者需要下载xwork的源代码,访问https://www.wendangku.net/doc/f812848104.html,/xwork/download.action即可自行下载。 下载的Struts2源代码文件是一个名叫struts-2.1.0-src.zip的压缩包,里面的目录和文件非常多,读者可以定位到 struts-2.1.0-src\struts-2.0.10\src\core\src\main\java目录下查看Struts2的源文件,如图14所示。 (图14) 二、主要的包和类 Struts2框架的正常运行,除了占核心地位的xwork的支持以外,Struts2本身也提供了许多类,这些类被分门别类组织到不同的包中。从源代码中发现,基本上每一个Struts2类都访问了WebWork提供的功能,从而也可以看出Struts2与WebWork千丝万缕的联系。但无论如何,Struts2的核心功能比如将请求委托给哪个Action处理都是由xwork完成的,Struts2只是在WebWork 的基础上做了适当的简化、加强和封装,并少量保留Struts1.x中的习惯。

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属性:指定当表单验证失败时的转发路径。

Liferay Struts2 完整实例 修正

目录 一.Liferay,ext开发环境的搭建 (1) 二.集成struts2 (3) 1.依赖包: (3) 2.使用Struts2 (3) 三.使用Hibernate. Spring (4) 1.建立bean (4) 2.建立事务层: (5) 3 .建立持久层 (8) 4. Action 中调用事务层 (10) 三.将portlet注册到portal (11) 四.加入国际化 (13) 五.加入处理页面 (13) 2010年12月20日,修改在页面上的标签找不到国际化信息。 一.Liferay,ext开发环境的搭建 1.进入myeclipse,修改liferay-portal-src-5. 2.3文件名为portal。导入portal到eclipse. 2.展开portal工程目录,我们可看到一个release.properties文件, 新建一个它的扩展配置文件, 文件名为release.${username}.properties。 ${username}是计算机当前用户名 我文件名是release.Administrator.properties,文件内容只一行:lp.ext.dir=D:\myspace\ext 即扩展工程放置路径。 3.打开myeclipse里面ant视图(window--> show view --> ant) , 在ant视图中,点击添加, 选择:\portalspace\portal\目录下build.xml 顺序执行clean ,start ,build-ext

4.将liferay-portal-tomcat-6.0- 5.2.3.zip解压到D:\portalspace\目录下,并更名为servers。 在D:\portalspace\ext目录下我们可以看到app.server.properties文件, 同样我们也要建立一个扩展配置文件app.server.${username}.properties,文件内容两行:lp.ext.dir=D:/myspace/ext app.server.type=tomcat app.server.tomcat.dir=D:/ myspace /servers/tomcat-6.0.18 5.将myspace/ext 工程导入到eclipse中。 6.打开window --> preference --> myeclipse --> application servers 将其他应用服务器 disabble掉, 找到tomcat6,将tomcat home diretory 指向D:\myspace\servers\tomcat-6.0.18, 展开tomcat6,JDK选择我们配置好的JDK1.5+, JDK选项下面optional java vm argument输入如下内容: -Xms128m -Xmx256m -XX:MaxPermSize=128m 7.建立数据库lportal 。在D:\myspace\ext\ext-impl\src\portal-ext.properties文件中添加数据 库连接信息 # MySQL jdbc.default.driverClassName=com.mysql.jdbc.Driver jdbc.default.url=jdbc:mysql://localhost:3306/lportal https://www.wendangku.net/doc/f812848104.html,ername=root jdbc.default.password=root hibernate.dialect=org.hibernate.dialect.MySQLDialect 若不添加以上内容liferay就会使用自带默认数据库. 8.选择 :\myspace\ext\目录下build.xml 顺序执行clean,deploy 将ext项目部署到 tomcat-6.0.18. 然后选择eclipse中的tomcat6.0启动即可 9.在浏览器里输入http://localhost:8080/可以看到portal系统了。输入emal: test@https://www.wendangku.net/doc/f812848104.html, password: test登录

相关文档
相关文档 最新文档