Struts(之一)--基本介绍

原创 2015年07月07日 13:24:34

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的处理结果。也就是重新产生一个请求。

struts的简单介绍

Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。Struts 2以WebWork为核心,采用拦截器的机制来处理用户...
  • zhuofeng85
  • zhuofeng85
  • 2013年09月23日 23:28
  • 1796

【Struts】——简介 & 原理

truts是对JSPModel2设计标准的一种实现,下面分别从模型(Model)、视图(view)和控制器3个部分介绍Struts的体系结构和工作原理。...
  • u010164936
  • u010164936
  • 2016年01月11日 15:58
  • 881

Struts基本介绍

一 Struts的几个基本概念 1、Struts是一个框架(frameset)   2、Struts是一个web框架   3、框架提高了程序的规范的同时,也约束了程序的自由 4...
  • chengqiuming
  • chengqiuming
  • 2017年11月22日 12:40
  • 12

Struts旅程(一)Struts简介和原理

struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/...
  • lovesummerforever
  • lovesummerforever
  • 2014年02月10日 07:55
  • 92239

Struts2(一)——总体介绍

这篇博客开始将总结一下有关框架的知识,在开发中合适的利用框架会使我们的开发效率大大提高。当今比较流行的开源框架: 关注数据流程的MVC框架 (Struts1/2, WebWork, Sprin...
  • liujiahan629629
  • liujiahan629629
  • 2014年03月05日 19:44
  • 18565

MySQL基本介绍

1、B/S结构的软件  浏览器/服务器       数据存在哪里? 数据库。  文本里面 2、数据库系统(database system)是计算机系统中一种专门管理、存放数据资源的系...
  • Merlin_feng
  • Merlin_feng
  • 2015年01月01日 02:10
  • 664

struts详细介绍

Struts2 1. 目录 1.目录 2.MVC 3.STRUTS2解析                 4.标签 5.OGNL 6.国际化 7.类型转换 8.校验 9. 拦截器 10.上传与下载...
  • u011018979
  • u011018979
  • 2014年07月11日 11:04
  • 2871

Struts2系统结构及运行原理(1)

一、架构图下边是一张Struts2的官方文档中的Struts2的构架图 二、各模块的简要分析(1)橙色是Servlet Filters,过滤连,所有的请求都要经过Filter的处理; (2)浅蓝色...
  • u010870518
  • u010870518
  • 2015年05月20日 11:42
  • 3697

深度学习基础介绍:机器学习介绍和基本概念

1、机器学习     概念:专门研究计算机怎么模拟或实现人类的学习行为,以获取新知识和技能,重新组织已有知识结构使不断改善自身性能。     学科定位:人工智能(Artificial Intellig...
  • zxllll8898
  • zxllll8898
  • 2016年11月28日 16:09
  • 637

Storm简单介绍

原文: http://matt33.com/2015/05/26/the-basis-of-storm/ 本文是参考网上的博客以及一些书籍根据自己的一些理解整理得到的,主要是为了更好地...
  • u013063153
  • u013063153
  • 2017年05月18日 22:11
  • 212
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts(之一)--基本介绍
举报原因:
原因补充:

(最多只允许输入30个字)