表述层,即我们的springMvc
web.xml,逐步逐步去找比较麻烦,我们直接通过快捷键更方便
我们知道找一个类的ctrl+shift+T
那么web.xml是一个资源,同理按Ctrl+shift+R 即可以打开可视化界面,如下
想尽一切办法去提高我们的效率
这里我们对比一下代码或者拷贝一下就行了
这个就没有快捷键了,需要我们手把手配置
同样的,不好配就直接拿源码复制一下,理解就行了
这里有一个小坑需要我们注意
不匹配的错误码是406
所以我们需要再配置一个.json的扩展名
新建如下配置文件,并且把前置需要的架子搭起来
下面我们需要配置一个扫描的包
异常映射我们就放在上图所示的config里面
把spring-web-mvc.xml文件内容复制一下,用起来
44-环境搭建-表述层-测试SSM整合环境
一定要转变一个思想,以前我们没有用maven项目的时候是加一个jar包
现在用了maven本质上还是少了jar包去加jar包,但是我们的jar包是需要maven去帮我们管理
所以我们需要去加一个依赖(加一个maven帮我们管理的jar包)
没有这个方法那就新建就行了
然后运行项目看看,是骡子是马拉出来溜溜
这就说明OK了
上面那个问题,如果每次都用绝对路径可能会觉得比较烦,所以我们加一个base标签
== springBoot 不建议使用jsp(但是支持,只是不建议) ==
我们继续在index.jsp里面去写,注意,不要用原生的js写,我们引入一个jquery,用jquery框架来写js代码
ajax请求有3种,如下:
$.get()
$.post()
$.ajax()
的区别要搞清楚
$.get() 、 $.post() 必须要是服务端成功处理了请求之后才能够用的,意思就是他们都想要状态码200(通过)
而 $.ajax()可以在服务器端处理失败以后也能用,意思就是他返回的状态码400,404也可以处理
== 所以这里我们应该使用$.ajax() ==
服务器端返回什么,浏览器端是控制不了的,浏览器端能做的是,怎么去对待服务器返回过来的数据
然后运行一下项目试试
说我没传参数给它
再改一下
之前那个问题怎么解决呢,明明前端传的是array,后端为啥就变成了要用array[]才能接收到
所以这种方案并不理想, 我们看看其他的方案
覆盖了,只有一个12
再来
Handler写一下
所以这种还是不行,除非是这种情况就可以,如下
这种方式的缺点就是必须你还得构造一个实体类,而这个实体类对业务还没有啥帮助,有帮助的话还好
所以也有局限性 我们再看下一种方式
一定要设置请求体的内容类型
不需要我们加实体类,也不需要我们加[ ],是什么就是什么,所以说这种方式最完美
再举个例子,这种方式的为例看看@RequestBody到底有多强大
同样的操作——新建一个科目类Subject
再新建一个学生实体类 Student
目前这些类我们都要加无参构造、有参构造、get/set
等后面我们再学另外一种技术,就可以不写get/set这些了,直接省略了
这么些个对象如果我们不直接传,而是一个一个传,相当的麻烦
实际工作中就是一般都是这样的请求体
注意,== 加上无参构造、有参构造、tostring( ) ==
这个类直接用老师的,这个类很重要,以后的分布式项目都可以用,对于前后端分离的项目非常重要
上面写了之后我们总要用一下才知道怎么样,以及到底好不好用
不要去返回 “success”,而是返回刚刚我们写的那个
那么此时页面需要改吗
肯定也是要改的,因为此时返回的就不是文本了,而是json数据了
如果 dataType 你没有改成json ,你就得自己解析,这就很麻烦,jquery能解析,为啥不让它帮我们解析呢
所以一定要改
项目运行起来看看
再次运行项目,就不会报错了,完美运行



