Struts(之一)--基本介绍
来源:互联网 发布:罗克韦尔变频器软件 编辑:程序博客网 时间:2024/06/16 02:53
MVC思想
MVC并不是Java语言所特有的设计思想,它是所有面向对象程序设计语言都应该遵守的思想。
MVC思想将一个应用分成三个基本部分:Model(模型)、View(视图)和Controller(控制器)。这三部分以最少的耦合协同工作,从而提高应用的可扩展性和可维护性。
MVC思想类似于观察者模式,但又有区别:观察者模式下观察者和被观察者可以是两个互相等的对象,但MVC被观察者往往只是单纯的数据体,而观察者则是单纯的试图页面。
MVC的特点:
- 多个视图可以对应一个模型,可以减少代码的复制以及代码的维护量,一旦模型发生改变也已于维护。
- 模型返回的数据与显示逻辑分离。
- 应用被分隔成三层,降低了隔层之间的耦合,提供应用的可扩展性。
MVC框架的底层机制是:核心Servlet或Filter接收到用户请求后,通常会对用户请求进行简单预处理,然后通过反射来创建Action实例,并调用Action的指定方法来处理用户请求。那Filter拦截请求后,是如何知道创建哪个Action实例
- 利用配置文件
- 利用约定
Struts应用开发流程
- 在web.xml文件中定义核心Filter来拦截用户请求
- 如果以POST方式提交请求,则定义包含表单数据的JSP页面。如果仅仅只是以GET方式发送请求则无需经过这一步。
- 定义处理用户请求的Action类。也就是MVC的C控制器,负责调用Model里的方式来处理请求。控制器实际上由两部分组成,即拦截所有用户请求,处理请求的通用代码都有核心控制器完成,而实际的业务控制都有Action完成。
- 配置Action。
- 配置处理结果和物理视图之间的对应关系
- 编写视图资源
下面是请求-响应的完整流程
StrutsPreparedAndExecutorFilter和xxxAction共同组成了Struts的控制器,StrutsPreparedAndExecutorFilter称为核心控制器,xxxAction称为业务控制器,它通常并不与物理视图关联,只负责返回处理结果,而该处理结果与怎样的视图关联依然由核心控制器决定。这样做的的好处是,如果有一天需要将某个视图名映射到不同视图资源,这就无需改变业务控制器代码,只需要修改配置文件即可。从图也看出用户请求不在向JSP页面发送,而是由核心控制器调用JSP页面来生成响应,此处的调用不是直接调用而是,将请求forward到指定JSP页面。
- dispatcher结果类型是将请求forward到指定的JSP资源
- redirect结果类型是将请求重定向到指定的视图资源,重定向会丢失所有的请求参数、请求属性,当然也包括Action的处理结果。也就是重新产生一个请求。
0 0
- Struts(之一)--基本介绍
- Hibernate(之一)--基本介绍
- struts之一 struts2框架介绍
- Struts的基本介绍
- Struts基本介绍
- Struts(4)jstl标签技术基本介绍
- Struts应用经验(之一)
- Struts2 之一:常用的Struts 2.0的标志(Tag)介绍
- 移动终端基带芯片的基本架构介绍之一(arm框架的软硬件组合)
- Struts(5)Struts标签介绍
- 数据结构之一(基本数据结构)
- Spring(之一)--基本用法
- Neutron特性介绍之一 - 虚拟网络组网基本需求
- hibernate介绍之一 (转)
- Struts介绍
- Struts介绍
- Struts介绍
- Struts 介绍
- Java程序员们最常犯的10个错误
- Creating a noSql database, what is the best source code to look at?
- Android实现两次按下返回键退出
- 用ping方式探测网络连通性--一个小程序
- Spring Bean 的生命周期
- Struts(之一)--基本介绍
- Delayqueue (python 实现)
- Android NDK开发初步
- C语言之基本算法16—条件全排列
- Android隐藏软件盘
- 【Java】编写程序,确定一个字符串s的字符重新排列后能否变成另一个字符串t
- Codeforces 390E Inna and Large Sweet Matrix 树状数组改段求段
- XML语言讲解
- Android中弹出菜单PopupWindow的使用