汪星人 发表于 2014-3-24 10:37

STRUTS2新手基础学习day01

STRUTS2
1.了解Struts2发展史,与webwork框架关系
2.Struts2体系结构
        C控制器:FilterDisptacher(2.0,2.1版本),StrutsPrepareAndExecuteFilter(2.1.8,2.2版本)
        M模型:Action:用于业务处理。(可以不用必须继承父类和实现框架接口)
                                拦截器:用于封装通用业务逻辑。
        V视图:Result(提供了各种类型的Result组件,用于实现不同类型的响应信息)、标签+OGNL
3.Struts2框架的配置
        (1) struts-default.xml(jar包中自带的默认配置)
                配置了一些拦截器、Result组件的定义。
        (2) default.properties(jar包中自带的默认配置)
                配置了框架的一些系统参数,例如请求扩展名、字符编码等。
        (3) struts.xml(开发者创建,默认在src下创建)
                用于配置Action组件、自定义拦截器组件、自定义的Result组件。
        (4) struts.properties(开发者创建,默认在src下创建)
                用于修改default.properties中的配置参数。
4.Struts2开发入门
        (1)创建Web工程,引入开发包
                struts2-core-2.1.8.jar
                xwork-core-2.1.6.jar
                freemarker-2.3.15.jar
                ognl-2.7.3.jar
                commons-fileupload-1.2.1.jar
        (2)配置控制器,并添加struts.xml配置文件
        (3)根据JSP请求编写Action组件
        (4)编写struts.xml配置
5.Struts2特点
        (1)Action摆脱了对框架API依赖,也摆脱了对ServletAPI
        (2)Action可测性增强
        (3)提供了各种类型的Result,可以完成各种形式的响应
        (4)易于扩展和整合其他技术
        (5)提供了拦截器和拦截器栈机制
        (6)Struts1中的Action使用了单例,Struts2是一个请求一个Action对象
6.如何使用Session、Request、Application等对象
        (1)Struts2对原有session、request、application做了封装,可以通过Map结构使用。使用方式如下
        Map session =        ActionContext.getContext().getSession();
        Map application =        ActionContext.getContext().getApplication();
        Map request =        (Map)ActionContext.getContext().get("request");
        (2)封装原理
        public class SessionMap extends AbstractMap{
                HttpSession session;
                public SessionMap(HttpSession session){
                        this.session = session;
                }
       
                public void put(Object key,Object value){
                        session.setAttribute(key.toString,value);
                }
               
                public Object get(Object key){
                        return session.getAttribute(key.toString());
                }
        }
       
        (3)如果需要使用原有Servlet API类型,可以通过ServletActionContext获取
       
        7.Action相关配置
                (1)<package>元素的namespace属性,命名空间,默认值为/
                        对应请求是/工程/namespace/请求名.action
                (2)<action>元素的method属性,业务方法名,默认execute
                        可以指定Action方法名当做业务方法。
                (3)<param>元素
                        可以为父元素对象指定属性值。
                (4)通配符*的使用
                        在<action>元素的name属性中可以使用*,*表示任意字符
                        在<action>元素的其他属性中可以使用{1}、{2}等引用通配符代表的值
        8.ValueStack作用及结构
                ValueStack存储了和请求处理相关的数据。包括session、request、action等。
                ValueStack包含root区和context区
                root区类型为CompoundRoot继承了ArrayList(栈结构),存储于请求对应的Action对象。
                context区类型为Map,用于存储session、request、appliation、action、parameters等变量信息.
        9.ValueStack与OGNL关系
                OGNL:Object Graphic Navigation Language,对象图导航语言。
                Struts2使用OGNL访问ValueStack数据,即对属性值设置和获取。
                OGNL访问ValueStack数据的方法如下:
                访问root区属性:表达式为"属性名"
                访问context区变量:表达式为"#key",例如"#session.user"
        10.Struts2提供了标签+OGNL表达式,用于访问ValueStack数据
               

页: [1]
查看完整版本: STRUTS2新手基础学习day01