struts框架课件.ppt
- 文档编号:1391580
- 上传时间:2022-10-22
- 格式:PPT
- 页数:30
- 大小:188KB
struts框架课件.ppt
《struts框架课件.ppt》由会员分享,可在线阅读,更多相关《struts框架课件.ppt(30页珍藏版)》请在冰豆网上搜索。
Struts开发技术,作者:
孙卫琴参考书籍:
技术支持网址:
www.javathinker.org,本课程简介,面向学员熟悉Java编程语言熟悉HTML熟悉Servlet、JSP开发技术熟悉客户化标签授课时间二天(不包括学员上机时间),课程内容MVC与Struts框架简介开发视图扩展控制器开发模型配置Struts应用,预备知识,Servlet容器响应客户请求的过程共享数据的四种存放范围page:
PageContextrequest:
HttpServletRequestsession:
HttpSessionapplication:
ServletContext,MVC与Struts框架简介,教学目标理解MVC的概念理解JSPModel1理解JSPModel2理解Struts框架的结构,MVC的概念,MVC是Model-View-Controller的简称,即模型-视图-控制器。
MVC是一种设计模式,它把应用程序分成三个核心模块:
模型、视图、控制器,它们各自处理自己的任务。
MVC结构图,视图,视图是用户看到并与之交互的界面,作用如下:
视图向用户显示相关的数据。
接受用户的输入。
不进行任何实际的业务处理。
视图向模型查询业务状态,但不能改变模型。
视图接受模型发出的数据更新事件,从而对用户界面进行同步更新。
模型,模型是应用程序的主体部分,模型表示业务数据和业务逻辑。
一个模型能为多个视图提供数据。
由于应用于模型的代码只需写一次就可以被多个视图重用,所以提高了代码的可重用性。
控制器,控制器接受用户的输入并调用模型和视图去完成用户的需求。
当Web用户单击Web页面中的递交按钮来发送HTML表单时,控制器本身不输出任何东西和做任何处理。
控制器接收请求并决定调用哪个模型组件去处理请求,然后决定调用哪个视图来显示模型处理返回的数据。
MVC处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理。
然后模型根据用户请求进行相应的业务逻辑处理,并返回数据。
最后控制器调用相应的视图格式化模型返回的数据,并通过视图呈现给用户。
MVC的优点,首先,最重要的一点是多个视图能共享一个模型。
同一个模型可以被不同的视图重用,大大提高了代码的可重用性。
由于MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松偶合的构件。
此外,控制器提高了应用程序的灵活性和可配置性。
控制器可以用来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。
MVC的适用范围,使用MVC需要精心的计划,由于它的内部原理比较复杂,所以你需要花费一些时间去理解它。
将MVC运用到你的应用程序,会带来额外的工作量,增加应用的复杂性,所以MVC不适合小型应用程序。
但对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,MVC将会使你的软件在健壮性、代码重用和结构方面上一个新的台阶。
尽管在最初构建MVC框架时会花费一定的工作量,但从长远角度看,它会大大提高后期软件开发的效率。
JavaWeb应用结构的发展,阶段1:
JSP是一个独立的、自主完成所有任务的模块阶段2:
JSPModel1阶段3:
JSPModel2,JSP是一个独立的、自主完成所有任务的模块,早期的JavaWeb应用中,JSP文件同时负责生成网页、控制到下一个网页的流程,以及负责业务逻辑,这给Web开发带来一系列问题:
HTML和Java强耦合在一起,JSP文件的编写者必须既是网页设计者,又是Java开发者。
可读性差。
调试困难。
不利于维护,更改业务逻辑或数据可能牵涉相关的多个网页。
JSP是一个独立的、自主完成所有任务的模块,JSPModel1,JSPModel2,JSPModel2,JSP负责生成动态网页Servlet负责流程控制JavaBean负责业务逻辑,Struts概述,Struts实质上就是在JSPModel2的基础上实现的一个MVC框架。
模型:
JavaBean、EJB组件控制器:
ActionServlet、Action视图:
JSP、Struts客户化标签,Struts概述,ActionFormBean,ActionFormBean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。
Struts框架利用ActionFormBean来进行View组件和Controller组件之间表单数据的传递。
Struts框架把View组件接受到的用户输入的表单数据保存在ActionFormBean中,把它传递给Controller组件,Controller组件可以对ActionFormBean中的数据进行修改JSP文件使用Struts标签读取修改后的ActionFormBean的信息,重新设置HTML表单。
ActionFormBean,Struts框架的初始化流程,对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化控制器ActionServletActionServlet从struts-config.xml文件中读取配置信息,把它们存放到ActionMappings对象中。
Struts框架响应客户请求的工作流程,Struts框架响应客户请求的工作流程,
(1)如果ActionMapping实例不存在,就创建一个ActionMapping对象,它包含了把请求转发给哪个Action的信息。
(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。
(3)根据配置信息决定是否需要表单验证。
如果需要验证,就调用ActionForm的validate()方法。
(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。
(5)ActionServlet根据配置信息决定将请求转发给哪个Action。
如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute方法。
(6)Action的execute方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。
(7)ActionForward对象指向的JSP组件生成动态网页,返回给客户。
对于以上流程的步骤(4),如果ActionForm的validate()方法返回一个包含一个或多个ActionError的ActionErrors对象,就表示表单验证失败,此时ActionServlet将直接把请求转发给包含客户提交表单的JSP组件。
在这种情况下,不会再创建Action对象并调用Action的execute方法。
Helloapp应用,helloapp应用包括如下需求:
接受用户输入的姓名,然后返回字符串“Hello!
”如果用户没有输入姓名就提交表单,将返回出错信息,提示用户首先输入姓名。
如果用户输入姓名为“Monster”,将返回出错信息,拒绝向“Monster”打招呼。
Helloapp应用的组成,视图:
hello.jsp,控制器:
ActionServlet、HelloAction,模型:
PersonBean,HelloFormBean,struts-config.xml,练习题1,问题:
在Struts应用的视图中包含哪些组件?
选项:
(A)JSP(B)Servlet(C)ActionServlet(D)Action(E)代表业务逻辑或业务数据的JavaBean(F)EJB(G)客户化标签答案:
A,G,练习题2,问题:
在Struts应用的控制器中包含哪些组件?
选项:
(A)JSP(B)Servlet(C)ActionServlet(D)Action(E)代表业务逻辑或业务数据的JavaBean(F)EJB(G)客户化标签答案:
B,C,D,练习题3,问题:
在Struts应用的模型中包含哪些组件?
选项:
(A)JSP(B)Servlet(C)ActionServlet(D)Action(E)代表业务逻辑或业务数据的JavaBean(F)EJB(G)客户化标签答案:
E,F,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- struts 框架 课件