spring-web 模块中org.springframework.web.context.request.WebRequest

在控制器方法中直接使用Servlet API虽然也很简单,但这种方式会造成控制器类与Servlet API耦合,既造成了代码污染,也增加了测试难度,如果不是非这样不可,一般不推荐在控制器类中使用Servlet API。

除通过使用注解修饰方法的形参来获取request、session属性之外,Spring MVC还提供了WebRequest来访问request、session属性——使用该API的优势在于:程序既可相对自由地访问request、session属性,又无须与Servlet API耦合。

Spring MVC提供了WebRequest接口来访问request和session属性,并且相比于直接使用Servlet API,使用WebRequest有以下优势:

  1. 程序解耦:使用WebRequest可以将程序与Servlet API解耦,避免依赖具体的Servlet容器。这样在需要替换或升级Servlet容器时,对应用程序的影响更小。
  2. 方便测试:使用WebRequest接口可以更方便地进行单元测试。你可以在测试代码中模拟请求和会话属性,而无需启动完整的Servlet容器。
  3. 灵活性:通过WebRequest,你可以更灵活地访问和操作request和session属性。除了标准的Servlet API方法之外,还提供了一些额外的方法,如getAttributeNames()、removeAttribute()等。
  4. 与Spring集成:使用WebRequest,你可以更好地集成Spring框架的其他功能。例如,可以使用Spring AOP来拦截和处理请求,或者使用Spring Security来进行身份验证和授权。

总之,使用WebRequest可以让程序在访问request和session属性时更加灵活和解耦,提高程序的可测试性和可维护性。

你如果问我具体遇到过什么情况现在才如此反对使用原生的Servlet API?那我只碰过一个情况,改用tomcat 10的时候,你就知道了,要重新改代码,之后重新build项目


在 Tomcat 10.0.x 版本中,由于 Java EE 的迁移,javax 被替换成了 jakarta。因此,Tomcat 10.0.x 版本中的 jakarta 包含了一系列的 Jakarta Servlet、Jakarta WebSocket 和 Jakarta EL 扩展包,例如 jakarta.servlet、jakarta.websocket 和 jakarta.el 等等,版本号为 5.0。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝闻道 晨星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值