博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2总结
阅读量:7023 次
发布时间:2019-06-28

本文共 1140 字,大约阅读时间需要 3 分钟。

hot3.png

 一、 sturts2的执行流程

        struts2框架主要包含3个部分,核心控制器filterDispatcher、业务控制器Action和用户自己实现的业务逻辑组件。

        其中filterDispatcher是sturts2的核心,包含了内部控制流程和处理机制

        业务控制器Action和业务逻辑组件需要用户自己实现,用户还需编写sturts.xml配置文件,供filterDispatcher来使用。

    (1)、客户端发出http请求

    (2)、根据web.xml,该请求被filterDispatcher接收

    (3)、根据struts.xml配置文件调用相应的Action类和方法

    (4)、action处理完成后,根据struts.xml找到相应的result,并跳转至相应界面

    (5)、返回http响应到客户端

二、struts2的优点(为什么要使用它)

    1、基于MVC架构,框架结构清晰

    2、使用OGNL表达式,OGNL可以快速方便的访问值栈中的数据,调用值栈中对象的方法。

    3、拦截器,拦截器是一个action级别的AOP,sturts2中很多特性都是通过拦截器来实现的,比如异常处理、文件上传、验证等功能,并且拦截器可以被复用

    4、多种表现层技术,比如jsp、freemark、velocity等

三、拦截器和过滤器的区别

    1、拦截器不需要依赖servlet容器,过滤器依赖于servlet容器

    2、拦截器只能作用于action请求,过滤器可以作用于所有请求

    3、拦截器能访问上下文和值栈中的对象,过滤器不能

    4、在Action生命周期中,拦截器可以被调用多次,而过滤器只能在容器初始化时被调用一次

四、谈谈ValueStack(值栈)

    1、valueStack贯穿整个Action生命周期,保存在request域中,所以valueStack的生命周期和request相同。Action实例存放在valueStack中,所以OGNL才能访问action实例。当struts2接收到一个请求时,迅速创建ActionConext、Action和ValueStack。然后将Action放入ValueStack中。请求结束时,valueStack、request、以及action生命周期随之结束。

    2、valueStack是多实例的, 因为action是多实例,action和valueStack是一一对应的。

    3、使用OGNL访问值栈时无需"#"符号,而访问request、session、application的atrr时需要

    4、ValueStack底层实际上是ArrayList

转载于:https://my.oschina.net/u/1474079/blog/279962

你可能感兴趣的文章
C# 通过IEnumberable接口和IEnumerator接口实现泛型和非泛型自定义集合类型foreach功能...
查看>>
微信小程序初识
查看>>
Ubuntu中打开RAR文件
查看>>
数字转换大写人民币的delphi实现
查看>>
开源的asp.net工作流程引擎。 http://ccflow.org
查看>>
日期和时间字符串格式化
查看>>
POJ2774:Long Long Message——题解
查看>>
javascript作用域与预解析
查看>>
C# 中的拓展方法,以StringBuilder加上IndexOf方法举例
查看>>
第41件事 创新设计的4种方法
查看>>
iOS--CollectionView添加类似TableView的TableViewHeaderView 和 SectionHeader 的置顶悬停效果...
查看>>
用半监督算法做文本分类
查看>>
【2802】SDUTOJ (并查集模板水题2)
查看>>
看书不挑出版社的都是山炮——评60家国内出版社
查看>>
326. Power of Three
查看>>
vue_drf之实现短信验证码
查看>>
“命令行程序”的通用图形界面 (转)
查看>>
虚拟机显示不了界面的解决方法
查看>>
SQL SERVER导出所有表及表字段
查看>>
关于消除超长的case列表的一个思路
查看>>