Spring Mvc(一)

一.什么是MVC

MVC是一种软件架构的思想,将软件系统按照模型,视图,控制器来划分。
M:model模型,在Java工程中指的是javaBean,作用是处理数据;
  JavaBean:{ 实体类bean:存储数据;
         业务处理dao或者是service:处理业务逻辑和数据访问}
V:view视图,指的是html或者是jsp页面,与用户进行交互,展示数据;
C:controller控制层,servlet,接收请求和响应浏览器。
MVC完整的工作流程:用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器
网页发送请求的处理流程
1.浏览器输入域名(www.baidu.com);
2.浏览器根据域名查找ip地址:

  • 查找浏览器缓存:查找自身缓存的DNS记录
  • 查找系统缓存:查找本机的hosts文件
  • 向域名解析服务器发送解析请求
  • 递归查询+迭代查询

3.建立TCP连接(三次握手)
浏览器获取到目标服务器的IP地址后与服务器建立TCP连接,开始通信
4.浏览器发送http请求
按照http协议的标准发送网页请求
5.服务器处理请求做出响应
6.释放TCP连接
7.浏览器显示页面

二. Spring MVC

spring原生产品,基于原生的Servlet,通过功能强大的DispatcherServlet对请求和响应进行统一处理,其处理流程如图,

(1)前端控制器DispatcherServlet接收浏览器发送的请求,
(2)前端控制器调用处理器映射器HandlerMapping请求查询处理器handler(也就是找到handler对象或者说是controller对象),
(3)DispatcherServlet根据返回的信息调用处理器适配器HandlerAdaptor
(4)HandlerAdaptor调用相应的处理器,即我们写的controller里面具体的实现
(5)逐层返回给DispatcherServlet
(6)DispatcherServlet调用视图解析器ViewResolver,经过解析给DispatcherServlet返回view对象
(7)DispatcherServlet渲染视图返回浏览器展示页面

在这里插入图片描述

1.基于xml的方式开发
需要在web.xml中配置DispatcherServlet,配置spingmvc.xml路径,spingmvc.xml中需要配置HandlerMapping和HandlerAdaptor以及视图解析器
2.基于注解方式开发
在spingmvc.xml配置注解扫描即可

<!--注解扫描-->
<context:component-scan base-package="classes.controller"/>

一些重要的注解

  • @RequestMapping
    建立映射,@RequestMapping("/test"),SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。
    处理get请求的映射–>@GetMapping
    处理post请求的映射–>@PostMapping
    处理put请求的映射–>@PutMapping
    处理delete请求的映射–>@DeleteMapping

SpringMVC获取请求参数相关注解
1.获取请求参数的方式:

  • 通过ServletAPI获取:request.getParameter;
  • 通过控制器方法的形参获取请求参数(设置和请求参数同名的形参即可接收参数),若名不同,可以用@RequestParam建立参数映射关系;
  • 通过POJO获取请求参数:
    可以在控制器方法的形参位置设置一个实体类类型的形参,此时若浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值