Struts2框架(一)

一:Struts2框架技术简介

1.Struts2的一些优点:(1)取消了ActionForm类   (2)使测试变得容易   (3)增加了拦截器功能    (4)能够支持多种视图技术(FreeMarker、Velocity、JasperReports等)

(5)提供了类型转换功能    (6)功能强大的OGNL

2.开发流程总结:(1)搭建支持Struts2框架的项目环境,添加Web项目开发所需要的Jar包   (2)编写Jsp     (3)编写业务控制Action类    (4)在struts.xml配置文件中定义Action、Action返      回的视图资源,以及包命名空间信息等内容     (5)在web.xml文件中配置Stuts2框架的核心控制器StrutsPrepareAndExecuteFilter或者FiterDispatcher

(6)发布测试     (7)错误修改


二:Struts2框架基础

1.Struts2的体系结构:四大模块(Servlet Filters、Struts Core、Interceptors、User created)

(1)Servlet Filters(Servlet过滤器):

1>ActionContextCleanUp:该过滤器主要用于和FilterDispatcher过滤器一起集成其他的过滤器,如SiteMesh。当使用了该过滤器之后,FilterDispatcher过滤器将不会清除

    ActionContext中的内容,而是由该过滤器后续代码来执行清除,该过滤器为可选项,Struts 2.1.3之后不推荐使用。

2>Other filters:一般是第三方框架。该过滤器可选。

        3>FilterDispatcher:该过滤器是Struts2核心过滤器,负责拦截所有用户的请求。该过滤器主要通过ActionMapper来决定需要调用哪个Action。该过滤器是必选项。但是

    在Struts 2.1.3之后推荐使用StrutsPrepareAndExecuteFilter过滤器。

        如果要使用其他的过滤器(如SiteMesh),那么在web.xml文件中的设置顺序为ActionContextCleanUp 、SiteMesh、FilterDispatcher。

        如果是在Struts2.1.3之后设置顺序为StrutsPrepareFilter、PageFilter、StrutsExecuteFilter。

(2)Struts Core(Struts 核心):

        1>ActionMapper:负责实现HttpServletRequest和请求调用的Action之间的映射。

        2>ActionProxy:真正的action之间充当代理角色,作用是如何获取Action,负责创建ActionInvocation实例。

        3>ActionInvocation:当一个请求被调用时,ActionInvocation确定如何执行Action,一旦执行完毕,还负责根据Action返回的结果在struts.xml配置文件中找到相对应的视图资源

        4>ConfigurationManager:负责配置文件的初始化及管理。

        5>Result:action返回的结果是一个字符串,字符串的类型用于选择在struts.xml配置文件中配置的result元素。

        6>标签库:Struts2提供了不依赖于显示层的标签库。

(3)Interceptors(拦截器)

(4)User Created(用户创建的代码),如struts.xml、Action和模版


2.Struts2的核心控制器

  核心控制器StrutsPrepareAndExecuteFilter类实现了Filter接口。类中有4个方法:init()、doFilter()、destroy()及一个回调方法postInit(Dispatcher dispatcher,FilterConfig               filterConfig)


3.Struts2的工作原理

  (1)客户端向Servlet容器(如Jetty、Resin或tomcat等)发送请求。

  (2)该请求首先经过一个标准的过滤器链,过滤器链包括可选的ActionContextCleanUp过滤器等。

  (3)核心过滤器StrutsPrepareAndExecuteFilter(FilterDispatcher)被调用,该过滤器依次查找ActionMapper来决定这个请求是否调用用户请求的action。

  (4)如果ActionMapper决定调用Action,StrutsPrepareAndExecuteFilter(FilterDispatcher)把请求的处理控制器交给ActionProxy。

  (5)ActionProxy向ConfigurationManager询问框架的配置文件struts.xml找到要调用的Action类。

  (6)ActionProxy创建ActionInvocation实例,负责命令模式的实现。

  (7)在调用Action之前调用拦截器。

  (8)在Action执行后,ActionInvocation负责根据Action的返回结果在struts.xml配置文件中找对应的视图资源。

  (9)执行返回的结果,返回的结果通常是JSP或者FreeMarker模版,也可能是Action。模版可以使用框架提供的Struts2标签。

  (10)拦截器再次被执行(顺序和Action被调用之前的执行顺序是相反的)。

  (11)响应通过web.xml文件中配置的过滤器(Struts2核心控制器)返回



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值