strusts1一些标题总结

strusts1一些题目总结
一.全局转发和局部转发的区别?
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总结的思维导图