【Struts2框架】(一)原理分析

本文介绍了Struts2框架的概念及特点,重点讲述了其处理流程,包括请求如何被处理及响应生成的过程。Struts2采用关注点分离的设计理念,支持MVC架构模式。

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

一.struts概念

        struts2是一款体现关注点分离思想的架构。

        struts2将我们web开发中的各个需要处理的细节都封装到了拦截器中(Interceptor),每个拦截器负责自己独立的功能。

        例如:参数拦截器(params),令牌拦截器(Interceptor-stack)

        我们也可以指定自己的拦截器来拓展struts2的功能(自定义拦截器)


二.struts2的特点

1.关注点分离/解耦

        把变化点错落有致的封装在软件系统的不同部分。

        系统的一个部分发生了变化,不会影响到其他部分

        即使需要改变,也能够清晰的识别出哪些部分需要改变。

        如果需要拓展架构,将影响最小化,已经可以工作的美格尔部分将继续工作。

2.mvc

struts2中也体现了MVC的设计思想

        控制器C(StrutsPrepareAndExecuteFilter)就是我们在web.xml中声明的struts2核心类

        模型M(Action)

        视图V(JSP)

三.Struts2的处理流程

     图中用数字表示了,请求的流转过程

当用户发出请求后

    1:首先经过struts2框架的核心控制器(strutPrepareAndExecuteFiler)

    2:核心控制器依次查找ActionMapper来决定调用这个请求是否调用action。如果actionMapper决定调用action,那么核心控制器就把请求的处理器控制权委托给actionProxy

    3:actionProxy通过configuration manager查询struts框架的很新配置文件(struts.xml)找到,所要调用的action类

    4:然后actionproxy创建一个actionInvocation实例,该实例负责命令模式的实现,包括激活action 的任意拦截器。

    5:在action执行完成后之后,actionInvocation实例负责根据action的返回结果码在struts.xml配置文件中找到所需要的result。然后该结果通常是jsp或者freemarker模板。也可能是action。

    6:action配置的拦截器将再次执行(执行顺序和调用的时候相反)

    7:服务器响应将通过web.xml文件中配置的struts2框架核心控制器返回。


(下一篇文章中将讲述:手动实现struts2框架)

需要读者对以下知识点了解:

        1.xml解析器,XPath表达式(dom4j)

        2.Servlet技术

        3.java内省(BeanUtils)

        4.ThreadLocal线程本地化类

        5.递归调用

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值