项目一众筹网01_04环境搭建_表述层springMvc的搭建快速打开web.xml快捷键@RequestBody和@ResponseBody的区别以及好处
Posted 平凡加班狗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目一众筹网01_04环境搭建_表述层springMvc的搭建快速打开web.xml快捷键@RequestBody和@ResponseBody的区别以及好处相关的知识,希望对你有一定的参考价值。
表述层文章目录
37-环境搭建-表述层-各个配置文件的关系
表述层,即我们的springMvc
38-尚硅谷-尚筹网-环境搭建-表述层-web.xml-配置ContextLoaderListener
web.xml,逐步逐步去找比较麻烦,我们直接通过快捷键更方便
我们知道找一个类的ctrl+shift+T
那么web.xml是一个资源,同理按Ctrl+shift+R 即可以打开可视化界面,如下
想尽一切办法去提高我们的效率
这里我们对比一下代码或者拷贝一下就行了
39-尚硅谷-尚筹网-环境搭建-表述层-web.xml-配置CharacterEncodingFilter
这个就没有快捷键了,需要我们手把手配置
同样的,不好配就直接拿源码复制一下,理解就行了
40-尚硅谷-尚筹网-环境搭建-表述层-web.xml-初步配置DispatcherServlet
41-环境搭建-表述层-web.xml-配置请求扩展名
42-环境搭建-表述层-web.xml-配置JSON请求扩展名
这里有一个小坑需要我们注意
不匹配的错误码是406
所以我们需要再配置一个.json的扩展名
43-环境搭建-表述层-SpringMVC配置
新建如下配置文件,并且把前置需要的架子搭起来
下面我们需要配置一个扫描的包
异常映射我们就放在上图所示的config里面
把spring-web-mvc.xml文件内容复制一下,用起来
44-环境搭建-表述层-测试SSM整合环境
一定要转变一个思想,以前我们没有用maven项目的时候是加一个jar包
现在用了maven本质上还是少了jar包去加jar包,但是我们的jar包是需要maven去帮我们管理
所以我们需要去加一个依赖(加一个maven帮我们管理的jar包)
没有这个方法那就新建就行了
然后运行项目看看,是骡子是马拉出来溜溜
这就说明OK了
45-环境搭建-表述层-base标签
上面那个问题,如果每次都用绝对路径可能会觉得比较烦,所以我们加一个base标签
46-环境搭建-表述层-Ajax-简述
== springBoot 不建议使用jsp(但是支持,只是不建议) ==
47-表述层-Ajax-发送数组-方案一:@RequestBody的使用
我们继续在index.jsp里面去写,注意,不要用原生的js写,我们引入一个jquery,用jquery框架来写js代码
ajax请求有3种,如下:
$.get()
$.post()
$.ajax()
的区别要搞清楚
$.get() 、 $.post() 必须要是服务端成功处理了请求之后才能够用的,意思就是他们都想要状态码200(通过)
而 $.ajax()可以在服务器端处理失败以后也能用,意思就是他返回的状态码400,404也可以处理
== 所以这里我们应该使用$.ajax() ==
服务器端返回什么,浏览器端是控制不了的,浏览器端能做的是,怎么去对待服务器返回过来的数据
然后运行一下项目试试
说我没传参数给它
再改一下
之前那个问题怎么解决呢,明明前端传的是array,后端为啥就变成了要用array[]才能接收到
所以这种方案并不理想, 我们看看其他的方案
48-表述层-Ajax-发送数组-方案二
覆盖了,只有一个12
再来
Handler写一下
所以这种还是不行,除非是这种情况就可以,如下
这种方式的缺点就是必须你还得构造一个实体类,而这个实体类对业务还没有啥帮助,有帮助的话还好
所以也有局限性 我们再看下一种方式
49-表述层-Ajax-发送数组-方案三:优雅且完美
一定要设置请求体的内容类型
不需要我们加实体类,也不需要我们加[ ],是什么就是什么,所以说这种方式最完美
50-环境搭建-表述层-Ajax-发送复杂对象
再举个例子,这种方式的为例看看@RequestBody到底有多强大
同样的操作——新建一个科目类Subject
再新建一个学生实体类 Student
目前这些类我们都要加无参构造、有参构造、get/set
等后面我们再学另外一种技术,就可以不写get/set这些了,直接省略了
这么些个对象如果我们不直接传,而是一个一个传,相当的麻烦
实际工作中就是一般都是这样的请求体
51-表述层-Ajax-ResultEntity-代码
注意,== 加上无参构造、有参构造、tostring( ) ==
这个类直接用老师的,这个类很重要,以后的分布式项目都可以用,对于前后端分离的项目非常重要
52-表述层-Ajax-ResultEntity-测试
上面写了之后我们总要用一下才知道怎么样,以及到底好不好用
不要去返回 “success”,而是返回刚刚我们写的那个
那么此时页面需要改吗
肯定也是要改的,因为此时返回的就不是文本了,而是json数据了
如果 dataType 你没有改成json ,你就得自己解析,这就很麻烦,jquery能解析,为啥不让它帮我们解析呢
所以一定要改
项目运行起来看看
再次运行项目,就不会报错了,完美运行
以上是关于项目一众筹网01_04环境搭建_表述层springMvc的搭建快速打开web.xml快捷键@RequestBody和@ResponseBody的区别以及好处的主要内容,如果未能解决你的问题,请参考以下文章
项目一众筹网01_02环境搭建_日志系统搭建日志打印级别debuginfoerror
项目一众筹网07_01_SpringSecurity框架简介和用法SpringSecurity负责的是 权限验证Spring的注解模式maven引入Spring环境加入layUI环境
项目一众筹网02_1_此次项目的重要性环境搭建-创建常量类管理员登录功能开始表单都是以post方式去提交我们说的控制器就是handlerbase标签的位置实现点击浏览器的上一步
项目一众筹网01_00此项目是SSM过渡到分布式项目(SpringBootSpringCloud)
项目一众筹网01_01环境搭建(后台)MBG逆向工程(基于maven)整合MyBatis-思路和操作依赖信息来源https://mvnrepository.com
项目一众筹网01_05环境搭建-异常映射ajax请求和普通请求的区别基于注解的异常映射@ResponseBody和@RequestBody的区别