springmvc复习(第一天)(黑马版)

上午

springmvc的底层也是servlet

在后台能接请求的   只能servlet和过滤器

一.快速入门

第一步:

导入依赖 day34_demo1_helloworld

第二步:做成web项目

第三步:在webapp里面写二个页面

第四步:写后台

第五步:写.xml文件

springmvc里面内置了一个servlet,所以我们只要登记servlet,让他接收/*的请求,目的就是我们从浏览器发任何请求来,都是发给springmvc里面内置的servlet,由servlet内部进行判定,把请求转移到请求路径上

第三步:登记

第四步:运行 访问index.jsp首页 看它会不会发请求给sayHi

发完后会不会跳转到success.jsp

 

二 .原理

解释:

当我们的浏览器(客户端)发出请求时,不是到达Controller

而是先达到DispatcherServlet中央处理器,前端控制器/核心处理器),DispatcherServlet负责接收请求,响应请求,DispatcherServlet收到请求之后,要调用Controlle,但是不知道要调用哪个Controller能够处理发过来的请求,这时就先让HandlerMapping(处理器映射器)去找Controller,看哪个Controller可以处理发过来的请求,等找到之后 在安排HandlerAdapter(处理器适配器)去调用Controller,HandlerAdapter就可以去调用Controller方法,调用Controller方法之后会返回一个视图名称,然后视图解析器在去咨询找页面,在经过渲染页面,在返回给我们的客户端

解释:

ViewResolver视图解析器

调用之后,得到视图,在根据ViewResolver视图解析器

寻找页面

三.配置解释

错误分析

.xsd没有引进来

如果没有引进来选把这行删除



四.演示视图解析器 

五.静态资源处理

六. web.xml里面的配置解释

 

七  @Controller和@RequestMapping

八 .请求参数绑定

第一步:导入依赖

第二步:变成web项目

第三步:写二个页面 index.jsp  success.jsp  先用get请求

第四步:写后台Controller01

第一种:简单参数

第五步:springmvc.xml配置  以下四个是固定 可以导个模板

第六步.web.xml  固定写法  可以导个模板

第七步 访问

访问首页

访问成功页面

用到的是get请求

后台接收到的一个数据

 第二种  对象类型

 第一步:写首页

第二步:javabeen

第三步:后台

第四步:运行

第三种:数组类型

第一步:写首页(前端)

第二步:写后台

第三步 运行

二种传值写法

用list集合接收

第一步:写后台

第二步:

总结:

九 .中文乱码

 第一步:写首页 post请求

第二步:web.xml里面写配置

第三步:运行

十 .类型转换器

我们从页面上传过来的是字符串,但是springmvc内部已经默认写好了类型转换器,比如说string转换int类型,不过日期格式做得并不好,springmvc只认2022/2-1,所以我们得自己写一个类型转换器

第一步:写首页

第二步:后台

第三步:运行

如果日期输入的是2020-10-10

那么就会报错,如图所示(400-客户端  500-服务端)

 

解决办法

 

第一步:

第二步:注册类型转换器

第三步:把类型转换器放在注解驱动上

第四步:运行

 下午

注解

一.@RequestParam

第一步:导入依赖

第二步:写后台

第三步:运行

这时会发现客户端并没有带参数过来

所以要用到@RequestParam

作用:要求客户端一定要携带指定名字的参数过来

大部分这样写

以下比较少写

理解 :

二.@RequestBody

作用:

  1. 用于获取请求体内容。直接使用得到是 key=value&key=value...结构的字符串。【不常用】

第一步:写后台

第二步:写首页

 

把首页中表单的数据提交给Controll里面的requestBody01上

第三步:运行

 

F12   返回

重新提交

用这个Mozilla Firefox抓包

2.把获得json类型的数据转成JavaBean对象(后面再讲)【推荐】

 超链接触发普通的json数据javascript:sendJSON()

第一步:写首页

第二步:写javabeen

第三步:写后台

第四步 导入jackson-databind 的依赖

解决运行时如下错误

解决办法 复制选中

Ctrl+R

先把程序停止

同理  把另外二个删除

第五步:发请求

总结:

三 .@PathVariable

作用:

  用于截取请求地址(url)里面的某些部分的数据。这个需要配合RestFul风格来说明

  localhost:81/delete?id=3    ==========>     localhost:81/delete/3

属性:

  value: 用于指定 url 中占位符名称。

  required:是否必须提供占位符。

第一步:写首页

第二步:写后台

第三步:运行

四 .@RequestHeader

作用:

  获取指定名字的请求头数据,赋值给方法参数

属性:

  value:提供消息头名称

  required:是否必须有此消息头 , 默认值是true

第一步:写首页

第二步:写后台

第三步:运行

六 .@CookieValue

作用:

  用于把指定 cookie 名称的值传入控制器方法参数。

属性:

  value:指定 cookie 的名称。

  required:是否必须有此 cookie, 默认值是:true

第一步:写首页

第二步:写后台

第三步.运行

以上的笔记是自己在看视频时所做  如要源码或是视频可以评论区扣1 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值