欢迎来到天天文库
浏览记录
ID:34372126
大小:621.76 KB
页数:9页
时间:2019-03-05
《struts 编程new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、内容概要∑问题引入Struts编程∑MVC设计模式∑模式分析∑设计例子∑例子分析∑Struts的设计思想∑Struts的基本运行结构问题引入MVC模式介绍∑程序的视图∑模式中的各个∑底层的逻辑数据模块的职责∑视图的改变∑关注点的分离∑逻辑数据的改变∑模块中的交互∑如何处理?∑如何设计各部分的程序各部分职责1各部分职责2∑视图是用户看到并与之交互的界面:¾视图向用户显示相关的数据。¾接受用户的输入。¾不进行任何实际的业务处理。¾视图向模型查询业务状态,但不能改变模型。¾视图接受模型发出的数据更新事件,从而对用
2、户界面进行同步更新。∑模型¾模型是应用程序的主体部分,模型表示业务数据和业务逻辑。¾一个模型能为多个视图提供数据。¾由于应用于模型的代码只需写一次就可以被多个视图重用,所以提高了代码的可重用性。∑控制器¾控制器接受用户的输入并调用模型和视图去完成用户的需求。¾当Web用户单击Web页面中的递交按钮来发送HTML表单时,控制器本身不输出任何东西和做任何处理。¾控制器接收请求并决定调用哪个模型组件去处理请求,然后决定调用哪个视图来显示模型处理返回的数据。1Web设计模型模型2的执行流程∑Web模型1¾JSP+J
3、avaBean¾JSP文件同时负责生成网页、控制到下一个网页的流程,以及负责业务逻辑,带来一系列问题:HTML和Java强耦合在一起,JSP文件的编写者必须既是网页设计者,又是Java开发者;可读性差;调试困难;不利于维护,更改业务逻辑或数据可能牵涉相关的多个网页。∑Web模型2¾JSP+Servlet+JavaBean¾各部分的职责分配电子商店的设计电子商店的设计∑网上电子商店∑视图的设计¾可以购买一些CD¾参考mvc例子jsp文件¾有购物车功能∑模型的设计¾有结帐功能¾参考mvc例子javaBean的设
4、计¾包含购物车的维护∑控制器的设计∑如何设计¾参考mvc例子servlet的设计¾应用Javaweb技术Struts的设计思想Struts架构∑基于MVC设计思想∑模型--JavaBeanorEJB∑控制器—ActionServlet、Action¾从struts-config.xml中获取控制信息¾将不同的请求映射到不同的Action上¾Action将调用模型(JavaBeanorEJB)∑视图—JSP、Struts客户相关标签∑JSP到模型的交互通过web容器(自定义标签)2Struts架构2Strut
5、s的设计思想∑基于MVC设计思想∑模型--JavaBeanorEJB∑控制器—ActionServlet¾从struts-config.xml中获取控制信息¾将不同的请求映射到不同的Action上¾Action将调用模型(JavaBeanorEJB)∑视图—JSP∑JSP到模型的交互通过web容器(自定义标签)ActionFormBean初始化过程∑ActionFormBean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一∑对于采用Struts框架的Web应用,在Web些特殊的方
6、法,用于验证HTML表单数据以及将其属性重新设置为默认值。应用启动时就会加载并初始化控制器∑Struts框架利用ActionFormBean来进行ActionServletView组件和Controller组件之间表单数据的传递。∑Struts框架把View组件接受到的用户输入的∑ActionServlet从struts-config.xml文件中表单数据保存在ActionFormBean中,把它传递给Controller组件,Controller组件可读取配置信息,把它们存放到以对ActionFormBe
7、an中的数据进行修改ActionMappings对象中∑JSP文件使用Struts标签读取修改后的ActionFormBean的信息,重新设置HTML表单。执行过程执行过程∑1.如果ActionMapping实例不存在,就创建一个ActionMapping对象,它包含了把请求转发给哪个Action的信息。∑2.如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。∑3.根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionF
8、orm的validate()方法。∑4.如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。∑5.ActionServlet根据配置信息决定将请求转发给哪个Action。如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute方法。∑6.Action的execute方法返回一个A
此文档下载收益归作者所有