Spring+Struts2

 Struts2+Spring整合
1.目的:用Spring管理Action,Service,Dao等组件
     1)将Struts2的Action交给Spring
          *引入spring包和配置文件
          *开启组件扫描,扫描Action(采用非单例模式创建)   
     2)请求到Filter去Spring容器获取Action对象
          *引入了struts2-spring-plugin.jar包
          *修改配置的class属性,将其指定为Spring容器中Controller对象Id
          *追加web.xml中ContextLoaderListener配置,
             为struts2-spring-plugin.jar指定访问的Spring容器                    
2.StrutsObjectFactory:利用反射创建Action对象
    引入struts2-spring-plugin.jar后,将Struts2底层的ObjectFactory改成了StrutsSpringObjectFactory,                                  
     StrutsSpringObjectFactory去访问Spring容器获取Action对象                 
3.Result组件应用
    1)常用类型:dispatcher,redirect,redirectAction,stream,json等
    2)使用方法:定义参数
    3)调用JSP响应
         *dispatcher转发
            /list.jsp 
         *redirect重定向
            /list.jsp 
    4)调用Action响应
         请求-->Action1-->result-->Action2...   
         *chain转发
           
请求名
请求前缀

         *redirectAction重定向 
           
请求名
请求前缀/param>
 
    5)stream流响应
        可以将服务器信息以字节流方式响应
         
          Action中属性名
         

         Action中属性类型,必须是符合InputStream
    6)json响应(在struts2-json-plugin.jar)
        作用:将Action属性值转成json字符串输出
         *
                 属性名
           

         *
                属性名1,属性名2,属性名3...
           
 
4.拦截器组件应用
     请求-->StrutsPrepareAndExecuteFilter
      拦截点1-->Action-->Service-->Dao
      -->Result-->拦截点2
      -->JSP-->响应输出
     拦截器使用
       *编写拦截器组件
         实现Interceptor接口及方法
       *配置拦截器组件
          定义格式:
          使用格式:
5.Struts2总结
    1)主要组件及工作流程
        Filter控制器-->拦截器-->Action-->Result-->拦截器-->ValueStack
    2)Action组件使用
        *属性作用
        *方法规则
        *request,session使用方法
    3)Result组件使用                    
        *了解Result组件类型
           熟悉dispatcher,Redirect,RedirectAction,json使用
        *拦截器
           a.拦截器使用方法
           b.了解框架内置拦截器
                默认执行defaultStack拦截器,如果为制定了拦截器,defaultStack不再执行,
                会破坏原有Struts2流程功能,必须显示调用
    4)ValueStack  被称为值栈  有两个属性root属性(栈结构),context属性(Map类型)
        *作用:存储请求处理期间相关的一些数据对象
                     例如action,session,application,request,parameters等
                     请求处理期间需要使用这些对象,Filter控制器去ValueStack中查找获取对象信息
        *如何访问
           采用ognl工具队其数据进行访问
            a.获取valuestack中对象属性值
            b.设置valuestack中对象属性值
            c.调用valuesstack中对象方法  

你可能感兴趣的:(Java学习,struts2.0,spring,异步,技术)