第一篇:struts2综合试卷
Struts2学习增强练习
课程名称: Struts2学习增强练习
考试时间 xx分钟(闭卷■)
不定项选择题
1.开发struts2 web项目,需要导入哪些jar包
A 必须导入struts2 解压lib下所有jar包
B 只需要导入struts2解压app/struts2_blank.war中的jar包就可以
C 如果进行注解开发,导入struts2解压app/struts2_blank.war中的jar包就可以 D 如果进行注解开发,还必须导入convention的插件 jar包 2.下面关于struts2 MVC说法正确的是?
A.Struts2 是一个基于MVC模式的web层框架 B.Struts2中核心控制器是ActionServlet C.Struts2中模型是Action D.Struts2中控制器是Filter 和 Action E.Struts2的视图必须用JSP 3.关于Struts2 Action说法下面正确的是
A.用户编写的Action可以是POJO类
B.用户编写的Action可以实现Action接口 C.用户编写的Action 可以继承 ActionSupport D.Action中必须提供 execute方法
E.Action提供的业务方法 必须 public修饰,String类型返回值,无参数的
4.如果客户端请求路径 http://localhost:8080/struts2_exec/user_add.action 要执行UserAction类中的add方法,下面的配置哪些是正确的 A.
A.如果要将请求从一个Action转发给另一个Action 可以使用 chain 结果集 B.如果要将请求转发给一个JSP,可以使用dispatcher 结果集
C.如果要将请求从一个Action重定向到另一个Action 可以使用redirectAction结果集 D.如果要将请求从一个Action重定向到JSP,可以使用redirect结果集 E.进行文件下载时可以使用stream结果集
6.如果客户端提交请求路径为http://localhost:8080/struts2/hello.action?name=”itcast”, 下面在Action中要接收name请求参数,哪个写法是正确的?
A.public class HelloAction { private String name;public void setName(String name){ this.name = name;} } B.public class HelloAction { private User user;public void setUser(User user){ this.user = user;} } public class User {
private String name;public void setName(String name){ this.name = name;} } C.public class HelloAction implements ModelDriven
public class User { private String name;public void setName(String name){ this.name = name;} } D.public class HelloAction implements ModelDriven
public class User { private String name;public void setName(String name){ this.name = name;} } 7.关于自定义类型转换器下面说法正确的是?
A.向Action封装请求参数,是由ParametersInterceptor完成的 B.进行封装参数时,必须要自定义类型转换器
C.自定义类型转换器,如果继承DefaultTypeConverter , 覆盖convertValue方法时,只需要实现String向目标类型的转换
D.自定义类型转换器后需要注册,可以在Action所在路径 编写
Action类名-conversion.properties,配置
Action中属性名= 类型转换器
E.自定义类型转换器也可以全局注册,在src下创建xwork-conversion.properties,配置
目标类型 = 转换器
F.如果类型转换出错后,会跳转到 INPUT对应视图,可以通过
A.可以在Action中添加validate方法完成校验,Action可以是POJO类
B.可以在Action所在包 编写Action类名-validation.xml 对Action中所有业务方法进行校验 C.如果要对Action中某个指定的业务方法进行校验,可以在Action所在包,编写
Action类名-方法名-validation.xml
D.在Action中手工校验失败后,通过addFieldError设置错误信息,但Action中是无法读取国际化文件的
9.下面关于Struts2 中Action 中设置信息说法正确的是
A.在开发中Action 将一个文本信息传递给JSP 显示,通常可以使用 addActionError、addActionMessage、addFieldError 三个方法,此时Action必须继承ActionSupport B.addFieldError 主要存放字段错误信息,页面通过
D.addActionMessage 可以存放Action普通信息,页面通过
A.国际化信息文件,必须放到src根目录,不能放到package中,放到src根目录中国际化信息文件不需要配置,就可以在所有Action中使用
B.可以在Action所在包,编写Action类名.properties,无需配置 就可对当前Action 生效 C.可以在Action 所在包,创建 package.properties,无需配置就可对当前包所有Action生效 D.国际化信息文件在任何package中,都可以通过在struts2.xml 对国际化信息文件 进行配置
struts.custom.i18n.resources,使其对所有Action 生效
11.关于struts2 拦截器说法正确的是
A.Struts2内部使用了很多内置拦截器,用于在Action执行前后加入某些操作 B.访问每个Action 默认都会执行 defaultStack 中所有拦截器
C.如果在
E.Struts2 中拦截器实现 责任链模式 12.关于值栈ValueStack 下面哪些说法正确
A.ValueStack值栈对象的生命周期 就是request生命周期,request对象销毁后 值栈数据将不存在
B.获得值栈对象引用 可以通过两种方法
第一种 ServletActionContext.getRequest().getAttribute(“struts.valueStack”);第二种 ActionContext.getContext().getValueStack();C.值栈中包含两个部分,一个CompoundRoot 和 一个OgnlContext , CompoundRoot是一个ArrayList 结构,OgnlContext 是一个Map 结构
D.OgnlContext 对内置了很多常用 web对象的对应Map结构,通过parameters、request、session、application、attr 对应map对象,可以间接操作 Servlet API E.每次请求Action,Action对象本身都会 被push到值栈的root 中 13.下面关于向值栈存放数据 说法正确的是 ?
A.在Action建立成员变量,并提供get方法,该数据就会随Action 会被自动压入值栈 B.可以通过调用 valueStack 提供push 方法将一个对象 压入值栈 的root中
C.可以调用valueStack的 set(key,Object)方法 将一个对象,存入值栈 OgnlContext中 D.可以调用 valueStack.getCompoundRoot().add(object)方法,将数据存入值栈root中
E.可以调用 valueStack.getOgnlContext().put(key,object)方法将数据存入 值栈OgnlContext 14.如果Action 如下定义
public class HelloAction { private String name =”itcast”;public String getName(){
return this.name;} … } 在页面要取得name的值,下面哪些写法是正确的?
A.
public class UserAction {
private List
public String execute(){ users = ….从数据库查询出所有用户
} …
} public class User { private String name;private String city;// 提供getter方法
} 要在结果JSP中对 users数据进行遍历显示,下面哪些写法正确 A. Struts2集成指南 关于Struts2 Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller〔MVC〕设计模式的应用框架〔Web Framework〕,是MVC经典设计模式中的一个经典产品。 Struts,a history 在Java EE的Web应用发展的初期,除了使用Servlet技术以外,普遍是在JavaServer Pages(JSP)的源代码中,采用HTML与Java代码混合的方式进行开发。因为这两种方式不可避免的要把表现与业务逻辑代码混合在一起,都给前期开发与后期维护带来巨大的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,Craig McClanahan采用了MVC的设计模式开发Struts。后来该框架产品一度被认为是最广泛、最流行JAVA的WEB应用框架。 Craig McClanahan 2006年,WebWork与Struts这两个优秀的Java EE Web框架(Web Framework〕的团体,决定合作共同开发一个新的,整合了WebWork与Struts优点,并且更加优雅、扩展性更强的框架,命名为“Struts 2”,原Struts的1.x版本产品称为“Struts 1”。 至此,Struts项目并行提供与维护两个主要版本的框架产品——Struts 1与Struts 2。Struts1 vs.Struts2 侵入性 Struts 1 在编程方面是面向抽象类编程,而不是面向接口编程。Struts 1要求自定义Action 类继承一个特定的抽象基类Action。另一方面,Struts 1的 Action 依赖于 Servlet API,因为Struts 1 Action 的execute 方法中有HttpServletRequest 和HttpServletResponse 方法。例如 e.g.public class LogonAction extends Action { public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){ } } Struts 2 Action 类可以实现一个Action接口,也可以实现其他接口,甚至不实现任何接口。这使得可选的和定制的服务成为可能。e.g.public class ExampleAction { public String doSomething(){ return “success”;} } 线程模式 Struts 1 Action类 是单例模式并且必须是线程安全的,因为在web容器中,仅有Action类 的一个实例来处理所有的请求。 Struts2 Web容器为每一个请求产生一个Action类实例,因此没有线程安全问题。可测试性 Struts1 由于对Servlet API的依赖,使得针对于自定义Action类的测试变得复杂。 Struts2 由于自定义Action可以为POJO,所以可以向测试一个POJO一样来测试Action类。 请求参数封装 Struts1 使用ActionForm 对象封装用户的请求参数,所有的 ActionForm 必须继承一个基类:ActionForm。普通的JavaBean 不能用作ActionForm,并且需要在配置文件中定义ActionForm。e.g.public class LogonForm extends ActionForm { private String userpassword; private String username;} Struts2 直接使用Action属性来封装用户请求属性,避免了开发者需要大量开发ActionForm类的烦琐,实际上,这些属性还可以是包含子属性的 Rich对象类型。e.g.public class ExampleAction { private String responseMessage;private String requestMessage; public String getResponseMessage(){ return responseMessage;} public void setResponseMessage(String responseMessage){ this.responseMessage = responseMessage;} public String getRequestMessage(){ return requestMessage; } } public void setRequestMessage(String requestMessage){ } this.requestMessage = requestMessage;public String doSomething(){ } setMessage(“Hi, ” + getRequestMessage());return “success”;EL Struts1 整合了 JSTL,因此可以使用JSTL 表达式语言。JSTL有基本对象图遍历,但在对集合和索引属性的支持上则功能不强。在向视图绑定值时,Struts1 使用标准JSP 机制把对象绑定到视图页面。 Struts2 Struts 2 可以使用JSTL,但它整合了一种更强大和灵活的表达式语言:OGNL(Object Graph Notation Language),因此,Struts 2 下的表达式语言功能更加强大。在向视图绑定值时,Struts2 使用“ValueStack ”技术,使标签库能够访问值,而不需要把对象和视图页面绑定在一起。 校验框架 Struts1 Struts1 支持在 ActionForm 重写validate 方法中手动校验,或者通过整合 Commons-validator 框架来完成数据校验。 Struts2 Struts 2 支持通过重写validate方法进行校验,也支持整合XWork 校验框架进行校验。Struts2 architacture 名词约定 凡是代码、配置文件、IDE中出现的名词,均采用英文原称。 Roadmap 本文档的目标是,帮助读者在Eclipse中将Struts2集成至一个崭新的Dynamic Web Project。集成步骤大致如下:配置Struts2的代码环境-> 在web.xml中加入Struts2功能-> 测试Struts2。文档目标达成的标志是:页面请求能够通过Struts2的Action Mapping成功转发,并且基于Java的Struts2验证框架能够生效。 集成步骤 引入Struts2相关的jar文件 Struts2 jars commons-fileupload-1.2.2.jar commons-io-2.1.jar commons-lang-2.4.jar commons-logging-1.1.1.jar freemarker-2.3.16.jar javassist.jar jstl-1.2.jar ognl-3.0.1.jar struts2-core-2.2.3.jar xwork-core-2.2.3.jar 加入build path 将以上10个jar文件,拷贝至WebContent/WEB-INF/lib下: 对于Web Dynamic Project,一般情况下,当你向lib目录下copy了jar文件,eclipse会自动将jar文件加入build path下的名为Web App Libraries的Library。请确认在工程下出现了名为Web App Libraries的Library。如果有,说明这些jar文件已经被添加至build path了: 如果在工程目录下找不到名为Web App Libraries的Library,说明jar文件没有被添加至build path,需要进行手动添加。首先进入build path设置界面,选中Libraries 页,并点击Add JARs: 在JAR Selection窗口中,选中lib下所有的jar文件。选中后点击OK: 你将看到被选中的jar文件已经被添加至build path: 在工程中会出现一个名为Referenced Libraries的Libraries。这说明jar文件已经被添加至build path: 以上两种方法都可以将jar文件添加至build path,它们的效果是一样的。 配置web.xml 添加filter 在web.xml中添加一个filter: filter-name表示filter的名字,你可以任意决定这个名字。filter-class表示使用哪个类作为filter,从这个类的全称来判断,可以发现FilterDispatcher是Struts2提供的一个类。它是Struts2转发请求的起点。在web.xml中添加一个filter-mapping: filter-mapping用来映射url和filter的映射关系。filter-name表示filter的名字,这个名字必须和之前filter声明中的filter-name一致。url-pattern表示哪些格式的url会被此filter滤中。/*表示在此web应用域名下,所有的地址都会被filter滤中,换言之,所有的http请求都会通过Struts2进行转发。 filter的作用 通过以上的配置,FilterDispatcher和url与filter-name联系在了一起。 由于在web容器中注册了FilterDispatcher这个filter,Struts2可以收到所有http://localhost:8080/tyland-b2b 的http请求。随后,FilterDispatcher会根据我们定义的action-mapping规则,将请求分发到指定的action类以及它的拦截器栈。最后,Struts2按照action-mapping规则,将后台计算的结果返回给指定页面。笼统地来说,Struts2就是这样工作的,所以说,FilterDispatcher是Struts2工作的入口。 编写代码,测试Struts2 Struts2的环境已经配置好了,基于action-mapping的转发机制已经可以运行了。为了证明这一点,请编写一些测试jsp页面和java代码。 在编写代码的过程中,请确保代码文件的位置如下图所示: 代码清单如下: Java代码 UserVO.java package com.tyland.b2b.vo; // 一个Value Object(Data Model),用来存放用户名、密码 public class UserVO { private String username;private String password; // 成员变量password的getter方法。 // 在Strtus2中,用来在页面和服务器间传值的Value Object必须有getter方法 public String getPassword(){ return password; } } // 成员变量password的setter方法。 // 在Strtus2中,用来在页面和服务器间传值的Value Object必须有setter方法 public void setPassword(String password){ } this.password = password;// 同password public String getUsername(){ } return username;// 同password public void setUsername(String username){ } this.username = username;BaseAction.java package com.tyland.b2b.web.base; import com.opensymphony.xwork2.ActionSupport; // 为了代码的灵活性和可扩展性,请声明一个BaseAction基类 // BaseAction继承Struts2的ActionSupport,因为我们想使用Struts2的一些额外帮助。// 对于ActionSupport的继承不是必须的 public class BaseAction extends ActionSupport { private static final long serialVersionUID = ***74952195L;} UserAction.java package com.tyland.b2b.web; import com.tyland.b2b.vo.UserVO;import com.tyland.b2b.web.base.BaseAction; // 自定义的Action类,继承BaseAction // 由于继承了ActionSupport,我们可以使用Struts2默认的action方法execute()// 由于继承了ActionSupport,我们可以使用Struts2默认的校验方法validate()public class UserAction extends BaseAction { private static final long serialVersionUID =-7***3684190L; // 用来在页面和服务器之间传递用户名、密码的Value Object。变量名任意。 private UserVO userVO; 执行。// 用来在页面和服务器之间传递message变量。名称任意。private String message;//用来在页面和服务器之间传递sayHiTo变量。名称任意。private String sayHiTo;// 用来传值的变量必须有getter方法 public UserVO getUserVO(){ return userVO;} //用来传值的变量必须有setter方法 public void setUserVO(UserVO userVO){ } this.userVO = userVO;public String getMessage(){ } return message;public void setMessage(String message){ } this.message = message;public String getSayHiTo(){ } return sayHiTo;public void setSayHiTo(String sayHiTo){ } this.sayHiTo = sayHiTo;// Override声明说明这个方法复写或实现了父类或接口方法。 // 如action-mapping中不显示指定别的方法,struts2会将execute()作为默认的action方法// 返回的SUCCESS常量,来自ActionSupport,值为“success”。 // action-mapping会根据不同的返回值采取不同的转发或页面跳转动作。@Override public String execute()throws Exception { } System.out.println(“******execute******”);System.out.println(userVO.getUsername()+ “ logins”);return SUCCESS; // 在Struts2执行execute()之前,会先执行validateExecute()进行用户输入验证 // 这个方法名必须符合Struts2验证框架所规定的命名规范 public void validateExecute(){ } } System.out.println(“******validateExecute******” + userVO.getUsername());if(null == userVO.getUsername()|| userVO.getUsername().length()< 5){ this.addFieldError(“username”, “USERNAME ERROR”);} if(null == userVO.getPassword()|| userVO.getPassword().length()< 5){ this.addFieldError(“password”, “PASSWORD ERROR”);} // 一个自定义方法。通过在action-mapping中的设置,可以实现使用POJO的自定义服务配置 public String sayHi()throws Exception { } System.out.println(“say hi to ” + getSayHiTo());return SUCCESS;// 符合验证框架命名规范的、真对于sayHi()的验证方法 public void validateSayHi(){ } System.out.println(“******validateSayHi******” + getSayHiTo());if(null == getSayHiTo()|| getSayHiTo().length()< 5){ this.addFieldError(“sayHiTo”, “SAYHITO ERROR”);} ExampleAction.java package com.tyland.b2b.web; import com.tyland.b2b.web.base.BaseAction; public class ExampleAction extends BaseAction { private static final long serialVersionUID =-***7281L; private String message;private String sayHiTo; public String getMessage(){ return message;} public void setMessage(String message){ this.message = message;} public String getSayHiTo(){ return sayHiTo;} } public void setSayHiTo(String sayHiTo){ } this.sayHiTo = sayHiTo;public String finish(){ } System.out.println(“example finished”);setMessage(getSayHiTo());return SUCCESS;JSP代码 index.jsp <%@ page language=“java” contentType=“text/html;charset=UTF-8” pageEncoding=“UTF-8”%> <%@ taglib uri = “http://java.sun.com/jsp/jstl/core” prefix = “c” %> 第二篇:Struts2介绍
第三篇:Struts2试题
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元素,找到与返回值对应的result
2.struts2的web里需要配置什么?
1.
3.struts.xml文件哪个常量可以实现不用重新启动服务就可以得到反馈?
4.struts中的package的作用是什么?namespace可以为空吗?如果namespace为空会意味着什么呢?
标识
可以、Timmer
如果没写,说明该包为默认空间 只要敲index没有精确对应的package都交给namespackage 如果还没有就崩溃
5.Action 的实现通集成常用那种方法? 一种是直接实现自己的Action 另一种是实现Action的接口 继承ActionSupport
6.路径设置用什么路径,绝对还是相对? 都可以
7.通配符有几种?要遵循什么原则? {1}
方法名
8.Action的属性?
path属性:指定请求访问Action的路径
type属性:指定Action的完整类名
name属性:指定需要传递给Action的ActionForm Bean scope属性:指定ActionForm Bean的存放范围
validate属性:指定是否执行表单验证
input属性:指定当表单验证失败时的转发路径。
9.用于读取资源文件,实现国际化的Struts2的标签(
10.一下关于struts的描述中,不正确的是(D)struts 是一个基于JAVA EE的MVC struts2的框架配置文件是struts-configxml struts2的控制组建核心包括核心控制和业务控制器
在struts中解决中文乱码可以通过修改struts。I18n。encoding的值为GBK来实现 11.不属于Struts2的动作类的常量返回值的是(C)
A.success
B.input
C.never
D.login 12.一下不属于Struts2动作执行的结果类型是(A)a.action b.redirect c.redirectAction d.dispatcher 13.在struts.xml中。假如在一个package中没有配置namespace,那么在其中配置一个Action名字叫做login,它的result是这样配置的
14.正规开发中,在使用struts2时定义Action使用哪种方式。B A.直接定义Action类。B.从ActionSupport继承。C.从Action继承。D.实现Action接口。
15.不同的线程在调用Action时创建几个Action实例。C A.1个 B.2个
C.每个线程创建1个。D.可以自定义配置。
16.struts2的体系结构主要包括那几个部分(A)A.模型层
B.struts控制器组件 C。struts配置文件 D。struts标签库
17.struts提供了Action接口定义了5个标准字符串常量,不包括的有(C)A SUCCESS
B NONE C REG D LOGIN 18.struts中数据验证失败时,通过(B)标签显示错误信息。A
默认结果类型是dispatcher chain:Action链式处理的结果类型,也就是将结果转发到这个action中。dispatcher:用于整合JSP的结果类型
redirect:实际上dispatcher和redirect的区别就是在于转发和重定向的区别。redirect-action:重定向action
20.简述struts2文件上传的方法。
Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的文件。
21.在struts2标签内部 能否使用el表达式?
不可
22.struts2中result-type的chain和redirectAction的区别
chain,它是一个琏式的,是从一个Action转发另外一个Aciton redirectAction,是从新请求一个Action
23.
24.action的name里边写的名字是什么地方用的? From 表单action引用
25.action的class里面写的是什么? Action相应类的详细路径
26.action的extends里面调用的是什么?
从另外一个包继承、相当于拥有即承包的所有配置
27.如果不写action的后面mothod,默认的调用的方法是什么,如果写的话,写的时候有什么需要注意的?
不写会默认调用最上面的方法
28.输出值的strtus标签是什么?
s:property
28.循环的struts标签是什么?
s:iterator
29.判断的strtuts标签是什么?
s:if
30.显示文本的strtuts标签是什么?
31.要调用struts标签需要导入什么? <%@taglib uri=“/struts-tags” prefix=“s”%>
32.如果需要调用sc:datetimepicker需要导入什么,sc代表的是什么意思?
33.
获取前台文本的值
34.请简述前台提交后是如何到达后台action的。
通过from表单action找到struts配置文件相应action的类 再去找相应action类里的方法
第四篇:struts2课件
—高级软件人才实作培训专家!Struts2的启动配置在struts1.x中,struts框架是通过Servlet启动的。在struts2中,struts框架是通过Filter启动的。他在web.xml中的配置如下:
—高级软件人才实作培训专家!Struts2的配置文件Struts2默认的配置文件为struts.xml,FilterDispatcher过滤器在初始化时将会在WEB-INF/classes下寻找该文件,该文件的配置模版如下:
—高级软件人才实作培训专家!第一个Struts2应用Struts2默认的配置文件为struts.xml,FilterDispatcher过滤器在初始化时将会在WEB-INF/classes下寻找该文件,该文件的配置模版如下:
—高级软件人才实作培训专家!第一个Struts2应用例子中使用到的/WEB-INF/page/hello.jsp如下:<%@ page language=“java” pageEncoding=“UTF-8”%>
第五篇:Struts2习题
Struts2习题1 1.struts中的package的作用是什么?namespace可以为空吗?如果namespace为空会意味着什么呢?
标识、可以、如果没写,说明该包为默认空间 2.Action 的实现通集成常用那种方法? 一种是直接实现自己的Action 另一种是实现Action的接口 继承ActionSupport 3.不属于Struts2的动作类的常量返回值的是(C)
A.success
B.input
C.never
D.login 4.以下不属于Struts2动作执行的结果类型是(A)a.action b.redirect c.redirectAction d.dispatcher 5.在struts.xml中。假如在一个package中没有配置namespace,那么在其中配置一个Action名字叫做login,它的result是这样配置的
配置的
A A.在根路径后输入/login B.在根路径后输入/user/login C.在根路径后输入/login/user D.在根路径后输入/abc/login 6.正规开发中,在使用struts2时定义Action使用哪种方式。B A.直接定义Action类。B.从ActionSupport继承。C.从Action继承。D.实现Action接口。
7.不同的线程在调用Action时创建几个Action实例。C A.1个 B.2个
C.每个线程创建1个。D.可以自定义配置。
8.struts提供了Action接口定义了5个标准字符串常量,不包括的有(C)A SUCCESS
B NONE C REG D LOGIN
9.列举出action执行结果类型,并说明用途。
默认结果类型是dispatcher chain:Action链式处理的结果类型,也就是将结果转发到这个action中。
dispatcher:用于整合JSP的结果类型
redirect:实际上dispatcher和redirect的区别就是在于转发和重定向的区别。
redirect-action:重定向action 10.struts2中result-type的chain和redirectAction的区别 chain,它是一个琏式的,是从一个Action转发另外一个Aciton redirectAction,是从新请求一个Action 11.action的class里面写的是什么? Action相应类的详细路径
12.action的extends里面调用的是什么?
从另外一个包继承、相当于拥有即承包的所有配置
13.如果不写action的后面mothod,默认的调用的方法是什么,如果写的话,写的时候有什么需要注意的?
不写会默认调用最上面的方法
14.输出值的strtus标签是什么?
s:property
15.循环的struts标签是什么?
s:iterator
15.判断的strtuts标签是什么?
s:if
16.显示文本的strtuts标签是什么?
17.请简述前台提交后是如何到达后台action的。
通过form表单action找到struts配置文件相应action的类 再去找相应action类里的方法
Struts2习题2
一、填空题
1.Struts2框架由___________和___________框架发展而来。(Struts&WebWork)2.Struts2以___________为核心,采用___________的机制来处理用户的请求。(WebWork,拦截器)
3.Struts2中的控制器类是一个普通的___________。Class或填过滤器类
二、选择题
1.不属于Action接口中定义的字符串常量的是___________。B A.SUCCESS B.FAILURE
C.ERROR D.INPUT 2.在控制器类中一般需要添加相应属性的___________和___________。AC A.setter方法 B.as方法 C.getter方法 D.is方法 3.控制器需要在___________配置文件中进行配置。B A.web.xml B.struts.xml C.struts2.xml D.webwork.xml 4.不属于Struts 2表单标签库的是___________。D A.
三、简答题
1、简述什么是MVC?
MVC即模型-视图-控制器.MVC是一种设计模式,它强制把应用程序的输入处理和输出分开.视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接受用户的输入,但是它并不进行任何实际的业务处理。模型是应用程序的主体部分。模型表示业务数据和业务逻辑。控制器接受用户的输入并调用模型和视图去完成用户的需求
2、简述servlet的生命周期。
Servlet被服务器实例化后,容器运行其init()方法,请求到达时运行其service()方法,service()方法自动派遣运行与请求对应的doGet、doPost方法等,当服务器决定将实例销毁的时候调用其destroy方法