springMVC-基本认识
MVC设计模式
Controller
Model
View

SpringMVC
1、 实现MVC设计模式的框架
2、 基于springIOC,是spring的一个子模块,不需要整合
核心组件
1、 DispatcherServlet:前置控制器
2、 Handler:处理器,完成具体业务逻辑
3、 HandlerMapping:将请求映射到Handler
4、 HandlerInterceptor:处理器拦截器
5、 HandlerExecutionChain:处理器执行链
6、 HandlerAdapter:处理器适配器
7、 ModelAndView:装载模型数据和视图信息
8、 ViewResolver:视图解析器
流程
1、 请求被DispatcherServlet接收
2、 DispatcherServlet通过HandlerMapping映射到Handler和HandlerInterceptor获得HandlerExecutionChain(Handler和HandlerInterceptor)返回到DispatcherServlet
3、 DispatcherServlet通过HandlerAdapter执行Handler获得ModelAndView返回到DispatcherServlet
4、 DispatcherServlet对返回结果通过ViewResolver进行解析返回填充了模型数据的view响应客户端
使用:
一、开发者需要配置组件搭建框架(XML)
1、基础配置
导入maven依赖:spring-webmvc.jar
在web.XML中配置DispatcherServlet:
1、需要指定初始化参数的springMVC配置文件
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
2、或者使用命名空间,可以改变默认的配置名称,但是必须放在web-inf目录下
<init-param>
<param-name>namespace </param-name>
<param-value>springXMLName </param-value>
</init-param>
3、或者使用默认配置,则必须用[servlet-name].sevlet.xml格式命名
2、XML配置:Controller、HandlerMapping映射
HandlerMapping:

Controller:

3、XML配置:ViewResolver映射

二、开发者需要手动编写Handler和view
Handler:实现controller(MVC的)接口
从页面得到的数据可添加到方法参数中,MVC可自动将参数转化成对应的bean实体
返回数据modelAndView的数据和视图:
addObject和setViewName方法添加进modelAndView
返回string格式的view界面名称:
将数据封装成map集合,
将数据封装成Model对象
View:jsp页面
注解方式配置Controller、HandlerMapping映射
1、 开启注解扫描
<context:component-scan base-pachage=”需要注解扫描的文件目录路径”/>
2、 添加Controller的IOC容器:@Controller
3、 添加mapping映射:@RequestMapping(“handlerName”)
使用filter配置中文乱码监听器

设置访问静态资源

springMVC-基本认识的更多相关文章
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- Springmvc数据校验
步骤一:导入四个jar包 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...
- 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程
本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...
- 快速搭建springmvc+spring data jpa工程
一.前言 这里简单讲述一下如何快速使用springmvc和spring data jpa搭建后台开发工程,并提供了一个简单的demo作为参考. 二.创建maven工程 http://www.cnblo ...
- redis集成到Springmvc中及使用实例
redis是现在主流的缓存工具了,因为使用简单.高效且对服务器要求较小,用于大数据量下的缓存 spring也提供了对redis的支持: org.springframework.data.redis.c ...
- 流程开发Activiti 与SpringMVC整合实例
流程(Activiti) 流程是完成一系列有序动作的概述.每一个节点动作的结果将对后面的具体操作步骤产生影响.信息化系统中流程的功能完全等同于纸上办公的层级审批,尤其在oa系统中各类电子流提现较为明显 ...
- springMVC学习笔记--知识点总结1
以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...
- springMVC初探--环境搭建和第一个HelloWorld简单项目
注:此篇为学习springMVC时,做的笔记整理. MVC框架要做哪些事情? a,将url映射到java类,或者java类的方法上 b,封装用户提交的数据 c,处理请求->调用相关的业务处理—& ...
- springmvc的拦截器
什么是拦截器 java里的拦截器是动态拦截action调用的对象.它提供了一种机制可以使 ...
随机推荐
- [原创]II7/IIS8屏蔽YisouSpider蜘蛛
来源:http://www.0531s.com/content-46-1927014-1.html YisouSpider蜘蛛抓取网页能够导致CPU暴涨,影响其他蜘蛛和用户的访问,多次实验后,发现II ...
- JavaScript Date 学习心得
1.要创建一个日期对象,使用new 操作符和Date构造函数即可: var date=new Date() 在调用Date构造函数而不传递参数的情况下,新创建的对象可以自动获得当前日期和时间.必须传入 ...
- stm32串口学习(一)
串口在工作中经常用到,今天我们从零开始学习stm32的串口编程(利用库函数). 先从最简单的情况开始,假设我们要实现的功能就是串口发送一个字节,不考虑接收,也不考虑中断. 那么要解决两个问题: 1 串 ...
- Linux小知识(1): bash中执行数据库的相关操作
工作中经常会遇到命令行操作数据库或登陆至其他服务器等情况,往往需要通过命令行进入相关的数据库或登陆至相关的服务器,再执行指令操作,因此有没有方法,在命令行或bash脚本中模拟进入数据库或登陆服务器操作 ...
- 介绍几个关于C/C++程序调试的函数
最近调试程序学到的几个挺有用的函数,分享一下,希望对用C/C++的朋友有所帮助! 1. 调用栈系列下面是函数原型: 1 2 3 4 #include "execinfo .h" i ...
- MemoryCache缓存 ---缓存时效
MemoryCache缓存 ---缓存时效测试 var cachePool = new MyCachePool(); //Thread.Sleep(1000); var value = cachePo ...
- dll托管于非托管
托管的DLL组件可以在VS 直接添加引用,在使用using dll的文件命名空间就可以使用 非托管的DLL组件,只能通过using system.Runtime.InteropServices:引入 ...
- Java中的阻塞队列-SynchronousQueue
SynchronousQueue是一个不存储元素的阻塞队列.每一个put操作必须等待一个take操作,否则不能继续添加元素.SynchronousQueue可以看成是一个传球手,负责把生产者线程处理的 ...
- maven课程 项目管理利器-maven 3-3 maven中的坐标和仓库
本节主要讲了两大方面: 1 maven坐标 1.0 构件定义 任何依赖,插件,项目构建输出 都称之为构件. 1.1 maven坐标概念 groupid 公司或组织的域名倒序+当前项目名称 artif ...
- Python元组类型、字典类型及常用操作
一.元组类型 1.用途 记录多个值,当多个值没有改的需求,此时用元组更合适,Python的元组与列表类似,不同之处在于元组的元素不能修改. 2.定义方式 在()内用逗号分隔开多个任意类型的值 t=(1 ...