Struts2的原理及应用

来源:互联网 发布:股票1272战法源码指标 编辑:程序博客网 时间:2024/06/05 17:45
原理
    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通过ConfigurationManager(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->BuildPath->User Libraries
     2.新建Library后,将以上五个包全部添加进去。
    3.开发第一个Struts2应用程序
       
     a.新建一个WEBPROJECT,导入以上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的原理及应用


0 0
原创粉丝点击