action和servlet的关系

版本一

其实就是一个玩意儿!
只不过action是那些MVC框架的控制层的叫法.
当然,这个回答是笼统了点,但是其实就那回事.
那些MVC框架用Servlet(struts1)或者Filter(struts2)来封装了HttpServletRequest和HttpServletResponse对象,在自己的Action类中实现控制层.从对象本身来说,确实不是一个东西,但是从设计分层(架构)上看,这对于使用框架的开发者来说,这难道不是一样的道理?就是控制层!
action是业务层?那要看你这个工程项目的规模了.要是小网站,那可以把service都写在action里面.但从这个角度来说,是把service层合并到控制层去了.

版本二

struts的action 有一个servlet 的成员,而且struts的action 的方法 
execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) 
会传入一个HttpServletRequest的参数 
详情参见struts的官方文档:http://struts.apache.org/1.x/apidocs/index.html 

无论是在struts1还是在struts2 
action 本身只是一个普通的Java bean 

在struts2中,action 与servlet 就没有关系了,除非你实现servletaware接口,这样的话,struts2会给你注入一个servlet


说的应该是struts2中的action ,关系肯定是有的,action 运行在web容器中,不管是struts1还是struts2,action 跟容器的交互,实质上都是通过request 和response ,只不过,struts1把他们暴露出来了,而struts2则由框架来维护了,这是struts2的分层思想的一个体现。

原文地址:https://www.cnblogs.com/printN/p/6501212.html