Struts2概览

本文对比Struts2与Struts1的区别,强调Struts2在架构上的改进,特别是拦截器机制的应用,使得业务逻辑控制器能脱离ServletAPI独立工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近学习了Struts2的一些知识,这里先谈一下对Struts2的一些认识和感触,在后续的博客中再贴出一些具体的代码。


    先谈一下Struts2对于Struts1的一些进步:

  • Struts2取代了Struts1的Servlet和Action。
  • Struts1继承Action,不少参数多需要Request来传递参数,Struts2继承ActionSupport,只要实现execute方法就可以了,这样Action可以脱离Servlet进行测试。
  • Struts2的一个重要的核心就是提供了拦截器(Interceptor),这是在Struts1中没有的。
  • Struts2的请求Action是线程安全的,不同于Struts1中所有的请求共享一个Action。
  • Struts2更加充分的利用了javaBean的特征,对实体类进行了更深度的封装,不用单独创建ActionForm,可以在Action中直接定义需要和前台交互的属性。
  • 一个简单的配置文件:struts.xml(取代了struts1里面的strut-config.xml)。
    上面只是一些感性的认识,来通过一个Struts2的架构图,对Struts2有一个比较形象的认识。
    通过这个图可以大致明白Struts2内部是通过代理机制(ActionProxy)然后结合各式各样的拦截器(Interceptor),然后根据struts.xml中的配置,对客户端的请求进行了深度的封装
    再看一个比较简洁的图:
    


    结合这个架构图,简要的总结一下Struts2的请求流程:
     1、加载类(FilterDispatcher) 2、读取配置(struts配置文件中的Action) 3、派发请求(客户端发送请求) 4、调用Action(FilterDispatcher从struts配置文件中读取与之相对应的Action ) 5、启用拦截器(WebWork拦截器链自动对请求应用通用功能,如验证) 6、处理业务(回调Action的execute()方法) 7、返回响应(通过execute方法将信息返回到FilterDispatcher) 8、查找响应(FilterDispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROR,将跳转到哪个jsp页面) 9、响应用户(jsp--->客户浏览器端显示) 10、struts2标签库(相比struts1的标签库,struts2是大大加强了,对数据的操作功能很强大)。

    这里仅对Struts2做一个简要的概括,有个整体的认识。如果用一句话对Struts2总结就是:
    Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开来。

评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值