Struts2操作如何与Servlet进行比较?行为可以充当servlet吗?Struts2操作如何与Servlet进行比较?
3
A
回答
9
甲支柱(Struts1的/ Struts的经典)行动更绑的servlet。在Struts2中,情况完全不同。 Struts2操作只是一个POJO(纯Java类),完全与Servlet API分离。这种解耦方便了测试。
在Struts2 webapp的典型工作流程中,将为每个请求实例化一个动作,并将与一个Servlet相关联(如果需要知道该关联,它可以实现接口;通常这不是必需的也不可取)。与Servlet(和Struts动作)有一个重要的概念上的区别是Struts2的动作不会被重复用于不同的请求,因此是线程安全的:比如,可能发生三个http请求(同时或不同时)由一个servlet实例;但是在这种情况下,我们仍然会有三个不同的Struts2动作实例,每个请求都有一个实例。
1
Struts是一个位于香草java servlet之上的抽象层。操作本身是由程序员定义的,当URL被击中时(通过配置哪个url映射到哪个操作),struts框架会调用它们。所以它们并不真正与servlet“比较”,它们是servlet提供的功能的抽象。你对一个动作做的一个典型的事情是输出一个jsp,它相当于一个servlet。所以会发生什么是 一)请求时,被映射到行动 B)动作加载一些数据 C)行动呈现一个jsp,加载的数据传递给JSP。
该动作可以直接输出到请求/响应,如果这是你想要的,但在大多数情况下,很可能不是好的做法。
0
Struts2是基于Java EE技术的MVC框架实现。
相关问题
- 1. Struts2 taglib,与null进行比较
- 2. 如何与JQuery RGB值进行比较?
- 3. 如何将Int64与Int64进行比较
- 4. Hack如何与C++进行比较?
- 5. 比较操作
- 6. 将Servlet转换为Struts2操作类
- 7. 改进Python比较和存在操作
- 8. 比较Long值Struts2
- 9. 如何比较行与列?
- 10. 在行或列操作中进行比较R
- 11. 将表单数据与数据库进行比较并执行操作
- 12. 如何将行与CSV中的前一行进行比较?
- 13. 在struts2中使用OGNL进行日期比较
- 14. 使用C++对ipv6地址进行比较操作
- 15. Oracle Apex 5中的动态操作无法将日期与Oracle进行比较
- 16. 扫描算术操作数c并将它们与字符串进行比较
- 17. NSArray如何操作?当与Java的ArrayList比较时
- 18. 如何将文本文件的行与变量进行比较
- 19. 如何将索引与python上的某行进行比较
- 20. 比较2 excel列,结果将与另一列进行比较
- 21. 比较操作错误
- 22. SSE中的比较操作
- 23. 比较事件操作
- 24. 将笔画与路径进行比较
- 25. 将MatchCharAt与StringBuilder进行比较?
- 26. 将UUID与GattService列表进行比较
- 27. 将属性与变量进行比较
- 28. 将Quagga与XORP进行比较
- 29. C#与||进行逻辑比较或&&
- 30. 与Extjs进行字符串比较