Struts2操作与Servlet相比如何?

jmc*_*hon 4 servlets struts2

Struts2的动作与Servlets相比如何?一个动作可以充当servlet吗?

leo*_*loy 10

Struts(Struts1/Struts经典)动作更多地依赖于servlet.在Struts2中,情况完全不同.Struts2动作只是一个POJO(普通Java类),完全与Servlet API分离.这种解耦可以简化测试.

在Struts2 webapp的典型工作流程中,将为每个请求实例化一个操作,并将其与Servlet相关联(ServletAware如果需要知道此关联,它可以实现该接口;通常这不是必需的,也不是可取的).

与Servlets(以及Struts操作)的一个重要概念差异是Struts2操作不会被重用于不同的请求,因此是线程安全的:比如,一个servlet实例可以发生三个http请求(同时或不同时); 但在这种情况下,我们仍然会有三个不同的Struts2动作实例,每个请求一个.