struts2复习总结计划题.docx
Struts2 复习题1.以下属于 struts2 的控制器组件是:2.以下属于 struts2 的体系结构的是: ( 多选 )控制器组件配置文件3.以下属于 struts2 配置文件中的配置元素是: ( 多选 )A.<package>B.<action>C.<form-beans>D.<action-mappings>4.关于 struts1 和 struts2 对比的说法正确的是:要求 Action类继承struts1框架中的Action父类,struts2中则不一定需要继承,可以是POJO类中的 Action不是线程安全的,而struts2中的Action是线程安全的和 struts2 中都使用 ActionForm 对象封装用户的请求数据使用 OGNL表达式语言来支持页面效果,struts2通过ValueStack技术使标签库访问值5.以下关于 ValueStack 说法正确的是: ( 多选 )A. 每个 Action 对象实例拥有一个 ValueStack 对象B. 每个 Action对象实例拥有多个ValueStack对象中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中会在请求开始时被创建,请求结束时消亡6. 关于 struts2配置文件说法正确的是:A. 必须在 WEB-INF/classes目录下B. 名字必须为C.配置 Action时,必须配置包信息D. 使用 <forward> 元素配置转发7.在 struts2 配置中用()元素来配置常量 :A.<const>B.<constants>C.<constant>D.<constant-mapping>8.关于 struts2 包的说法正确的是:框架使用包来管理常量框架定义包时必须指定 name属性框架中配置包时,必须继承自struts-default包,否则会报错框架中使用包来管理Action9. struts2 中获取Servlet API 的方法正确的是: ( 多选 )A. 使用 ActionContext对象以解耦合的方法访问Servlet APIB. 使用 ServletActionContext对象以解耦合的方式访问Servlet APIC.使用 ActionContext对象以耦合的方式访问Servlet APID.使用 ServletActionContext对象以耦合的方式访问Servlet API10.struts2 动态调用的格式为:?!11.如果要实现 struts2 的数据校验功能A. 普通 Action类可以实现B. 继承自 Action接口可以实现C.继承自 ActionSupport类可以实现D.继承自 ActionValidate类可以实现12.如果要实现自定义处理结果,需继承那个类13.实现动态返回结果,在配置 <result> 元素时使用()指定视图资源A.${ 属性名 }B.@{ 属性名 }C.${'属性名'}D.${"属性名"}14.用于实现国际化的 struts2 标签是:15.struts2 默认的处理结果类型是:16.自定义转换器继承的抽象类是:17.自定义转换器的注册方式有:18.自定义拦截器类的方式有: ( 多选 )A. 实现 Interceptor接口B. 实现 AbstractInterceptorC.继承 Interceptor类D.继承 AbstractInterceptor 接口类19.在文件中,使用()元素定义拦截器A.<interceptor-ref>B.<interceptor>C.<intercep>D.<default-interceptor-ref>20.在 OGNL中?操作符的作用是:A.取出符合选择逻辑的第一个元素B.取出符合选择逻辑的最后一个元素21.以下属于 struts2 标签的是: ( 多选 )标签 B. 数据访问标签标签标签22.以下哪个标签是 struts2 中的用于循环迭代 :A.<s:property>B.<s:iterator>C.<s:logic>D.<s:foreach>23. Struts2主要核心功能是由()实现a)过滤器b)拦截器c)类型转换器d)配置文件24. Struts中的ActionServlet属于MVC模式()a)视图b)模型c)控制器d)业务层25.Struts2 框架由()和()框架发展而来的【选择二项】a)Hibernateb)Strutsc)Springd)WebWork26. Struts2以(B)为核心,采用()的机制处理用户请求a)Strutsb)WebWorkc)拦截器d)jar 包27. struts2中,不属于Action接口中定义的字符串常量的是()a)SUCCESSb)FAILUREc)ERRORd)INPUT28. struts2在控制器类中一般需要添加相应属性的()和()【选择二项】a)setter 方法b)as 方法c)getter 方法d)is 方法29.struts2 控制器需要在()配置文件中进行配置a)b)c)d)30.不属于struts2标签库的是()a)<s:textfield>b)<s:textarea>c)<s:submit>d)<select>31.在JSP页面中可以通过Struts2提供的()标签来输出国际化信息a)<s:input>b)<s:messages>c)<s:submit>d)<s:text>32.资源文件的后缀名为()a)txtb)docc)propertyd)properties33. struts2自定义类型转换器必须实现的接口是()a)Convertb)TypeConverterc)StrutsTypeConverterd)StrutsConvert34. struts2关于注册全局类型转换器的说法正确的是()【选择二项】a)必须提供文件b)注册文件的格式为:复合类型 =对应类型转换器c)注册文件的格式为:对应类型转换器=复合类型d)以上说法都不正确35. struts2自定义拦截器中的“return”代码表示()【选择二项】a)不执行目标 Action 的方法,直接返回b)执行目标 Action 的方法,直接返回逻辑视图名称c)在自定义拦截器中,该代码是必需的d)在自定义拦截器中,该代码是可选的36. struts2中,以下配置文件上传拦截器只允许上传bmp图片文件的代码,正确的是()a) <param name=”allowedTypes ”>image/bmp</param >b)<param name=”allowedTypes ”>*.bmp</param>c)<param name=”allowedTypes ”>bmp</param>d)<param name=”allowedTypes ”>image/*.bmp</param>37.以下关于 OGNL的说法正确的是()【选择二项】a)ActionContext 是 OGNL的上下文环境b)StackContext 是 OGNL的上下文环境c)ValueStack 是 OGNL的根d)ActionContext 是 OGNL的根38.假设在Session中存在名为uid 属性,通过OGNL访问该属性,正确的代码是()a)#uidb)#c)uidd)${}39.关于“ #.{? #>20} ” OGNL代码所表示的意义说法正确的是()a)从 persons 集合中取出第一个年龄>20 的 Person 对象b)从 persons 集合中取出所有年龄> 20 的 Person 对象子集c)从 persons 集合中取出最后一个年龄>20 的 Person 对象d)该代码不符合 OGNL的语法40.假设在某JSP页面中存在” <s:property>”代码,则以下说法正确的是()a)编译 JSP页面时会出现错误b)编译 JSP页面时不会出现错误,但页面不会显示任何内容c)该代码用于输出位于 ValueStack (值栈)栈顶的对象d)以上说法都不正确41. struts2默认的处理结果类型是()a)dispatcherb)redirectc)chaind)以上说法都不正确42.下列选项中,关于Struts2配置文件说法正确的是()a)必须置于 WEB-INF/classes 目录下b)必须为c)配置 Action 时必须配置包信息d)使用 <forward> 元素配置转发43.下列选项中,关于Struts2的Action说法正确的是()【选择二项】a) struts2会为每一个请求创建一个对应的Action实例b) struts2在请求处理过程中,只有一个Action实例c)struts2 通过属性来封装用户请求参数d)在 struts2 中定义的属性都用于封装用户请求参数44. struts2中动态方法调用的格式为()a)b)ActionName!c)d)ActionName!问答题: MVC是什么含义?。
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表华标签序•中,表単标签为__ <s:form/> _____ 。
6.ActionSupport 类实现了_action __________ 接U和_ validateable ________ 等接UI。
7.通过控制器类屮的 __ validate() ______ 方法来输出校验错误信息。
8.在Hibernate XML影射文件中描述主键生成机制,.其属性描述了主键的生成策略,至少写出三种策略名increment 、native 、uuid 。
9.在Hibernate中级联操作的属性值至少写出三个____________________ none ______ 、_____ s ave-update ______ 、__ all ______ o10 Hibernate 的会ffi接口是____ Session 接口_____ ,它山接口 _SessionFactory 接口_创建;Hibernate处理事务的接口是______ Transaction接口 _______ :封妓HQL的接口足_____ C riteria 接口_____ 011. Struts2框架山 _____ Struts ______ 和_____ WebWork _____ 框架发展而来。
j2ee框架Struts2HibernateSpring考试复习题库
1.Eclipse是IMB公司向开放源代码社区捐献的Java程序开发平台,是一个成熟的、可扩展的体系结构。
2.Eclipse主要包含3个子项目:平台子项目,Java开发工具子项目,插件开发环境子项目。
3.MVC是Model(模型)业务逻辑层,View(试图)表述层,Controller(控制)控制层。
4.Struts是Apache Jakarta项目于2001年推出的一个开元的Java Web框架,通过一个配置文件,把各个层面的应用组件联系起来,使组件在程序层面上联系较少,耦合度较低,提高了应用程序的可维护性和扩展性。
5. Struts框架有两种发行包:源代码(source)和二进制(binary)。
6. Struts框架大约由300个Java类组成,可分为8个核心包:config,action,actions,tiles,upload,taglib,util,validator。
7. Struts的核心API包括ActionServlet,ActionForm,Action,ActionMapping及ActionForward,它们构成了Struts框架中的控制器组件,视图组件,模型组件8.Hibernate是对象/关系映射(ORM)的解决方案,就是将Java对象与对象关系映射成关系数据库中表格与表格之间的关系。
9. Cache就是缓存,它往往是提高系统性能的在最重要手段,对数据起到一个蓄水池和缓冲的作用。
10. Session实现了第一级Cache,它属于事务级数据缓冲,二级Cache是SessionFactory范围内的缓冲,所有的Session共享同一个二级Cache。
11.设置Hibernate的二级Cache需要分两部进行:首先确认使用什么数据并发策略,然后设置缓存过期时间和设置Cache提供器。
12.Spring是指一个用于构造Java应用程序的轻量级框架。
13.IoC是一种将组件依赖关系的创建和管理置于程序外部的技术。
struts2课程知识点总结
<s:param
<s:property <s:include <s:push <s:set
<s:debug></s:debug>
<s:action
6、Struts2 类型转换
1、自动类型转换 2、list 列表自动类型转换 3、类型转换错误提示 定义 AddMaterialAction.properties 文件
5、tags(标签库)
引入:<%@ taglib uri="/struts-tags" prefix="s"%> 1、 <form> 标签
<s:form> <s:textfield <s:password <s:textarea <s:select <s:checkboxlist
2、控制标签
………………………
validate="true">
8、Struts2 国际化支持
步骤: 1、JSP 中配置
<s:textfield name="username" key="username"/>
2、struts.properties 中配置
struts.custom.i18n.resources=messageResource
f) session 等 jsp 内置对象的应用
两种方法 1、普通 2 、map
g) action 通配符的配置
* 与 {} 或 *_*
<action name="Student*" class="example.StudentAction"method="{1}">
Struts2复习
1、MVC设计模式是指Model 我们编写的javabean,包括dao,DBManagerView jsp页面Controller 在Struts2中指的是Action控制器注意:struts2是不是在struts1基础之上发展起来,而是在webwork框架上发展而来。
2、MVC的优势1)可为一个模型建立多种不同视图,随意切换2)视图和控制器的可接插性3)模型的可移植性3、Struts2和Struts1相比优势1)测试更方便,控制器没有和系统的类有太多耦合2)Struts2的Action是一个完全的POJO类。
无任何依赖关系注意:一般我们为了规范Action的开发,会让Action去实现一个接口:Action接口,或者继承一个方法。
ActionSupport类4、Struts2的体系结构a)核心控制器:StrutsPrepareAndExecuteFilter 接收请求并分发到相应action中b)业务控制器:就是我们自己编写的Action类5、Struts2的配置文件1)Struts.xml2)Struts.properties注意复习配置文件中的每一项分别表示什么如:<constant name="struts.ui.theme" value="simple" / > 配置系统属性常量(简单主题显示)//注意:包必须继承自struts-default 包,否则报错<package name="default" extends="struts-default" namespace="/"><action name="xxx" class="com.scme.action.XXXX"> 这里是Action的配置<result name="名字">/xx.jsp</result> 这里是定义视图转向的配置</action></package>6、Sturts2运行流程:a)客户端发送请求b)核心控制器StrutsPrepareAndExecuteFilter 接收请求,并找到相应的Action处理c)Action默认执行execute()方法,如果设置了则执行相应的方法,处理完毕,转发到相应的视图(根据配置中的result进行)7、Struts2的核心控制器是一个过滤器,需要在web.xml中进行配置。
J2EE复习资料
Struts2:1、第一章Struts入门:【复习点】struts2的工作流程。
struts2是MVC框架,并作出说明。
2、第二章Action访问servlet API【复习点】Action访问servletAPI(jsp内置对象中的request、session和application)的常用方法。
复习ActionContext、ServletActionContext类的使用。
【复习点】:创建Action有几种方式?项目中常用的创建Action的形式是什么,在Action中能够使用的Action接口中的常量是什么?【复习点】:一个Action处理多个业务,有哪几种方式可以完成指定方法的调用3、第三章struts2标签—表单标签及fielderror标签【复习点】:熟悉表单标签中有哪些标签4、第四章OGNL表达式的使用【复习点】:怎么用OGNL表达式完成对象图的遍历。
怎么编写OGNL表达式。
OGNL表达式的作用。
5、第五章struts2标签—数据标签、控制标签【复习点】:数据标签、控制标签中有哪些【复习点】:s:if/s:else/s:elseif ,s:s:set; s:iterator。
详见以前案例。
6、第七章struts2输入校验与校验框架【复习点】:有几种形式可以完成校验,分别是什么。
Hibernate:1、第一章Hibernate入门【复习点】:Hibernate优点、对象关系映射(Object Relational Mapping,简称ORM)、Hibernate的工作原理或者工作步骤;Hibernate的第一个入门案例2、第二章Hibernate的核心API【复习点】:Hibernate的核心API有哪些?session接口中的常用方法的使用详见详见以前案例3、第三章操纵持久化对象【复习点】:持久化对象的状态有哪些,特点是什么,判断语句中某个对象处于的状态。
4、第四章Hibernate映射文件【复习点】:*.hbm.xml中,Hibernate映射文件结构<hibernate-mapping package=“”><class name="" table=""><id></id><property name="" column=""/><class/></hibernate-mapping>会编写hbm.xml文件【复习点】:主键-id映射中常用的id映射策略有哪些,区别是什么。
Struts2学习总结(完整版)
Struts2学习总结(完整版)⼀、搭建struts2环境1、jar包的导⼊主要是到解压其中的⼀个⼯程,得到⾥⾯lib下包含的jar包把这⾥的所有的jar包拷贝到项⽬的WEB-INF⽬录下的lib⽂件夹下⾯。
2、配置struts.xml⽂件注意:必须要放在src⽬录下,因为struts2源码就是这样设计的,只有在src⽬录下才读取得到。
每⼀个package都要extends=”struts-default”,namespace 是访问的路径Action中的name和 package中的namespace组成完整的访问路径3、配置web.xml<filter><filter-name>action2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>action2</filter-name><url-pattern>/*</url-pattern></filter-mapping>4、编写的Action类都要继承ActionSupport类或者implements Action接⼝默认action类访问的是⾥⾯的execute⽅法如果要访问特定的⽅法,可以这样:(1)在action 后⾯指定 method=“⽅法名”(2)使⽤通配符 <action name=”example_*” class=”com.XX.YY.ZZ” method=”{1}” />(3)使⽤动态表达式⽐如example!execute(不常⽤)5、接收表单提交的数据(1)属性驱动获取表单参数--在action类中定义与表单的input中 name ⼀样的属性(必须⼀样,否则注⼊不进去)同时还要⽣产属性对应的set ⽅法,因为 action类要调⽤set⽅法把表单中的参数注⼊到属性中(2)模型驱动获取表单参数--模型驱动⾸先action类要实现ModelDrivern,然后重写getModel⽅法--在action类中声明并创建接收表单参数的实体类(Student user = new Student())--原理分析:struts2调⽤action类的getModel⽅法,得到user对象,然后利⽤user对象⾥⾯的set属性的⽅法,设置user对象的属性值--注意,表单的参数name必须要跟Student的属性值⼀致,否则注⼊不进去。
Structs 2复习资料1
客户端初始化一个指向Servlet容器的请求;请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器)接着FiterDispatcher询问ActionMapper来决定这个请求是否要调用Action如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxyActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action ActonProxy创建一个ActionInvocation的实例ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关的拦截器的调用一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到相应的返回结果Package:处于模块化的考虑,可将各种动作分门别类的组织成不同的包必须有一个name属性,namespace属性是可选的以“/”作为默认值,调用该包里的动作,必须将命名空间的添加到有关的URI字符串中使用extends扩展某一个包<package name="default" namespace="/" extends="struts-default"> Result元素:是<action>的子元素,指出动作完成后把控制权交给谁对应着动作方法的返回值;同一个action可以有多个result;结果和方法返回值之间的映射关系有result的name属性负责建立,默认值是:success;如果某方法返回一个值,而该值没有与之匹配的result,structs 将尝试在global-results元素下为它匹配结果,再找不到就抛出异常可以在struts.xml文件里利用constant元素来覆盖default.properties 文件里的某个设置POJ O:plain and old Java Object动作类需要遵循的规则遵守JavaBeans属性名的命名规则;必须有一个不带任何参数的构造器;每个动作类至少有一个方法供struts在执行时调用(默认为execute)同一个动作类可以包含多个方法;编写动作类可以不考虑线程安全的问题Action的作用得到请求参数;调用逻辑处理类处理业务;返回String类型结果Action的一些重要元素ActionContext 数据环境需要为每个Action准备一个数据环境获取与Web容器相关的对象Interceptor 丰富的层次结构使用类似责任链的设计模式对Action的责任进行分类并连接起来Result 执行结果执行结果被抽象成一个层次,可以定义任意类型的View层的构造ActionProxy 执行环境需要一个类似调度器的产品将上面的元素整合起来ActionInvocation 调度者ActionProxy接口中有个比较特殊的变量:ActionInvocation,它就是Action的调度者,负责一些列的调度动作可以继承一下5个静态字段SUCCESS NONE ERROR INPUT LOGIN ActionSupport类ServletActionContext对象getRequest() 返回HttpServetRequest对象getSession()getResponse()getServletContext()result 的type属性默认为dispatcher,含义是把控制权转交给某个JSp页面type的其他常用类型:Redirect 重定向到另一个URLRedirectAction 重定向到另一个动作Session的创建和使用private Map session;public void setSession(Map session) {this.session = session;}public String execute() {this.session.put("USER_NAME", "Test User 1");return SUCCESS;}}Map session = invocation.getInvocationContext().getSession();OGNL:对象图形导航语言表达式:ONGL就是表达式,用简洁直观的语法表达想法。
Struts2复习增强
1.struts2的执行流程?客户端提交一个HttpServletRequest请求(action或JSP页面)请求被提交到一系列Filter过滤器,如ActionCleanUp和FiterDispatcher等FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器询问ActionMapper是否需要调用某个action来处理如果ActonMapper据诶的那个需要调用某个A传统,FilterDispatcher则把请求教到ActionProxy,由其进行处理ActionProxy通过Configuration Manager询问框架配置文件,找到需要调用的Action类ActionProxy创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用action Action执行完毕后,返回一个result字符串,此时再按相反的顺序通过Interceptor拦截器最后ActionInvocation负责根据struts配置文件中配置的result元素,找到与返回值对应的result13.如果不写action的后面mothod,默认的调用的方法是什么,如果写的话,写的时候有什么需要注意的?不写会默认调用最上面的方法3.struts2中的package的作用是什么?namespace可以为空吗?如果namespace为空会意味着什么呢?标识可以、如果没写,说明该包为默认空间只要敲index没有精确对应的package都交给namespackage 如果还没有就崩溃4.Action 的实现通集成常用那种方法?一种是直接实现自己的Action另一种是实现Action的接口继承ActionSupport5.路径设置用什么路径,绝对还是相对?都可以6.Action的属性?path属性:指定请求访问Action的路径type属性:指定Action的完整类名name属性:指定需要传递给Action的ActionForm Beanscope属性:指定ActionForm Bean的存放范围validate属性:指定是否执行表单验证input属性:指定当表单验证失败时的转发路径。
struts2面试题(自己总结)
Struts2面试题1、struts2工作流程Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。
核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。
业务控制器Action和业务逻辑组件是需要用户来自己实现的。
用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。
Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。
基本简要流程如下:1 、客户端初始化一个指向Servlet容器的请求;2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)3 、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类6、ActionProxy创建一个ActionInvocation的实例。
7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。
struts2学习总结
HttpServletRequest req = ServletActionContext.getRequest();
HttpSession ses = req.getSession();
ServletContext app = req.getServletContext();
在页面的struts标签中,使用“对象名.属性名”引用
10.action中的result的转发类型。
result name="success" type="dispatcher">/jsp/success.jsp</result>
常见的类型属性有 dispatcher, redirect, redirectAction, stream
<struts>
<package name="example" extends="struts-default" >
<action name="login" class="erLoginAction" method="execute">
<result name="success">/jsp/success.jsp</result>
交请求,struts2的查找次序:
按照就近原则的顺序,分别到struts.xml中到namespace为:
“/path1/path2/path3”, “path1/path2”, “/path1”, “/”的package。
如果丌存在,继续往上找;如果存在此package,则找对应的login.action, 如果找
