资源描述:
《基于Servlet的MVC模式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2021/7/25第9章基于Servlet的MVC模式本章导读1.知识点:理解MVC模式的核心思想:“视图”、“模型”和“控制器”。掌握MVC模式在JSP中的具体体现。2.重点:掌握在MVC模式中怎样让Servlet用构造方法创建JavaBean。4.关键实践:根据某实际问题,用MVC模式设计一个Web应用。3.难点:掌握“控制器”的重要作用。9.2JSP中的MVC模式9.3模型的生命周期与视图更新9.4MVC模式的简单实例9.1MVC模式介绍2021/7/25JSP页面擅长数据的显示,即适合作为用户的视图,应当尽量避免在
2、JSP中使用大量的Java程序片来处理数据。Servlet擅长数据的处理,应当尽量避免在Servlet中使用out流输出大量的HTML标记来显示数据。一些小型的Web应用可以使用JSP页面调用JavaBean完成数据的处理,实现数据表示与数据处理的分离。在这种JSP+JavaBean模式中,JavaBean不仅要提供修改和返回数据的方法,而且要经常参与数据的处理。当Web应用变得复杂时,我们希望JavaBean仅仅负责提供修改和返回数据的方法即可,不必参与数据的具体处理,把数据的处理交给称为控制器的Servlet对象去完成
3、,即Servlet控制器负责处理数据,并将有关的结果存储到JavaBean中,实现存储与处理的分离。负责视图功能的JSP页面只要使用JavaBean标记显示JavaBean中的数据即可。MVC模式的核心思想是有效地组合“视图”、“模型”和“控制器”。概述2021/7/25§9.1MVC模式介绍模型-视图-控制器(Model-View-Controller,MVC)是一种先进的设计模式,是TrygveReenskaug教授于1978年最早开发的一个设计模板或基本结构,其目的是以会话的形式提供方便的GUI支持。MVC设计模式首
4、先出现在Smalltalk编程语言中。MVC是一种通过3个不同部分构造一个软件或组件的理想办法:*模型(Model)用于存储数据的对象。*视图(View)为模型提供数据显示的对象。*控制器(Controller)负责具体的业务逻辑操作,即控制器根据视图提出的要求对数据做出处理,并将有关结果存储到模型中,同时负责让模型和视图进行必要的交互,当模型中的数据变化时,让视图更新显示。从面向对象的角度看,MVC结构可以使程序更具有对象化特性,也更容易维护。在设计程序时,可以将某个对象看做“模型”,然后为“模型”提供恰当的显示组件,即
5、“视图”。在MVC模式中,“视图”、“模型”和“控制器”之间是松耦合结构,便于系统的维护和扩展。2021/7/25§9.2JSP中的MVC模式在JSP技术中,"视图"、"模型"和"控制器"的具体实现如下。◆模型(Model):一个或多个JavaBean对象,用于存储数据,JavaBean主要提供简单的setXXX()方法和getXXX()方法,在这些方法中不涉及对数据的具体处理细节。◆视图(View):一个或多个JSP页面,为模型提供数据显示,JSP页面主要使用HTML标记和JavaBean标记来显示数据。◆控制器(Con
6、troller):一个或多个Servlet对象,根据视图提交的要求进行数据处理操作,并将有关的结果存储到JavaBean中,然后Servlet使用重定向方式请求视图中的某个JSP页面更新显示,即让该JSP页面通过使用JavaBean标记显示控制器存储在JavaBean中的数据。2021/7/25图9.1MVC模式的结构2021/7/25§9.3模型的生命周期与视图更新MVC模式与前面学习的JSP+JavaBean模式有很大的不同。在JSP+JavaBean模式中,由JSP页面使用JavaBean标记7、id="给bean起的名字"class="创建bean的类"scope="bean有效范围”/>创建JavaBean。在MVC模式中,由控制器Servet负责创建JavaBean,并将有关数据存储到所创建的JavaBean中,然后Servlet请求某个JSP页面使用JavaBean的getProperty动作标记显示这个JavaBean的中的数据。在MVC模式中,由Servlet负责用构造方法创建JavaBean,因此创建J
8、avaBean的类可以有带参数的构造方法,其他方法的命名继续保留“get”规则,但可以不遵守“set”规则。因为我们不希望JSP页面修改JavaBean中的数据,只需要它显示JavaBean中的数据。在MVC模式中,Servlet创建JavaBean也涉及到生命周期,生命周期分为request、sess