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项目
第三步:写二个页面 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
作用:要求客户端一定要携带指定名字的参数过来
大部分这样写

以下比较少写

理解 :

作用:
第一步:写后台

第二步:写首页

把首页中表单的数据提交给Controll里面的requestBody01上
第三步:运行



F12 返回

重新提交


用这个Mozilla Firefox抓包






超链接触发普通的json数据javascript:sendJSON()
第一步:写首页

第二步:写javabeen

第三步:写后台

第四步 导入jackson-databind 的依赖

解决运行时如下错误

解决办法 复制选中

Ctrl+R

先把程序停止


同理 把另外二个删除
第五步:发请求



总结:


作用:
用于截取请求地址(url)里面的某些部分的数据。这个需要配合RestFul风格来说明
localhost:81/delete?id=3 ==========> localhost:81/delete/3
属性:
value: 用于指定 url 中占位符名称。
required:是否必须提供占位符。
第一步:写首页

第二步:写后台


第三步:运行


作用:
获取指定名字的请求头数据,赋值给方法参数
属性:
value:提供消息头名称
required:是否必须有此消息头 , 默认值是true
第一步:写首页

第二步:写后台

第三步:运行

![]()
作用:
用于把指定 cookie 名称的值传入控制器方法参数。
属性:
value:指定 cookie 的名称。
required:是否必须有此 cookie, 默认值是:true
第一步:写首页

第二步:写后台

第三步.运行


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