Struts-D1
- 格式:doc
- 大小:71.50 KB
- 文档页数:19
Struts1.xStruts2Action类Struts1.x要求Action类要扩展自一个抽象基类。
Struts1.x的一个共有的问题是面向抽象类编程而不是面向接口编程。
Struts2的Action类实现了一个Action接口,连同其他接口一起来实现可选择和自定义的服务。
Struts2提供一个名叫ActionSupport的基类来实现一般使用的接口。
当然,Action 接口不是必须的。
任何使用execute方法的POJO对象可以被当作Struts 2的Action对象来使用。
线程模型Struts1.x Action类是单例类,因为只有一个实例来控制所有的请求。
单例类策略造成了一定的限制,并且给开发带来了额外的烦恼。
Action资源必须是线程安全或者同步的。
Struts2 Action对象为每一个请求都实例化对象,所以没有线程安全的问题。
(实践中,servlet 容器给每一个请求产生许多丟弃的对象,并且不会导致性能和垃圾回收问题)。
Servlet 依赖Struts1.x的Action类依赖于servlet API,当Action被调用时,以HttpServletRequest和HttpServletResponse作为参数传给execute方法。
Struts2的Action和容器无关。
Servlet上下文被表现为简单的Maps,允许Action被独立的测试。
Struts2的Action可以访问最初的请求(如果需要的话)。
但是,尽可能避免或排除其他元素直接访问HttpServletRequest或HttpServletResponse。
易测性测试Struts1.x的主要问题是execute方法暴露了Servlet API这使得测试要依赖于容器)。
第三方的扩展,如Struts TestCase,提供了一套Struts1的模拟对象(来进行测试)。
Struts2的Action可以通过初始化、设置属性、调用方法来测试。
Struts1与struts2的区别总结1,背景:Struts2并不是struts1的升级版,两者没有太大的关系,struts2是继承了webwork的机制,吸收了struts2和webwork的有优势。
Struts2是基于WebWork的一个全新框架. Struts2主要改进是取代了Struts1的Servlet和Action. Struts2的核心框架是当作一个filter来实现其功能的,而Struts1是ActionServlet.然后在Action上,Struts1都少不了要传递Request等参数,还要继承Action父类,而Struts2只要实现了一个public String execute()就可以了,这样Action就可以实现脱离Servlet 测试. Struts2还提供了拦截器(Interceptot)等Struts1所没有的技术.2,Action类Struts1要求action继承一个抽象基类,而struts2既可以继承类又可以实现action对应的接口,即接口编程,可以实现多个接口,使得可选和订制服务成为可能。
3,线程模式Struts1中的action是单例模式,会涉及到线程安全问题,因为仅有一个action来处理所有的请求,而struts2则是非单例模式,每个请求对应一个action,这样就不用考虑线程安全的问题(而且,servlet容器会给每个请求产生可丢弃的对象,这样就不会导致性能和垃圾回收问题)。
4,可测性Struts1中的action有个主要的问题是execute方法暴露了servlet API,这使得测试等需要依赖servlet容器。
一个第三方扩展--struts TestCase--提供了一套struts模拟对象来进行测试;而struts2 中的action可以通过初始化和设置属性(例如action当中直接用get和set方法),调用方法来测试,“依赖式注入”注入也使得测试更容易5,servlet依赖Struts1中的action依赖于servlet API,因为当一个action被调用时,HttpServletRequest和HttpServletResponse对象会被传递给execute方法(请求和响应的对象需要依赖于execute方法,即servlet API);而struts2中的action则不需要依赖于servlet容器,允许action脱离容器单独被测试(例如:struts2中获取请求的对象可以用ServletActionContext.getRequest())。
本系列教程将详细介绍Struts 1.x的基本原理和使用方法,读者可以参阅《Struts 2系列教程》来比较Struts 1.x和Struts 2.x的相同点和不同点。
在这篇文章中将以一个简单的例子(mystruts)来演示如何使用MyEclipse来开发、运行Struts程序,并给出了解决ActionForm出现乱码问题的方法。
读者可以从本文中了解开发Struts 1.x程序的基本过程。
一、本文给出的程序要实现什么功能mystruts是一个录入和查询产品信息的程序。
为了方便起见,本例中的产品信息表只包括了产品ID、产品名称和产品价格三个字段。
mystruts的主要功能如下:1. 接受用户输入的产品ID、产品名称和产品价格。
2. 验证这些字段的合法性。
如果某些字段的输入不合法(如未输入产品ID),程序会forward到一个信息显示页,并显示出错原因。
3. 如果用户输入了正确的字段值,程序会将这些字段值保存到数据库中,并显示“保存成功”信息。
4. 用户输入产品名称,并根据产品名称进行模糊查询。
如果存在符合要求的产品信息。
程序会以表格形式显示这些产品的信息,同时显示记录数。
如果未查到任何记录,会显示“没有符合要求的记录!”信息。
二、编写程序前的准备工作1. 建立数据库在编写程序之前,需要建立一个数据库(struts)和一个表(t_products),建立数据库和表的SQL脚本如下所示:# 建立数据库strutsCREATE DATABASE IF NOT EXISTS struts DEFAULT CHARACT ER SET GBK;# 建立表t_productsCREATE TABLE IF NOT EXISTS struts.t_products (product_id varchar(4) NOT NULL,product_name varchar(50) NOT NULL,price float NOT NULL,PRIMARY KEY (product_id)) ENGINE=InnoDB DEFAULT CHARSET=gbk;2 建立一个支持struts1.x的samples工程用MyEclipse建立一个samples工程(Web工程),现在这个samples 工程还不支持Struts1.x(没有引入相应的Struts jar包、struts-config.xml 文件以及其他和Struts相关的配置)。
01struts基础J2EE1.4ServletJspJDBCJTA(Java Transaction API)JPA(Java persistence API)---EJBJavaMailJSTLEJBJNDIModel_1的执行流程Mode2_2的执行流程Struts框架的版本Struts充当表现层的作用。
Struts框架的核心组件ActionServlet总控制器。
核心组件,用于将具体的请求分配到各自处理的Action组件中。
Action具体的业务处理过程组件ActionFrom(FormBean)获取表单参数,并将参数封装到Bean中。
ActionForward用来Action的请求转发ActionMapping帮助控制器[ActionServlet]将请求映射到操作类[Action]Struts-config.xml用来配置Stuts组件的关联关系。
Struts框架的工作流程Struts-config.xml<form-bean name="loginForm" type="com.softfz.login.LoginForm" />name:用来表示actionform的名称type:用来表示actionform的类路径<actionattribute="loginForm" name="loginForm"path="/loginAction" scope="request"type="com.softfz.login.LoginActionAction" validate="true"input="/index.jsp" />attribute:表示ActionFrom的实例放到作用域中的名称.LoginForm aa = new LoginForm();aa.setUsername(request.getParameter("username"));aa.setPassword(request.getParameter("password"));request.setAttribute("attribute的值",aa);name:表示Action和ActionFrom关联的名称。
黑盒法:该方法是把被测试对象看成一个黑盒子,测试人员完全不考虑程序内部结构和处理过程.只在软件的接口处进行测试,根据需求规格说明书.检查程序是否满足功能要求.因此黑盒测试有称为功能测试或数据驱动测试/白盒法:该方法是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,一检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致.Action 类:? Struts1要求Action类继承一个抽象基类。
Struts1的一个普遍问题是使用抽象类编程而不是接口。
? Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。
Struts2提供一个ActionSupport基类去实现常用的接口。
Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。
线程模式:? Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。
单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。
Action资源必须是线程安全的或同步的。
? Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。
(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)Servlet 依赖:? Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和HttpServletResponse 被传递给execute方法。
? Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。
如果需要,Struts2 Action仍然可以访问初始的request和response。
struts1工作原理Struts1工作原理1. 什么是Struts1Struts1是一个开源的Java Web应用框架,用于开发MVC (Model-View-Controller)模式的Web应用程序。
它提供了一种结构化的方式来组织、管理和处理Web应用程序的请求和响应。
2. MVC模式简介什么是MVC模式MVC模式是一种软件设计模式,用于将一个应用程序的逻辑分为三个独立的部分:模型(Model)、视图(View)和控制器(Controller)。
每个部分都有不同的职责,有助于实现应用程序的解耦和可重用性。
MVC模式在Struts1中的应用在Struts1中,模型(Model)负责处理业务逻辑和数据,视图(View)负责表示用户界面,而控制器(Controller)负责协调模型和视图之间的交互。
3. Struts1的工作原理Struts1的工作原理可以分为以下几个步骤:配置Struts1环境首先,需要在Web应用程序的配置文件中配置Struts1环境。
通常使用一个名为``的文件来定义应用程序的相关设置,例如控制器的映射和配置文件路径等。
客户端发送请求当客户端发送一个请求时,请求会被发送到Web服务器。
通常,请求的URL中会包含一个特定的后缀,用于指示该请求需要由Struts1来处理。
Struts1的Front Controller接收请求Struts1的Front Controller是一个核心组件,它负责接收所有的请求。
当一个请求到达时,Front Controller会根据配置文件中的映射规则,将请求路由到相应的Action。
Action处理请求一旦请求被路由到相应的Action,Action就会开始处理该请求。
它会根据请求的参数和业务逻辑的需要,执行相应的操作。
例如,从数据库中获取数据、处理用户输入、调用其他模块等。
Action返回结果一旦Action完成了请求的处理,它会生成一个结果对象并将其返回给Struts1的Front Controller。
struts1自定义方法及struts1 Action 配置 2012-06-20 09:52:15| 分类:J2EE |举报|字号订阅 Action 继承 DispatchAction public class UserAction extends DispatchAction{ private UserBO bo = newUserBOImpl() ; public ActionForward add(ActionMappingmapping,ActionForm form,HttpServletRequestrequest,HttpServletResponse response){ UserForm ff =(UserForm)form; UserModel model = new UserModel();try{ BeanUtils.copyProperties(model, ff) ; }catch(Exceptione){ e.printStackTrace() ; } bo.addUserModel(model) ; ff.reset(mapping, request) ; return mapping.findForward("search") ; } public ActionForward update(ActionMapping mapping,ActionFormform,HttpServletRequest request,HttpServletResponseresponse){ UserForm ff =(UserForm)form; UserModel model = new UserModel(); try{ BeanUtils.copyProperties(model,ff) ; }catch(Exception e){ e.printStackTrace() ; }bo.updateUserModel(model) ; return mapping.findForward("search") ; } } 在提交页面添加隐藏域当提交到上面的 action 当中后他就自动去找 add 这个方法执行了还有必须在mxl 当中配置 parameter="method" 这个属性在struts-config.xml里的就可以了 form 里 action.do?method=xxx 就可以了!struts1 Action 配置 action元素的所有配置会被映射到ActionMapping对象中。
Struts1简介和入门1. 框架框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。
也就是说框架是一个半成品的应用程序。
我们所面对的应用程序一般都是分为两部分,一部分是业务相关的组件部分,另一部分是和业务无关的组件部分。
而我们知道和业务相关的组件部分的重用性是非常低的,这也是显而易见的事情;而和业务无关的组件部分,如验证、异常、程序流程控制等等服务组件的复用性是非常高的。
所以当人们在不同的应用程序中抽出共性的组件,构成一个半成品应用程序,这时候框架就应运而生了。
2. Struts1框架什么是struts1框架?解答这个问题,就不得不看先前的三篇中的mvc设计模式实例,因为struts1框架是一个基于mvc的框架(如果弄懂那个实例,这里理解struts1框架是非常轻松的)。
Struts1框架结构如图:上面图展示了struts1框架的结构,从左到右,分别是V,C,M。
表示层主要由JSP和标签库组成。
所有通过struts1框架的请求都经过ActionServlet接受(这个类struts1框架已经给我封装好了),根据接收的请求参数和Struts配置(struts-config.xml)中ActionMapping,将请求送给合适的Action去处理,解决由谁做的问题,它们共同构成Struts的控制器。
Action则是Struts应用中真正干活的组件,开发人员一般都要在这里耗费大量的时间,它解决的是做什么的问题,它通过调用需要的业务组件(模型)来完成应用的业务,业务组件解决的是如何做的问题,并将执行的结果返回一个代表所需的描绘响应的JSP(或Action)的ActionForward对象给ActionServlet以将响应呈现给客户。
虽然现在还没有实现一个struts1框架实例,但是我们有了先前mvc设计模式实例的基础,我们来看struts框架,我们发现我们先前的实例中的testservlet做了struts中的Actionservlet的事情;AddUserAction、DelUserAction、ModifyUserAction、QueryUserAciton做了struts中的Action事情,ActionForm做了struts中actionform的事情;actionmapping做了struts中actionmapping的事情;action_config.xml做了struts-config.xml的事情。
struts框架详细介绍Struts是一个开源的Java Web应用程序开发框架,可以帮助开发者构建可扩展的、高性能的Web应用程序。
它遵循了Model-View-Controller(MVC)设计模式,通过将业务逻辑、表示逻辑和用户交互进行分离,使得应用程序更易于开发、测试和维护。
下面是关于Struts框架的详细介绍。
1.MVC设计模式:Struts采用了MVC设计模式,将应用程序的不同组成部分进行分离。
- Model层负责处理数据和业务逻辑。
在Struts中,开发者可以使用JavaBean、EJB、Hibernate等技术作为Model层的实现。
- View层负责展示数据和用户界面。
Struts提供了JSP(JavaServer Pages)作为主要的View技术,也可以使用Velocity、Freemarker等模板引擎。
- Controller层负责接收用户请求、处理业务逻辑以及将结果返回给View层。
Struts的Controller层使用ActionServlet来处理请求,它根据配置文件中的映射规则将请求转发给合适的Action类进行处理。
2.核心组件:Struts由以下几个核心组件组成:- ActionServlet:负责接收和处理来自客户端的请求,并根据配置文件中的映射规则将请求转发给合适的Action类进行处理。
- Action类:实现了业务逻辑的处理,接收请求和返回结果。
开发者需要继承Action类,并覆写其中的execute(方法来实现自定义的业务逻辑。
- ActionForm:用于封装请求参数并传递给Action类进行处理。
ActionForm可以与表单元素进行绑定,从而方便地获取和验证用户输入。
- ActionMapping:配置文件中的一项规则,用于将请求URL映射到具体的Action类和方法。
- ActionForward:配置文件中的一项规则,用于指定请求处理完成后需要跳转到的页面。
3 S TRUTS 详解 (1)3.1.1 传统的Model 1和Model 2.......2 3.1.2 MVC 及其优势.. (3)3.2 S TRUTS 概述 (4)3.2.1 Struts 的起源.............................4 3.2.2 Struts 的体系结构 (4)3.3 S TRUTS 的下载和安装..............................5 3.4 S TRUTS 入门. (6)3.4.1 基本的MVC 示例......................6 3.4.2 Struts 的基本示例...................13 3.4.3 Struts 的流程 (16)3.5 S TRUTS 的配置 (17)3.5.1 配置ActionServlet ...................17 3.5.2 配置ActionForm .....................19 3.5.3 配置Action ..............................20 3.5.4 配置Forward .. (21)3.6 S TRUTS 程序的国际化 (22)3.6.1 Java 程序的国际化.................23 3.6.2 Struts 的国际化.. (26)3.7 使用动态A CTION F ORM (30)3.7.1 配置动态ActionForm .............30 3.7.2 使用动态ActionForm . (31)3.8 S TRUTS 的标签库 (32)3.8.1 使用Struts 标签的基本配置....32 3.8.2 使用html 标签库......................33 3.8.3 使用bean 标签库.....................35 3.8.4 使用logic 标签库..................42 3.9 S TRUTS 的数据校验 (53)3.9.1 ActionForm 的代码校验.........54 3.9.2 Action 的代码校验...................57 3.9.3 结合commons-validator.jar 的校验 (58)3.10 S TRUTS 的异常框架...............................66 3.11 几种常用的A CTION (69)3.11.1 DispatchAction 及其子类......70 3.11.2 使用ForwardAction ..............74 3.11.3 使用IncludeAction ................74 3.11.4 使用SwitchAction (75)3.12 S TRUTS 的常见扩展方法 (76)3.12.1 实现PlugIn 接口....................76 3.12.2 继承RequestProcessor ..........77 3.12.3 继承ActionServlet .. (79)本章小结 (80)3 Struts 详解从实际应用开发的角度而言,Struts 应该是MVC 框架的第一选择。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN""/dtds/struts-config_1_2.dtd"><struts-config><data-sources /><form-beans ><form-bean name="loginForm"type="com.fit.struts.form.LoginForm" /></form-beans><global-exceptions /><global-forwards /><action-mappings ><actioninput="/login.jsp"name="loginForm"path="/login"scope="request"type="com.fit.struts.action.LoginAction" ><forward name="suc" path="/suc.jsp"></forward><forward name="fail" path="/fail.jsp"></forward></action></action-mappings><message-resourcesparameter="com.fit.struts.ApplicationResources" /></struts-config>1、首先我们来简单总结以下struts1的处理流程首先:由视图层发出请求,当ActionServlet接收到 HTTP 请求后,在doGet 或 doPost 方法中都会调用process()方法处理请求。
Struts1一、为什么使用框架SSH:Struts(MVC框架)、Hibernate(数据库处理框架、面向对象的数据库处理框架)、Spring(IOC控制反转、AOP面向切面编程)、Ibatis。
举例:Word做简历模板。
1.不用排版、布局,提高效率2.可专心在内容上。
3.结构统一,便于人事阅读4.新手可作出专业的简历。
框架技术分析:1.更好更快地构建程序。
2.专心在业务上,因为框架本来就是一个半成品3.提供可重用的公共结构4.站在巨人的肩膀上,享用前人的经验和智慧。
二、自定义框架回顾核心类:ActionServlet类三、Struts1产品介绍1.Struts1搭建【略】2.多配置文件导入在web.xml中配置。
通过逗号进行分隔。
<servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-config1.xml</param-value></init-param><load-on-startup>2</load-on-startup></servlet>3.全局设置<global-forwards><forward name="success"path="/success.jsp"></forward></global-forwards>此处可以理解为全局变量。
使用redirect避免重复提交使用redirect避免重复提交避免重复提交这个问题在Web应用开发领域应该是一个老生常谈的问题了,主流的一些Web应用框架也提供了方便使用的功能来实现这个需求,比如Struts的Token。
但是有些时候,可能用户确实需要刷新提交之后所转到的页面,比如假设如下的需求:用户注册了一个账号,但是这个账号需要管理员批准才可以进行工作,于是,用户在注册页面填写了详细信息之后,提交,转到详细信息页面,然后刷新这个页面来查看自己的状态。
此时,我觉得使用redirect是非常方便的。
以下是redirect在Struts1和Struts2中的实现:Struts1:在Struts1中,有一个org.apache.struts.action.ActionRedirect的类,这个类是ActionForward类的子类,是专门用来做redirect跳转的。
使用起来非常的简单,只需在你的Action类的方法中,返回一个ActionRedirect类的实例即可。
----------------------------------------------------ActionRedirect redirect = newActionRedirect(mapping.findForward("detailAction")); // 这里是在struts-config.xml文件中定义的<forward>节点的name属性redirect.addParameter("id", user.getId()); //这里是要在url后面附加的参数名称及其值return redirect;----------------------------------------------------Struts2:在Struts2中,情况有所不同。
∙AIX and UNIX∙Information Management∙Lotus∙Rational∙WebSphere技术:∙Java technology∙Linux∙Open source∙SOA and web services∙Web development∙XML解决方案:∙Cloud computing∙文档库∙订阅源∙在线浏览每周时事通讯∙技术主题详情∙[关闭]查找软件:∙IBM 产品(英文)∙评估方式(下载,在线试用,Beta 版,云)(英文)∙行业(英文)∙软件评估详情∙[关闭]∙我的首页∙概要信息∙群组∙博客∙Wiki∙文件∙活动∙社区详情∙[关闭]∙技术讲座∙网络广播(英文)∙查找活动(技术讲座,网络广播,会议等)(英文)∙活动详情∙[关闭]深入 Struts 1.1王和全 (ok_winnerboy@),简介:作为基于 MVC 模式的 Web 应用最经典框架,Struts 已经正式推出了1.1 版本,该版本在以往版本的基础上,提供了许多激动人心的新功能。
本文就将带你走进 Struts 1.1 去深入地了解这些功能。
本文的标签:best_practices, 应用开发标记本文!发布日期: 2003 年 8 月 02 日级别:初级访问情况 1558 次浏览建议: 0 (添加评论)平均分(共 2 个评分)说明:希望本文的读者能有一定的 Struts 使用基础。
图解说明:其中不同颜色代表 MVC 的不同部分:红色(控制器)、紫色(模型)和绿色(视图)首先,控制器(ActionServlet)进行初始化工作,读取配置文件(struts-config.xml),为不同的 Struts 模块初始化相应的 ModuleConfig 对象。
比如配置文件中的 Action 映射定义都保存在 ActionConfig 集合中。
相应地有 ControlConfig 集合、FormBeanConfig 集合、ForwardConfig 集合和MessageResourcesConfig 集合等。
Struts1工作原理Struts1工作原理图1、初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。
(面向对象思想)2、发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器。
3、form填充:struts的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中。
4、派发请求:控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给这个Action中的excute()方法。
5、处理业务:Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象。
服务器通过ActionForward对象进行转发工作。
6、返回响应:Action将业务处理的不同结果返回一个目标响应对象给总控制器。
7、查找响应:总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面。
8、响应用户:目标响应对象将结果传递给资源对象,将结果展现给用户。
Struts1优缺点(为什么要用strust1)1.优点:①开源的框架,结构清晰②是MVC的经典实现(MVC是一种思想,而不是一种技术)③处理异常机制,实现国际化④具有强大的标签库⑤解决了JSP页面存在大量的JA V A代码,维护起来方便⑥在formBean中会自动提交,不会去使用传统的get、set方法得到值、取值2.缺点:①配置复杂②测试不方便③依赖web容器④action是一个单例模式,必须设置为线程安全Struts2工作原理struts2工作原理图1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类6 ActionProxy创建一个ActionInvocation的实例。
--------------------------------------装--------------------------------------订------------------------------线struts考试试卷选择题(每题2分,共计100分)1.Action中有包括代码“request.setAttribute("data", list)”,则下面logic:iterate使用正确的是()。
A.<logic:iterate property="list" var="item">${item.title}</logic:iterate>B.<logic:iterate name="list" id="item">${item.title}</logic:iterate>C.<logic:iterate property="date" var="item">${item.title}</logic:iterate>D.<logic:iterate name="date" id="item">${item.title}</logic:iterate>2. ActionForm中的validate方法返回什么值,认为是验证成功()。
[选两项]A.null B.空字符串C.一个空的ActionError对象D.一个空的ActionErrorS对象3.在MVC模型中,控制器是重要组成组件,针对Struts框架技术,()类负责担任此角色。
A.Action B.ActionServlet C.ActionForm D.AcrionForward4.在Struts中,ActionServlet的作用是()。
[选两项]A.它是所有FormBean的父类 B.它是所有ActionBean的父类C.核心控制器 D.将请求中的数据封装到FormBean中5.下面html标签的使用中正确的是()。
[选两项]A.<html:text type="hidden" name="opr" value="toList"/>B.<html:submit class="btn">提交</html:submit>C.<html:select property="from"><html:option value="1">涞水</html:option></select>D.<html:optionsCollection property="userList" label="uname" value="uid"/>6.在struts应用程序的JSP页面上,使用HTML:optionsCollection标签初始化从数据库查询得到的下拉列表框的选择项,该标签的()属性表示用作选项显示的值。
A.name B.label C.value D.property7.Struts中的ActionServlet属于MVC模式中的()。
A.视图 B.模型C.控制器 D.业务层8.在struts-config.xml配置文件中,使用()元素来指定自定义的一个RequestProcessor。
A.form-beans B.action C.controller D.set-property9.Servet是一个在服务器上运行、处理请求信息并将其发送到客户端的Java程序。
()接受服务请求、找--------------------------------------装--------------------------------------订------------------------------线到servlet累、加载Servlet类并创建Servlet对象。
A.客户端 B.IE浏览器 C.Servlet容器 D.Servlet本身10.对于以下代码,HelloAction希望把请求转发给hello.jsp,在HelloAction的execute()方法中如何实现()。
[选两项]<action path = ”/HelloWorld”type = ”hello.HelloAction”name = ”HelloForm”scope = ”request”vali date = ”true”input = ”/hello.jsp”><forward name=”SayHello” path=”/hello.jsp” /></action>A.return (new ActionForward(mapping.getInput()));B.return (mapping.findForward(”SayHello”));C.return (mapping.findForward(“hello.jsp”));D.return (mapping.findForward(“/hello.jsp”));11.Action中的execute方法执行完毕后,需要跳转到show.jsp这个页面,下列写法中那些从形式上是正确的()。
A.return "show.jsp";B.return "show";C.return mapping.findForward("show");D.return mapping.findForward("show.jsp");12.在struts的配置文件中,action节点的哪一个属性用来action指定引用的actionForm()。
A.name B.attribute C.scope D.path13.在struts的配置文件中,一般来说action节点的()属性是可以不写的。
[选三项]A.path B.type C.name D.input14.在使用Struts错误处理机制时,将报错信息定义在属性文件后,还需要在struts-config.xml文件中使用()标签定义对该属性文件的引用。
A.message-resource B.action C.forward D.form-bean--------------------------------------装--------------------------------------订------------------------------线15.在Struts应用程序中,创建了定义报错信息的资源文件后,应在()文件中添加对这个资源文件的引用。
A.web.xml B.ApplicationResources.propertiesC.struts-config.xml D.ApplicationResources_zh_CN_properties16.关于struts的dispatchAction,以下说法正确的是()。
A.扩展自dispatchAction的Action类不必定义execute方法B.在dispatchAction Bean中,创建的实体操作业务的方法,传入的参数可以和普通的Action的execute 方法不同C.在dispatchAction Bean中,方法名的前缀必须为to或doD.与普通的Action的配置比较,要使用dispatchAction,需要多一个param17.在Struts应用程序的JSP页面上,使用()Struts标签初始化从数据库查询得到的下拉列表框选择项。
A.html:hidden B.html:from C.html:text D.html:optionsCollection18.下面关于DispatchAction的说法正确的是()。
A.DispatchAction Bean中不需要定义execute方法B.实现DispatchAction Bean需要实现org.apache.struts.actions.DispatchAction接口C.可通过http://localhost:8080/app/da.do直接访问DispatchActionD.配置DispatchAction Bean与配置普通Action Bean没有区别19.对于以下这段配置ActionServlet的代码,说法正确的有()。
[选三项] <servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/myconfig.xml</param-value></init-param><load-on-startup>2</load-on-startup></servlet><!– Standard Action Servlet Mapping –><servlet-mapping>--------------------------------------装--------------------------------------订------------------------------线<servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>A.Servlet容器在启动Struts应用时,会初始化这个ActionServletB.对于所有URL中以”.do”结尾的HTTP请求,都由ActionServlet处理C.这段代码位于struts-config.xml中D.这段代码位于web.xml中20.在Java EE中,关于框架技术,下面说法错误的是( )。