Struts2复习题
1.以下属于struts2的控制器组件是:
2.以下属于struts2的体系结构的是:(多选)
控制器组件配置文件
3.以下属于struts2配置文件中的配置元素是:(多选)
A.
B.
C.
D.
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.使用
7.在struts2配置中用()元素来配置常量:
A.
B.
C.
D.
8.关于struts2包的说法正确的是:
框架使用包来管理常量
框架定义包时必须指定name属性
框架中配置包时,必须继承自struts-default包,否则会报错
框架中使用包来管理Action
9.struts2中获取Servlet API的方法正确的是:(多选)
A.使用ActionContext对象以解耦合的方法访问Servlet API
B.使用ServletActionContext对象以解耦合的方式访问Servlet API
C.使用ActionContext对象以耦合的方式访问Servlet API
D.使用ServletActionContext对象以耦合的方式访问Servlet API
10.struts2动态调用的格式为:
!
11.如果要实现struts2的数据校验功能
A.普通Action类可以实现
B.继承自Action接口可以实现
C.继承自ActionSupport类可以实现
D.继承自ActionValidate类可以实现
12.如果要实现自定义处理结果,需继承那个类
13.实现动态返回结果,在配置
A.${属性名}
B.@{属性名}
C.${'属性名'}
D.${"属性名"}
14.用于实现国际化的struts2标签是:
A.
B.
C.
D.
15.struts2默认的处理结果类型是:
16.自定义转换器继承的抽象类是:
17.自定义转换器的注册方式有:
A.只有全局注册方式
B.只有局部注册方式
C.只有全局和局部注册方式
D.以上说法都不对
18.自定义拦截器类的方式有:(多选)
A.实现Interceptor接口
B.实现AbstractInterceptor接口
C.继承Interceptor类
D.继承AbstractInterceptor类
19.在文件中,使用()元素定义拦截器
A.
B.
C.
D.
20.在OGNL中操作符的作用是:
A.取出符合选择逻辑的第一个元素
B.取出符合选择逻辑的最后一个元素
C.取出符合选择逻辑的所有元素
D.以上说法都不对
21.以下属于struts2标签的是:(多选)
标签 B.数据访问标签标签标签
22.以下哪个标签是struts2中的用于循环迭代:
A.
B.
C.
D.
23.Struts2主要核心功能是由()实现
a)过滤器
b)拦截器
c)类型转换器
d)配置文件
24.Struts中的ActionServlet属于MVC模式()
a)视图
b)模型
c)控制器
d)业务层
25.Struts2框架由()和()框架发展而来的【选择二项】
a)Hibernate
b)Struts
c)Spring
d)WebWork
26.Struts2以(B)为核心,采用()的机制处理用户请求
a)Struts
b)WebWork
c)拦截器
d)jar包
27.struts2中,不属于Action接口中定义的字符串常量的是()
a)SUCCESS
b)FAILURE
c)ERROR
d)INPUT
28.struts2在控制器类中一般需要添加相应属性的()和()【选择二项】
a)setter方法
b)as方法
c)getter方法
d)is方法
29.struts2控制器需要在()配置文件中进行配置
a)
b)
c)
d)
30.不属于struts2标签库的是()
a)
b)
c)
d)
31.在JSP页面中可以通过Struts2提供的()标签来输出国际化信息
a)
b)
c)
d)
32.资源文件的后缀名为()
a)txt
b)doc
c)property
d)properties
33.struts2自定义类型转换器必须实现的接口是()
a) Convert
b) TypeConverter
c) StrutsTypeConverter
d) StrutsConvert
34.struts2关于注册全局类型转换器的说法正确的是()【选择二项】
a) 必须提供文件
b) 注册文件的格式为:复合类型=对应类型转换器
c) 注册文件的格式为:对应类型转换器=复合类型
d) 以上说法都不正确
35.struts2自定义拦截器中的“return ”代码表示()【选择二项】
a) 不执行目标Action的方法,直接返回
b) 执行目标Action的方法,直接返回逻辑视图名称
c) 在自定义拦截器中,该代码是必需的
d) 在自定义拦截器中,该代码是可选的
36.struts2中,以下配置文件上传拦截器只允许上传bmp图片文件的代码,正确的是()
a) image/bmp
b) *.bmp
c) bmp
d) image/*.bmp
37.以下关于OGNL的说法正确的是()【选择二项】
a) ActionContext是OGNL的上下文环境
b) StackContext是OGNL的上下文环境
c) ValueStack是OGNL的根
d) ActionContext是OGNL的根
38.假设在Session中存在名为uid属性,通过OGNL访问该属性,正确的代码是()
a) #uid
b) #
c) uid
d) ${}
39.关于“#.{ #>20}”OGNL代码所表示的意义说法正确的是()
a) 从persons集合中取出第一个年龄>20的Person对象
b) 从persons集合中取出所有年龄>20的Person对象子集
c) 从persons集合中取出最后一个年龄>20的Person对象
d) 该代码不符合OGNL的语法
40.假设在某JSP页面中存在”
a) 编译JSP页面时会出现错误
b) 编译JSP页面时不会出现错误,但页面不会显示任何内容
c) 该代码用于输出位于ValueStack(值栈)栈顶的对象
d) 以上说法都不正确
41.struts2默认的处理结果类型是()
a) dispatcher
b) redirect
c) chain
d) 以上说法都不正确
42.下列选项中,关于Struts2配置文件说法正确的是()
a) 必须置于WEB-INF/classes目录下
b) 必须为
c) 配置Action时必须配置包信息
d) 使用
43.下列选项中,关于Struts2的Action说法正确的是()【选择二项】
a) struts2会为每一个请求创建一个对应的Action实例
b) struts2在请求处理过程中,只有一个Action实例
c) struts2通过属性来封装用户请求参数
d) 在struts2中定义的属性都用于封装用户请求参数
44.struts2中动态方法调用的格式为()
a)
b) ActionName!
c)
d) ActionName!
问答题:MVC是什么含义
--------------------------------------装--------------------------------------订------------------------------线---------------------------------------- **学院课程考试试卷 课程名称:《使用Struts2开发基于MVC设计模式的企业级应用》(A)卷 年级:班级: 姓名:_______________ 学号:_________________ 考试(考查) 闭卷 选择题(每题2分,共计100分) 1.在控制器类中一般需要添加相应属性的( A )和(C )。(选两项) A.setter方法 B.as方法 C.getter方法 D.is方法 2.业务控制器需要在( B )配置文件中进行配置 A.web.xml B.struts.xml C.struts2.xml D.webwork.xml 3.不属于Struts 2表单标签库的是( D )。 A.
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复习题 1. 以下属于struts2 的控制器组件是: A. Action B.ActionForm C.ActionServlet D.dispatchAction 2. 以下属于struts2 的体系结构的是:(多选) A. struts2 控制器组件 B.struts2 配置文件 C.FilterDispathcer D.Action 3. 以下属于struts2 配置文件中的配置元素是:(多选) A.
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中加入: .
填空: 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表华标签序?中,表単标签为__
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复习题 1.以下属于struts2的控制器组件是: A.Action B.ActionForm C.ActionServlet D.dispatchAction 2.以下属于struts2的体系结构的是:(多选) A.struts2控制器组件 B.struts2配置文件 C.FilterDispathcer D.Action 3.以下属于struts2配置文件中的配置元素是:(多选) A.
、你对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 ,通过这个核心的控制器来
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)
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范围内,然后把请求转发到恰当的视图组件,视图组件通过
认证考试笔试试题 注意: 1.考试时间1小时,总分100分; 2.考试结束试卷必须交回,不交回试卷者成绩无效。
选择题(针对以下题目,选择符合题目要求的答案。针对每一道题目,全选对,则该题得分;所选答案错误或漏选,则该题不得分。每题2分。) 1.关于存储过程中的参数,下列说法错误的是()。 A.存储过程不能声明返回值类型,但可以通过传出参数向调用者返回值 B. 传入参数可以设置默认值 C.定义传出参数时,必须在传出参数之后添加OUT关键字 D. 调用带传出参数的存储过程时,必须先定义一个变量,用于接收传出参数的值 2.有一名为“列车运营”的实体,该实体属性含有:车次、日期、实际发车时间、实际抵达时间、 情况摘要等属性,该实体主键是()。 A.车次B.日期 C.车次+日期 D.车次+情况摘要 3.在数据库的概念设计中,最常用的数据模型是()。 A. 形象模型 B. 物理模型 C. 逻辑模型 D. 实体联系模型 4.SQL Server中,下面用于限制分组函数的返回值的字句是() A.WHERE B. HAVING C. ORDER BY D. 无法限定分组函数的返回值 5.关于数据完整性,以下说法正确的是()。【选择两项】 A.完整性通过主键和外键之间的引用关系实现。 B. 引用完整性通过限制数据类型、检查约束等实现。 C. 数据完整性是通过数据操纵者自身对数据的控制来实现的。 D.如果两个表中存储的信息相互关联,那么只要修改了一个表,另外一个表也要做出相应的修 改,则称该这两个表中的数据具备完整性。 6.现有订单表orders,包含用户信息userid, 产品信息productid, 以下()语句能够返回 至少被订购过两回的productid A. select productid from orders where count(productid)>1 B. select productid from orders where max(productid)>1 C. select productid from orders where having count(productid)>1 group by productid D. select productid from orders group by productid having count(productid)>1 7.考虑本地图书馆的一个图书借阅系统,数据库包含Member(会员),Borrow(借阅)和Book(书 籍)表,要求:
Java寒假笔试模拟题三 姓名:________学号:___________ 一、单项选择题: 1.Struts是一个开源的Web开发框架,它是由哪个组织进行维护的?( c )。 A.BEA B.JBoss C.Apache D.Sybase 2.如果在Web应用程序中添加struts2框架的支持,需要在配置哪个类作为struts2的核心控制器( a )。 A.FilterDispatcher B.StrutsServlet C.ApplicationContextListener D.SessionFactory 3.Struts2的核心控制器需要在哪个配置文件中进行配置( b ) A.struts.xml B.web.xml C.applicationContext.xml D.webwork.xml 4.关于开发人员自己创建的Action,以下说法正确的是( c ) A.Struts2中的Action必须继承Action类 B.Struts2中的Action必须实现Action接口
C.Struts2中的Action无需实现或者继承任何类或接口 D.Struts2中的Action必须继承ActionSupport类 解释:Struts 2的Action无须实现任何接口或继承任何类型,普通的POJO类就可以用做Action类,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法,因为ActionSupport已经实现了Action接口,还实现了Validateable 接口,提供了数据校验功能。通过继承该ActionSupport类,可以简化Struts 2的Action开发。 5.以下关于Struts2配置文件中package元素说法错误的是( d ). A.package元素的name属性不可以重复 B.package元素可以进行继承 C.package元素可以声明为抽象(abstract=”true”) D.package元素可以嵌套 6.以下关于Struts2配置文件中action元素说法错误的是( a ). A.任何一个action的name属性都不可以相同 B.action元素可以没有class属性 C.action元素中拥有method属性 D.action元素的子元素可以配置interceptor-ref 7.Struts2进行数据收集和类型转换的工作,是由以下哪个负责完成的( a )。 A.FilterDispatcher B.ActionInvocation
Struts模拟考试试卷 课程名称:《struts:使用struts框架开发基于MVC设计模式的WEB应用》(A)卷 年级:班级: 姓名:_______________ 学号:_________________ 考试(考查) 闭卷 选择题(每题2分,共计100分) 1. ActionForm中的validate方法返回什么值,认为是验证成功()。[选两项] A.null B.空字符串 C.一个空的ActionError对象D.一个空的ActionErrorS对象 2.在Struts中,ActionServlet的作用是()。[选两项] A.它是所有FormBean的父类 B.它是所有ActionBean的父类 C.核心控制器D.将请求中的数据封装到FormBean中 3.下面html标签的使用中正确的是()。[选两项] A.
一、你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用? 答: MVC设计模式(应用观察者模式的框架模式) M:Model(Businessprocesslayer),模型,操作数据的业务处理层,并独立于表现层(Independentofpresentation)。 V:View(Presentationlayer),视图,通过客户端数据类型显示数据,并回显模型层的执行结果。C:Controller(Controllayer),控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图 MVC框架的一种实现模型 模型二(Servlet-centric): JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,Sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。 StrutsMVC框架(Webapplicationframeworks) Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。 Struts提供了一些组件使用MVC开发应用程序: Model:Struts没有提供model类。这个商业逻辑必须由Web应用程序的开发者以JavaBean或EJB 的形式提供 View:Struts提供了actionform创建formbean,用于在controller和view间传输数据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。 Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action规范,还需要在的特定配置文件中进行配置,接收JSP输入字段形成Actionform,然后调用一个Action控制器。Action控制器中提供了model的逻辑接口。 二、什么是WebService? 答: WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。 WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web 服务定义语言)/SOAP(简单请求协议)规范的。 WebService=WSDL+SOAP+UDDI(webservice的注册) Soap是由Soap的part和0个或多个附件组成,一般只有part,在part中有Envelope和Body。WebService是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA架构。 WebService的优点 (1)可以让异构的程序相互访问(跨平台) (2)松耦合 (3)基于标准协议(通用语言,允许其他程序访问) WebService的基本原理 (1)ServiceProvider采用WSDL描述服务 (2)ServiceProvider采用UDDI将服务的描述文件发布到UDDI服务器(Registerserver) (3)ServiceRequestor在UDDI服务器上查询并获取WSDL文件 (4)Servicerequestor将请求绑定到SOAP,并访问相应的服务。