Struts是一种规范,它实现了MVC的模式,应用于Web中。是J2EE规范的一个简单版本。MVC定义了一种架构,Model,View和Controller,View是表示层,负责与用户的交互界面;而Controller是控制层,负责控制事件流;而Model则为逻辑层,实现真正的业务逻辑。
Struts中包含的几个组件:JSP,Servlet,JavaBean,EJB,XML,Web服务器和应用服务器等。
Servlet容器接受用户的请求,创建ServeletRequest和ServletResponse对象,将用户的请求信息包装在ServletRequest中,并转发给请求的Servelet,Servelet将处理的结果写入到ServletResponse中,然后Servlet容器将ServletResponse返回给用户。
JSP本质是Servlet,JSP容器接受用户请求,对相应的JSP进行语法分析,生成相应的Servlet,然后编译。
JavaBean是一种符合特定规范的Java对象,JavaBean可以有page,request,
session和application四种生存域。
EJB和JavaBean类似,不同的是EJB都是分布式的。
Struts中JSP文件,ActionForm Bean就是视图;模型通常由JavaBean和EJB实现;而控制器由ActionServlet和Action类实现。
ActionServlet是Struts框架中的核心组件。struts-config.xml存放请求路径和Action对象的映射关系,在内存中对应org.apache.struts.action.AcitionMapping类的实例。
1)当ActionServlet收到用户请求时,检索ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。
2)创建ActionForm对象,将用户的请求信息包含在内。 3)根据ActionMapping的对应关系,把ActionForm转发到一个Action实例,若
该实例不存在则创建它,然后调用这个Action实例的execute()方法.execute()中调用JavaBean中的相关业务逻辑。
4)execute返回一个ActionForward对象,ActionServlet将客户请求转发给
ActionForward对象指向的JSP组件。
5)JSP组件生成动态网页,返回给用户。