一.全局转发和局部转发的区别?
1.定義方式:全局轉發的forward是定義在global-forwards內的而
局部轉發的forward是定義在action-mappings內的.
2.被訪問的范圍:全局的forward才能夠被所有的頁面訪問,
而局部的只能被所定義的頁面訪問;
3.訪問的選擇:若有全局的也有局部的forward選擇的是局部的;
二.Struts1 中的主键有那些?
ActionServlet 控制器
ActionClass 包含事务逻辑
ActionForm 显示模块数据
ActionMapping 帮助控制器将请求映射到操作
ActionForward 用来指示操作转移的对象
ActionError 用来存储和回收错误
Struts标记库 可以减轻开发显示层次的工作
三.struts1的核心控制器在哪以及它的基本功能?
核心:
ActionServlet
基本功能:
1.截获用户的Http请求
2.把这个请求映射到相应的Action类。
3.创建一个ActionForm bean实例,将form请求放入formbean的实例中
4.调用Action实例的perform()方法
5.将ActioForm bean,Action Mapping对象,request和response对象传给Action的perform()方法
6.perform返回一个ActionForword对象,根据方法执行情况转到相应的jsp页面.
四.struts1是如何数据校验的,及它们的方法是什么?
一种是继承ActionForm类覆盖validate用代码进行验证;
另一种是继承ValidatorForm类通过配置文件进行验证。
五.struts1框架的优缺点?
优点:
1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现.
2. 有丰富的tag可以用 ,Struts的标记库(Taglib),如能灵活动用,则能大大提高开发效率。
3. 页面导航。
4. 提供Exception处理机制 .
5. 数据库链接池管理
6. 支持I18N
缺点:
1.struts的配置和结构过于复杂。
2.因为actionServlet依赖于web容器,所以测试不太方便。
3.Struts1的Action类是单例模式,必须设计成线程安全的。
六.为什么要用Struts1?
1.struts1框架中包含JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。
2.但用这些技术构建的系统非常的繁乱.
3.我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。
七.Struts1中提供了那五种自定义Tag库?
1. HTML标签库:struts-html taglib包含用来创建struts输入表单的tag,和其它通常用来创建基于HTML用户界面的tag。
2. Bean标签库:struts-bean taglib包含在访问bean和bean属性时使用的tag,也包含一些消息显示的tag。
3. Logic标签库:struts-logic taglib包含的tag用来管理根据条件生成输出文本,和其它一些用来控制的信息。
4. template标签库:struts-template taglib包含的tag用来定义模板机制。
5. Nested 标签: 增强对其他的Struts 标签的嵌套使用的能力
八.Struts的处理流程:
控制器进行初始化工作,读取配置文件,为不同的Struts模块初始化相应的ModulConfig对象。
控制器接收Http请求,并从ActionConfig中找出对应于该请求的Action子类,如果没有对应的Action,控制器直接将请求转发给JSP或者静态页面,否则控制器将请求分发至具体的Action类进行处理。
在控制器调用具体的Action的Execute方法之前,ActionForm对象将利用Http请求中的参数来填充自已。还可以在 ActionForm类中调用Validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的ActionErrors对象。
执行具体的的Execute的方法,它负责执行相应的业务逻辑。执行完后,返回一个ActionForward对象,控制器通过该 ActionForward对象来进行转发工作。也可以把Action要处理的业务逻辑封装在JavaBean中,如果系统中还有EJB,那么通过 JavaBean调用EJB以完成业务处理;如果没有EJB,那么就直接在JavaBean中连接数据库,进行数据库相关的操作。
九.Validator框架验证:
使用客户端验证比使用服务端验证的好处有以下几点:
1.容易维护. 由于验证信息可以放在一个配置文件中.
2.标准化. 由于很多的验证都是相同的,如用户名和密码都要求使用字母,数字,下划线组成.
3.避免重造轮子. 一现些简单的验证,想要正确的实现它却很困难.
4.最主要的一个原因,就是验证在客户端,而不在服务端,这也节省了数据的传送面浪费时间.
十.struts1的客户端验证于服务端验证的区别?
Struts中客户端验证跟服务器端验证有区别:客户端验证直接写一个action文件便可实现,而服务器端验证必须通过客户端程序去调用服务器端相 应的 WebServices,实现业务逻辑. 它们的本质区别是,就是客户端数据校验是在客户端上进行的,而服务器端校验是在服务器上进行的,在速度上客户端要快很多,但也有缺陷,就是当有黑客攻击的时候,他完全可以绕过客户端直接和服务器交互。
十一. struts应用的实用技术:
1、struts框架的扩展点
2、struts应用的国际化
3、Validator验证框架
4、异常处理机制
十二.struts简单的数据验证:
1>.数据验证是发生在:用户提交form后,并且在服务器处理form中的数据之前进行(也就是进入Action之前)
2>.结果:在进行完简单验证后,如果form中的数据不合法,程序就会forward到指定的JSP页(一般是包含form的页面),并显示相应的错误信息。如果form中的数据完全正确,程序就会进入Action,对数据进行处理
3>.数据验证是发生在ActionForm类中,ActionForm类不仅可以封装form中的数据,还可以通过其validate方法来验证form中的数据
4>.validate方法返回了一个ActionErrors对象,这个对象相当于一个Map,如果ActionErrors中没有错误信息,表 示form中的数据是正确的,这时服务端程序就会继续执行。如果ActionErrors中有错误信息,程序就会跳转到指定的错误页面
5>.错误信息属性文件的信息提取: ActionErrors对象是一个类似于Map的键值对应的对象,其内的属性都有一个值与之对应,而这个值在属性文件中会有具体的错误提示信息与之绑 定,所以,在JSP页面中可以运用这个过程将相应的错误信息显示给用户!
十三.叙述Struts ActionForm执行步骤
1.检查Action的映射,确定Action中已经配置了对ActionForm的映射
2.根据name属性,查找form bean的配置信息
3.检查Action的formbean的使用范围,确定在此范围下,是否已经有此form bean的实例。
4.假如当前范围下,已经存在了此form bean的实例,而是对当前请求来说,是同一种类型的话,那么就重用。
5.否则,就重新构建一个form bean的实例
6.orm bean的reset()方法备调用
7.调用对应的setter方法,对状态属性赋值
8.如果validatede的属性被设置为true,那么就调用form bean的validate()方法。
9.如果validate()方法没有返回任何错误,控制器将ActionForm作为参数,传给Action实例的execute()方法并执行
十四.基于Struts开发的应用由3类组件构成
1.控制器组件
2.模型组件
3.视图组件
十五. 创建formbean有那几种方式?
1.静态的创建:先创建一个类继承ActionForm,然后在struts-config里面配置
2.动态的创建:直接在struts-config里面配置,引用org.apache.struts.validator.DynaValidatorForm
Struts ActionForm执行步骤
1.检查Action的映射,确定Action中已经配置了对ActionForm的映射2.根据name属性,查找form bean的配置信息3.检查Action的formbean的使用范围,确定在此范围下,是否已经有此form bean的实例。4.假如当前范围下,已经存在了此form bean的实例,而是对当前请求来说,是同一种类型的话,那么就重用。5.否则,就重新构建一个form bean的实例6.orm bean的reset()方法备调用7.调用对应的setter方法,对状态属性赋值8.如果validatede的属性被设置为true,那么就调用form bean的validate()方法。9.如果validate()方法没有返回任何错误,控制器将ActionForm作为参数,传给Action实例的execute()方法并执行
基于Struts开发的应用由3类组件构成
1.控制器组件
2.模型组件
3.视图组件
.Struts1 中的主键:
ActionServlet 控制器
ActionClass 包含事务逻辑
ActionForm 显示模块数据
ActionMapping 帮助控制器将请求映射到操作
ActionForward 用来指示操作转移的对象
ActionError 用来存储和回收错误
Struts标记库 可以减轻开发显示层次的工作
它的一些常识:
1.它的默认配置名:struts-config.xml.
2.Action类中最重要的方法: execute().
3.它的验证方式有两种:在服务器端验证(在FormBean里面重写Validate方法),在客户端验证(通过配置文件来进行验证)。
4.在服务器启动时会执行init()来进行初始化一些信息。
5.它的乱码问题可以通过过滤器来解决。
6.struts1所需要用到的jar包可能会和tomcat中的jsp-api.jar,servlet-api.jar包冲突,最好的解决方案是将这两个jar包放到
重新建的一个包中去,然后再引用这个包中的jar。
7.在使用validate框架时from类一定要继承ValidatorFrom这个类。
Struts Validator框架采用两个基于XML的
外加一张struts1总结的思维导图
- 大小: 196 KB
分享到:
相关推荐
本练习7(exercise7)着重于掌握Struts的核心概念和实际应用,通过一系列的题目、代码实现以及作业报告来深入理解Struts的工作原理。 首先,我们需要了解Struts框架的基础架构。它通过控制器Servlet(ActionServlet...
- **Struts**:Apache Struts 是一种用于创建企业级Java Web应用的开源框架。Struts 是基于Model-View-Controller (MVC) 设计模式构建的,它简化了Web应用程序的开发,并使代码更易于维护。Struts 为业务逻辑层...
为了提升系统的可扩展性和安全性,采用Struts+DAO模式是一种较为成熟的方法。 #### 二、Struts+DAO简介 **Struts**是一款基于Java的开源MVC框架,它将Web应用分为模型、视图和控制器三部分,有助于提高代码的复用...
根据提供的标题、描述和部分链接内容,我们可以总结出与Struts2框架以及移动互联相关的知识点。下面将逐一解析这些知识点: ### Struts2框架简介 Struts2是Apache基金会下的一个开源项目,它是一个用于开发Java ...
- Struts 1 是一个基于 Model-View-Controller (MVC) 设计模式的 Java Web 框架。 - 它提供了一套完整的 MVC 解决方案,将业务逻辑、视图和控制器分离,便于管理和维护。 - **工作流程:** - 用户请求通过 HTTP ...
Struts2是Apache组织下的一个开源Web应用框架,它继承了Struts1的优良特性,并在此基础上进行了大量改进,引入了拦截器、类型转换、文件上传/下载等众多实用功能,使得开发更为高效便捷。接下来,我们将详细解析...
- **Struts2的JSON插件**:虽然题目要求不使用JSON,但通常情况下,Struts2通过JSON插件返回数据给jQuery是最方便的方式。不过,我们可以通过设置Content-Type为"text/plain"或"text/html",让Struts2返回非JSON...
**Struts2** 是 Apache 开发的一款强大的 Web 应用框架,它是 Struts1 的继任者,并且在很多方面进行了优化。Struts2 的设计目标之一就是自动化 Web 表单处理,以提高开发效率和代码质量。 #### Struts2 的架构特点...
1. **下载所需库文件**:根据题目中给出的信息,我们需要下载以下库文件: - xwork-core-2.2.1.jar - struts2-core-2.2.1.jar - ognl-3.0.jar - freemarker-2.3.16.jar - commons-fileupload-1.2.1.jar - ...
Struts2默认提供了一些拦截器来帮助处理这个问题,但如题目所述,由于性能考虑,项目组决定不使用Struts2的标签,因此需要自定义拦截器来实现防止重复提交的功能。 自定义拦截器的实现主要分为以下几个步骤: 1. *...
根据题目中的描述,“我想用struts标签来统计购物车的总价”,可以明确需求是利用Struts2的标签功能实现购物车商品总价的计算,并显示在界面上。 #### 三、Struts2标签库简介 Struts2提供了丰富的标签库,这些标签...
总结,"struts2+mybatis+mysql 在线考试系统"是一个完整的Web应用程序,它结合了Struts2的MVC架构、MyBatis的数据库操作能力和MySQL的数据存储功能,为教育领域提供了一个高效、稳定的在线考试平台。开发者通过熟练...
虽然题目中提供的“[pic][pic][pic][pic]”表示的是图片,这里无法直接展示图片内容,但我将基于常见的Struts框架数据源配置流程,给出详细的配置指导: #### 步骤一:选择合适的数据源实现 在Struts框架中,数据...
尽管题目中的部分内容提及了Ajax技术,但实际上,Struts2框架本身并不直接涉及Ajax。不过,Struts2可以通过集成Ajax技术来提升用户体验。Ajax全称是Asynchronous JavaScript and XML(异步JavaScript和XML),是一种...
根据题目提供的信息,我们需要在项目的`WEB-INF/lib`目录下放置`struts2-spring-plugin-x-x-x.jar`和`spring.jar`两个核心库。同时,由于Spring的依赖注入机制使用了日志框架,还需要加入`commons-logging.jar`。...
1. **环境准备**:首先确保测试环境中已经部署了Struts2框架,并且该版本存在已知的安全漏洞。通常情况下,可以通过查阅官方文档或者第三方安全公告来确认。 2. **构造HTTP请求**:接下来,需要构造一个包含特定...
1. **Action类**:Action类是Struts的核心组件之一,它作为用户请求与业务逻辑之间的桥梁。ActionServlet会根据请求URI找到对应的Action,并调用其`execute()`方法。每个Action类通常代表一项特定的业务操作,执行...
Struts2是一个基于Java的企业级Web应用程序开发框架,它继承了Struts1的优点,并在此基础上进行了许多改进和优化。Struts2采用了MVC(Model-View-Controller)设计模式,能够帮助开发者更好地组织代码结构,提高开发...
1. **MVC模式**:MVC全称为Model-View-Controller,是一种软件设计模式,常用于构建Web应用程序。Model代表业务逻辑,通常由JavaBean或EJB实现;View负责展示,常用JSP页面生成;Controller是控制器,通常是一个...