对springMVC的简单理解

spring框架以及MVC思想:

一:spring框架:
spring框架是一种很优秀的框架,它可以帮助开发人员简化组件与组件之间耦合,管理对象。
1:创建对象和管理对象之间的关系,可以在配置文件通过bean元素创建对象,管理对象之间的关系
则可以通过注入的方式。
2:spring可以和其他的第三方框架进行整合,比如Struts、hibernate等组成SSH框架。也可以和ibatis
或者mybatis组成框架。

二:名称解释
IOC:inversion of control 控制翻转,创建对象权利的转移,将通过new对象转换为第三方容器配置。
DI:denpence injection 依赖注入,通过注解的方式将需要依赖的对象注入到另一个类中,这样降低
了对象与对象之间的耦合,方便以后的扩展和维护。

三:常用注解
@Controller 将该类标注为控制层,控制层是视图层和业务层的桥梁,负责接收前台的请求,并且将
后台处理数据传送给前台。
@Service 将该类标注为业务层,开发人员可以在这一层编写业务逻辑,而不需要更多的关注如何
与数据库进行交互。
@Component 将该类定义类DAO层,负责与数据库进行数据交互。
@RequestMapping 匹配前台请求路径,可以标注在类之上,也可以标注在方法上面,然后类与方法进行
路径拼接。
@Resource 对象的注入,可以将容器创建的对象直接注入到需要的类中。@Autowired是按照类型注入,
而@Resource的装配顺序是如果指定名称或者没有指定时,按照名称装配;如果指定类型时,按照类型
装配。
@ResponseBody 这个注解很好用,是将后台需要返回的Map、list、字符串或者对象自动封装成json格式,
但是后台需要引入对应的jar包,jackson-all.jar、jackson-mapping.jar等。
@Transactional 这个注解标注方法为事务,保持操作的原子性,如果成功就提交;如果抛出异常,就
回滚。但是在容器的配置文件中需要配置事务。

四:MVC思想
MVC是一种设计思想,M代表model,模型。V代表view,视图,C代表controller控制层。M主要是业务层
以及数据实体类。V负责与用户交互,前台jsp等。C负责调度分配作用。从浏览器发出请求到收到响应
显现在页面的顺序。
a:用户在浏览器输入请求地址:http://主机:端口/应用名/index.do,请求协议是http超文本传输协议。
b:webContent下web.xml中配置访问地址,如果默认welcome-list元素,那么访问默认 页面index.jsp
如果配置servelt和server-mapping元素,那么会自动分发。
c:请求路径通过SimpleHandleMapping类自动匹配到后台的RequestMapping中的路径。如果配置MVC,那么
需要配置mvc驱动。
d:在控制层调用业务层,处理完数据后,返回页面和处理完的数据。
e:页面重定向到页面和配置文件ViewRevoler的拼接,可以使用tiles框架(如果jsp页面过多的情况)
同时将数据也带过去,然后将响应返回浏览器。
f:浏览器显示给用户。

时间: 2024-11-23 23:45:04

对springMVC的简单理解的相关文章

springMVC的简单了解和环境搭建

一,什么mvc 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计思想.它主要通过 分离模型.视图及控制器在应用程序中的角色 将业务逻辑从界面中解耦.通常, 模型负责封装应用程序数据在视图层展示. 视图仅仅只是展示这些数据,不包含任何业务逻辑. 控制器负责接收来自用户的请求,并调用后台服务(e service  或者  dao )来处理业务逻辑.处理后,后台业务层可能会返回了一些数据在视图层展示. 控制器收集这些数据及准备模型在视图层展示.C MVC  模式的核心思想是将

php类的封装、继承和多态的简单理解

.面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象: 我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象 一.封装性  封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作.  php提供了三种访问控制修饰符  public 表示全局,本类内部,类外部,子类都可以访问  protected 表示受保护的,只有本类或子类可以访问  pr

简单理解计算机通信

简单理解计算机通信 写在前面: 在计算机刚出现的时候,只能在本机进行一些运算处理,想将一台计算机中的数据转移到另一台计算机中,需要通过外部存储介质来传输,例如磁带.软盘.而网络技术的出现,使得计算机间可以通过一些传输介质(网线.光纤等),实现快速的数据传输和信息交互.如今,网络已无处不在,那么,计算机之间究竟是如何通信的呢?下面会通过一些基础的网络知识来简单理解计算机之间的通信过程. 网络通信模型: 网络通信模型是一种概念模型和框架,旨在使各种计算机在世界范围内互连为网络.其中有OSI七层模型和

Http协议与TCP协议简单理解

在C#编写代码,很多时候会遇到Http协议或者TCP协议,这里做一个简单的理解. TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求.Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的.所以Http连接是一种短连接,是一种无状态的连接.所谓的无状态,是指浏览器每次向服务器发起请求的时候,

回溯法之八皇后问题简单理解

回溯法,简单理解就是有源可溯.基本思想要借鉴穷举法,但是它不是一味地穷举,当发现某一步不符合条件时,这一步后面的穷举操作就不进行了(俗称“剪枝”),我自己把它叫做动态穷举法.假设第一个步骤可行,那么执行第二个步骤,第三个......如果其中第三个步骤不行,那么我们再回过来(回溯),第二个步骤换一种方法尝试,然后再重新第三个步骤,第四个......直到完成任务要求为止. 这里,以八皇后问题为例.试图把回溯法讲清楚. 注意:递归应该是一种算法结构,回溯法是一种算法思想. 何为八皇后问题? (百度百科

Javascript闭包简单理解

提到闭包,想必大家都早有耳闻,下面说下我的简单理解.说实话平时工作中实际手动写闭包的场景并不多,但是项目中用到的第三方框架和组件或多或少用到了闭包.所以,了解闭包是非常必要的.呵呵... 一.什么是闭包简而言之,就是能够读取其他函数内部变量的函数.由于JS变量作用域的特性,外部不能访问内部变量,内部可以外部变量. 二.使用场景1. 实现私有成员.2. 保护命名空间,避免污染全局变量.3. 缓存变量. 先看一个封装的例子: var person = function () { // 变量作用域为函

对数据类型封装和数据抽象的简单理解

请特别关注程序设计技术,而不是各种语言特征. --<C++程序设计语言> Bjarne Stroustrup 本文是<C++程序设计语言>(Bjarne Stroustrup )的第二章的读书笔记,例子来源于这本书的第二章. 在程序设计之中,我们倾向于将数据结构(也可以说是数据类型)以及一组对其操作的相关过程组织在一起,在逻辑上可以称将其为模块.此时程序分为一些模块,模块包括一组对数据的操作,数据隐藏于模块之中.以下以栈的设计为例,使用C和C++进行设计,简单理解模块化设计中的数据

对象序列化原因的简单理解

序列化和反序列化我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,其最终目的都是将内存中的对象持久化或者是在网络上传输.反序列化就是在适当的时候把这个文件再转化成原来的对象使用. 使用序列化的原因 a. 一个原因是将对象的状态保持在存储媒体中,以便可以在以后重新创建精确的副本.我们经常需要将对象的字段值保存到磁盘中,并在以后检索此数据.尽管不使用序列化也能完成这项工作,但这种方法通常很繁琐而且容易出错,并且在需要跟踪对象的层次结构时,会变得越来越复杂.可

[干货分享]git的简单理解及基础操作命令

前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制>这本书(偏理论,内容完善,很不错),针对所学内容建了git仓库测试,且写了不少git操作命令的笔记,做个分享,有错误的地方各位大大也给提出,好做修改~ Git是一款免费.开源的.用Linux内核开发的分布式版本控制系统. git和svn有什么区别呢? git采用分布式版本库管理,而svn采用集中式版本库管理. 集中式版本库管理需要有一台存放版本库的服务器,