Posted on 2008-07-17 16:54
xan 阅读(131)
评论(0) 编辑 收藏 所属分类:
Java
Struts 框架的核心组件是 ActionServlet。象所有的servlets, 它生存在容器中, 比如Tomcat, Resin, 或者 WebLogic 等。当容器启动时,读入部署描述符 (web.xml),告诉容器要装入哪些个servlet。
一个标准的servlet 设定是 servlet mapping。 容器使用这个设定来决定哪个请求将被送到哪个servlet
当一个请求随着符合Servlet 上下文的路径组件提交时,容器将其转发给ActionServlet。不匹配的请求则不转发到ActionServlet。比如,匹配*.jsp 的请求将直接转发给容器的 JSP 服务,比如Jasper(如果你使用Tomcat 或者WebSphere 的话)。在应用中可以有其他的servlet来处理其他格式的请求路径。不匹配所有servlet mapping 的请求将直接送给容器默认的
web server。
Action 是一个控制器类,不应该用来处理业务的核心逻辑。
Action 完成后,它返回一个ActionForward。如果 ActionForward 为null, ActionServlet假定响应产生了,但不做任何事情。否则, ActionServlet 读入 ActionForward ,重定向或者转发请求到相应的资源。
Struts不仅是线程安全(thread-safe)而且是线程依赖(thread-dependent)的.
Struts 使用轻量的Action 对象,而不是各个单独的servlet,来对请求处理响应。 Struts 实例化每个Action 类一次,并允许其他请求通过原有的对象线程化。这种核心策略节省了资源,并提供最大的吞吐性。一个正确设计的应用将通过使用一个单独的Action 来路由各种相关操作来发挥这种特征。
编写Action时要注意不要在不同方法之间共享属性值,因为action是多线程的,每个应用的每个Action类只有一个实例.