Struts2的原理及应用

原理
      Struts2框架本身大致可以分为三个部分:核心控制器FilterDispatcher、业务控制器Action、用户自定义的企业业务逻辑组件。

     (1)核心控制器FilterDispatcher
           FilterDispatcher是Struts2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件需要用户自己定义,用户在定义它们的时候,需要制定相应的配置文件,供FilterDispatcher来调用。
           Struts2的工作原理要比Struts1的工作原理简单,和WebWork框架的原理基本相同。按照模块来分的话:可以分为:ServletFilter、Struts2核心模块、拦截器和用户实现部分。
       结构图:
               Struts2的原理及应用

  (1)客户端提交一个HttpServletRequest:localhost:8080/test/Reg.action  
  (2)请求被依次提交到过滤器:
        上下文传送的内容为ActionContext,它是一个容器(map),包含包括valueStack在内的很多信息。
        1.ActionContextCleanUp :
        在ActionContext中定义一个值,延长Action中属性值的周期,当jsp中进行访问时,让actionContextCleanUp过滤器来清除属性,不让Action自行处理。
        2.其他过滤器(SiteMesh等):
        主要过滤HttpServletResponse,对整个项目返回到客户端的内容进行装饰,让页面的装饰相一致。
        3.FilterDispatcher:
        它是控制器的核心,也就是MVC模式struts2控制层的核心。
        FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个HttpServletRequest(请求)。如果需要,则交给ActionProxy来处理。
        ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类。
        ActionProxy创建一个ActionInvocation实例,ActionInvocation通过代理模式调用Action,在调用Action之前,ActionInvocation会加载Action相关的所有Interceptor(拦截器)。一旦Action执行完毕,ActionInvocation负责通过struts.xml配置找到对应的返回结果result。
 (3)FilterDispatcher过滤器主要有三个方法:destroy、doFilter、init
       destroy:
       doFilter:
           调用Dispatcher.serviceAction,该方法如果找到相应的Action,将把用户请求交给ActionProxy。
       init:
 (4)简要流程:
      1、客户端浏览器发出HTTP请求。
          2、根据web.xml配置,该请求被FilterDispatcher接收。
          3、根据struts.xml配 置,找到需要调用的Action类和方法, 并通过IoC方式,将值 注入给Aciton。
          4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
          5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。
          6、返回HTTP响应到客户端浏览器。

 
 
  应用
        (1) Struts2的下载:http://people.apache.org/builds/struts/
       (2)其中必需的六个压缩包:
Struts2的原理及应用

包说明:           Struts2的原理及应用


          (3)下载struts-2.3.9-lib.zip后,在Eclipse上搭建:
     1.选择菜单Window->Preferences->Java->Build Path->User Libraries
     2.新建Library后,将以上五个包全部添加进去。
     3.开发第一个Struts2应用程序
       
     a.新建一个WEB PROJECT,导入以上7个包。
     b.在web.xml中注入struts2的过滤器:
       Struts2的原理及应用

        c.在src下面创建struts.xml,然后配置:
 
 
  Struts2的原理及应用
        d.项目排列:
  Struts2的原理及应用

                    e.Action代码:
                 
  Struts2的原理及应用

                    f.login.jsp、welcome.jsp、error.jsp
Struts2的原理及应用

Struts2的原理及应用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值