Struts2 总结

本文深入探讨了Struts2框架的核心优势,包括其灵活性、强大的拦截器功能、多层技术支持、异常管理、资源国际化等特性,并详细解析了Struts2的工作流程以及与Spring框架的整合方式。此外,文章还阐述了使用Struts2框架的原因,旨在为开发者提供全面的技术指导。

一、优点

·1.Action可以是POJO,实现了servlet和容器的解耦合,为测试提供了便利

 2.拦截器具有十分丰富和强大的功能,简化开发

 3.支持多种变现层技术,freemarker和jsp等等

 4.声明式的异常管理

 5.资源国际化的支持

 6.灵活的验证方式

 7.通过struts-spring插件可以与spring 整合


二、 struts2工作流程

1.客户端向服务器发送请求,服务器端通过Filter引导请求进入struts内部结构进行加工

2.由FilterDispathcer根据请求的uri到ActionMapper找到请求对应的Action

3.然后产生一个Action 的代理类对象(ActionProxy的实例),因为在执行Action前,还需要执行struts中自定义或者默认的拦截器,比如模式驱动等等

4.由代理对象在调用目标action的目标方法

5.方法执行结束后,根据struts.xml的配置进行跳转,返回响应信息时,再经过拦截器栈

三、拦截器和过滤器的区别(摘抄)

1.拦截器是通过java的动态代理实现的,而过滤器是通过回调实现的

2.拦截器不依赖servlet容器,而过滤器依赖于servlet容器

3.拦截器仅对action的请求进行拦截,而filter可以过滤几乎所有的请求

4.拦截器可以访问action上下文和值栈的内容,而filter不能

5.拦截器可以在action的生命周期内被多次调用,而filter只在容器启动时初始化一次

四、关于struts2中ThreadLocal

为了解决线程安全的问题,struts2采用了ThreadLocal的方式,每一个线程使用同一个ActionContext,即一次请求始终对应一个ActionContext。多线程之间采用不同的实例,从而达到了线程安全的目的。


五、为什么要使用struts2框架

1、struts2可以与servlet容器解耦合,便于测试

2、struts2拥有强大的拦截器,可以简化开发过程

3、声明式的异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值