开,其结构图如图2-1:
图2-1
2.1.1 模型
模型是应用程序的核心,负责处理用户的数据和实现业务逻辑的处理,并且为视图提供数据,用户所有的数据操作和业务逻辑的处理全部都由模型层处理。
2.1.2 视图
视图是一些JSP页面,是系统与用户交互的界面,即常称的UI(User interface),视图用户来接收用户的输入,在MVC模式中,视图层不包括任何业务逻辑的处理,它只是为Model提供数据及为用户显示Model层更新的数据。
2.1.3 控制层
控制层也称为控制器,当用户提交请求时,控制器接收用户的请求并根据用户提交的数据决定调用哪些模型来进行业务处理,同时将用户提交的数据提供给Model层,由Model来进行数据处理,然后将处理的结果给视图的形式返回给用户,从而实现用户和系统的交互。
2.2 Struts框架的结构及实现方法
Struts是Apache软件组织提供的一个开源项目,为Java Web应用提供MVC框架,适用于开发大型可扩展的Web应用。在MVC刚刚出现的时候,开发人员需要花大量的时间在MVC模式的实现上,而Struts则恰恰实现了这种开发模式,开发人员只需在此基础去实现自己的逻辑处理,而不耍花费大量的时间在模式的实现上。
2.2.1Struts框架的组成
Struts对应MVC的三层分别有对应的实现方法:Struts中的Java Bean以及大型项目中的EJB对应MVC中的Model层,MVC的Controller层对应Struts的Action及ActionServlet,Struts的ActionForm以及JSP页面对应MVC的视图层,在视图层Struts提供了大量的标签库用来显示数据,Struts的各个组成部分全部由Struts的主配置文件Struts-config.
xml联系在一起。
2.2.1 Struts的基本组件
Struts主要由四个核心组件组成:ActionServlet,Action,FormBean,ActionMapping,另外Struts还提供了功能强大的标签库(Taglib),用来供客户端显示用。
1)ActionServlet
ActionServlet是Javax.servlet.http.HttpServlet的子类,是Struts框架的主控制器,根据用户的请求和配置文件和描述将请求转发给相应的Action,Servlet必须在Http Application的Web.xml的配置文件中声明,因此在Struts中同样也在Web.xml中对ActionServlet进行了配置:
action org.apache.struts.action.ActionServlet
config
/WEB-INF/struts-config.xml
debug
3
detail
3
0
action
*.do
ActionServlet会匹配所有的以.do结尾的请求,并读取配置文件里配置的Config对应的Struts的配置文件中的Action,从而将请求转交给对应的Action调用相应的业务处理方法进行处理。
2)Action
当ActionServlet得到用户的请求后,将请求转发给Action,然后由Action调用相应的业务逻辑处理方法进行处理。
3)ActionMapping
当Action进行业务处理后会返回一个ActionMapping的对象,该对象包含了Action的请求对象,决定Web Container该返回个对象给用户。
4)ActionForm
当ActionServlet接收到用户的请求时,会根据struts-config.xml描述将数据封装到相应的ActionForm中,然后由Action根据struts-config.xml的描述读取相应的ActionForm中的数据,进行处理,将处理后的结果返回给用户。
5)标签库
Struts提供了功能强大的标签库,只有充分使用这些标签才能最大限度发挥Struts的作用,真正实现MVC模式。有了这些标签库开发人员无需在JSP页面添加任何的Java脚本就可以实现非常复杂的逻辑处理,从而实现了开发人员的美工人员的工作的分离。减少了美工人员的难度。
2.2.2 St