黑马程序员技术交流社区
标题:
Spring_mvc
[打印本页]
作者:
陈桃
时间:
2019-5-31 12:32
标题:
Spring_mvc
SpringMvc概述
SpringMVC是一种基于java的实现MVC设计模型的请求驱动类型的轻量级Web 框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow 中。
SpringMVC组件解析
SpringMVC的执行流程:
用户发送请求至前端控制器DispacherServlet
DispatcherServlet收到请求调用HandlerMapping处理映射器
处理映射器找到具体的处理器(可以根据xml配置 注解进行查找),生成处理器拦截器(如果有则生成)一并返回给DispatcherServlet
DispatcherServlet调用HandlerAdapter处理器适配器
HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)
Controller执行完成返回ModelAndView
HandlerAdaopter将controll执行结果ModelAndView返回给DispatcherServlet
DispatcherServlet将ModelAndView传给ViewReslover视图解析器
ViewReslover解析后返回具体View
DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)DispatcherServlet响应用户
@RequestMapping
作用:用于建立请求URL和处理请求方法之间的对应关系
位置:
类上 请求URL的第一集访问目录。此处不写的话,就相当于应用的根目录
方法上 请求URL的第二级访问目录,与类上的使用@ReqquestMapping标注的一级目录一起组成访 问虚拟目录
value:用于指定请求的URL 它和path属性的作用是一样的
method:用于指定请求的方式
params:用于指定限制请求参数的条件 他支持简单的表达式 要求请求参数的key和value必须和配置的一模一样
例如:
params={"accountName"},表示请求参数必须有accountName
params={"moeny!100"},表示请求参数中money不能是100
组件扫描
SpringMVC基于Spring容器,所以进行SpringMVC操作时,需要将Controller存储到Spring容器中,如果使用@Controller注解标注的话,就需要使用<context:compinent-scan base-package="com.itheima.controller"/>进行组件扫描
SpringMVC获得请求数据
获得POJO类型参数
Controller中的业务方法的POJO参数的属性名与请求参数的name一致,参数值会自动映射匹配
SpringMVC的相关组件
前端控制器:DispatcherServlet
处理器映射器:HandlerMapping
处理器适配器:HandlerAdapter
处理器:Handler
视图解析器:ViewResolver
视图:View
SpringMVC的注解配置:
请求映射注解:@RequestMapping
视图解析器配置
REDIRECT_URL_PREFIX = "redirect:"
FOORWARD_URL_PREFIX="forward:"
prefix="";
suffix="";
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2