struts2


struts2:
   struts2是一款优秀的MVC框架,它的前身是webwork.


struts1与struts2的区别:
    1.struts1是单例,线程同步的,sturts2每个请求产生一个实例,是非同步的.
    2.struts1是依赖于web容器,sturts2不依赖于web容器.
    3.struts1暴露了servletAPI,因此不方便单元测试,struts2隐藏了servletAPI,方便单元测试.
    4.struts1使用actionFrom接收from表单的值,容易出现代码冗余,struts2使用属性驱动与模型驱动,减少重复代码.
    5.struts1只支持El表达式,struts2支持El表达式,ognl表达式.
    6.struts1使用Beanutils.jar工具进行类型转换,Struts2使用OGNL进行类型转换且,提供基本和常用对象的转换器。

struts2执行流程:
    1.发送请求.
    2.进过一系列过滤器.
    3.通过ActionMapper判断请求需要调用哪个Action,并把请求给ActionProxy
    4.ActionProxy通过加载struts配置文件找到需要调用的Action类.
    5.调用Action过程中会经过一系列的拦截器.
    6.执行Action
    7.返回ResultSet,得到返回响应.

实现Action接口与继承ActionSupport的区别:
    1.实现Action接口需要重写execute方法,并且可以得到5个常用的常量.
    2.ActionSoupport实现了Action接口,并提供了国际化和验证方法.
      继承ActionSoupport可以简化Action的开发.

属性驱动与模型驱动:
    1.属性驱动就是把属性定义在Action中,并提供相应的get,set方法
    2.模型驱动需要实现ModelDriven接口,并泛型javaBean,重写getModel方法

struts2的动态定位方法的方式:
    1.感叹号定位法.
    2.struts配置文件中配置method属性.
    3.通配符匹配法.

全局结果与局部结果:
    与struts1全局转发与局部转发相同.

全局异常与局部异常:
    与sturts1全局异常与局部异常相同.

struts2国际化:
    1.全局国际化
    2.Action国际化

    国际化需要配置.properties资源文件.
    页面输出国际化内容可以用<s:text name="key">

struts2配置常量的方式:
    1.配置struts.xml配置文件. 推荐使用,可以使用<constant>标签来配置常量
    2.配置web.xml. 容易出先整合问题,不推荐使用.
    3.配置struts.prototies资源文件. 为了与webwork保持一致或相兼容,不推荐改变.

sturts2的转换器:
    1.按范围分类:局部转换器(只在当前action有效) , 全局转换器(所有action范围内都有效)
    2.从实现角度: 基于ognl  , 基于struts2

struts2校验:
    1.继承ActionSupport,重写volidate()方法. 使用这种校验方式会校验action中的所有方法.
    2.使用volidateXXX()方法. 使用这种方式校验可以校验action的部分方法.
    3.使用验证框架.

struts2验证框架:
    1.需要与Action在同一目录下配置资源文件,命名格式为Action类名-Action配置名-方法名.
    2.struts2验证框架可以启用内建校验.

struts2验证分类:
    1.字段校验: 字段用什么校验器来校验.
    2.非字段校验(校验器校验): 校验器需要校验什么字段.

struts2验证流程:
   

struts2如果访问servletAPI?
    1.非IOC方式:通过ActionContext.
    2.IOC方式:通过spring的依赖注入.

struts2两种栈.
    1.ValueStack: ognl上下文,反问ognl表达式
    2.ActionContext:

struts2特殊符号表示的意义:(#,$,%,!)
    1.#:ognl表达式,用来访问ValueStack和ActionContext.
    2.$:用于国际化,配置struts配置文件和EL表达式.
    3.%:计算表达式,类似于javascript中的eval()函数,用于把属性转变为字符串.
    4.!:用于动态定位方法.

struts2的from主题:
    1.simple 主题: 无任何样式的主题.
    2.xthml  主题: 默认主题.
    3.css_xthml主题 :可以加入样式控制.
    4.ajax 主题 : 支持ajax的主题.
    配置主题可以使用from标签中的theme属性指定

struts2拦截器:
    拦截器:在方法执行之前或之后进行拦截,然后加入某些操作.
    拦截器是面向切面编程的一种实现策略.
    struts2的拦截器完成了struts的大部分功能.struts2拦截器基于插件的,
    插件的可插可拔机制可以使应用程序提供了几乎无限扩展等功能.

你可能感兴趣的:(框架,Ajax,struts,IOC,Webwork)