Struts2实战 读书笔记一

本文探讨了ServletAPI的功能及局限性,介绍了Struts框架如何弥补这些不足,并深入解析了Struts2的工作原理,包括其核心组件如拦截器、OGNL、ValueStack和ActionContext的作用。

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

ServletAPI到底提供了什么?

HTTP信息保存到了对应的Servlet对象中,如HttpServletRequest,HttpServeletResponse等;

会话机制,这使得我们能够确定哪些请求是来自同一个用户的。

 

ServletAPI没给我们提供什么?

请求参数到java数据类型的绑定和数据的验证

  这一步繁琐,无聊,且容易出错

访问业务逻辑和访问数据层

  设计出来的业务逻辑和数据层应该与是不是web程序访问它这件事儿无关。他们应该独立于web程序。

呈现表示层和国际化

  HTML?现在表示层已经不仅仅是纯HTML这么简单了

 

Struts和MVC

MVC概念Struts概念
 模型 动作
    模型的概念比较模糊,他应该是数据和操作的一个集合
 视图 结果
    JSP,Velocity等
 控制器 FilterDispatcher

不处理核心业务,只负责路由客户端请求,把请求发送给对应着的Servlet去处理。他是一个Servlet的过滤器。

需要我们设定这种映射规则

 

 

 

 

 

 

 

 

Struts2 工作原理

 

这个图里面涉及了几个没有介绍过的东西:拦截器,OGNL,ValueStack,ActionContext。

拦截器:一般来说是一组Servlet过滤器,它会过滤所有传递进来的请求并在把结果返回给用户之前再过滤一次。

可以设置拦截器是在动作之前工作,还是在动作之后工作。

 

ValueStack:是用来存储与请求相关的数据的一个存储区域。他会把所有相关的信息存储在ValueStack中,而不是把用到的信息传来穿去。

OGNL:他是一种表达式语言,能够让我们引用到或者修改存储在ValueStack中的数据。

 

ActionContext:就是用来存储ValueStack以及一些被Struts2封装的request,session等对象的地方。它能够从任何地方访问到,因为Struts2的每一次访问都是ThreadLocal。

而我们为了获取其中的内容,也是通过OGNL。

转载于:https://www.cnblogs.com/voctrals/p/3863475.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值