SpringMVC框架学习笔记(二)

常用注解

RequestParam
作用:将请求中指定名称的参数给控制器中的形参赋值。如果表单提交一个属性叫做username,后台要接收到属性值必须在方法中加入一个名为username的参数。
属性:value表示请求参数中的名称,而required表示请求参数中是否必须提供此参数。默认为true。
示例:
在这里插入图片描述
在这里插入图片描述
RequestParam可以解决参数不匹配的问题,如下所示:
在这里插入图片描述
name和方法的参数username不匹配,需要做出如下修改:
在这里插入图片描述
RequestBody
作用:用于获取请求体的内容。直接使用得到的是键值对结构的数据。
属性:required表示是否必须有请求体。默认值为true。
如下图所示,有一个表单请求:
在这里插入图片描述
需要获得整个请求体内容而不是其中某个属性的值。如下图所示:
在这里插入图片描述
PathVaribale
作用:用于绑定url中的占位符。例如,请求url中的/delete{id},其中的{id}就是占位符。编写请求路径时,可以直接传入一个名为id的值。注解就可以将id值赋值到方法的参数上。
应用于REST风格。优点:结构清晰,符合标准,易于扩展。
在这里插入图片描述
下图的含义是将10传入id。
在这里插入图片描述
RequestHeader
作用:获取请求消息头。
下图所示,是将accept头的值作为参数传入。
在这里插入图片描述
CookieValue
用于把指定cookie名称的值传入控制器方法参数。value用于指定cookie的名称,而required用于表示是否必须有此cookie。
在这里插入图片描述
当浏览器向服务器发送请求时,服务器会创建session空间,通过cookie的形式将session写回JSESSIONID的值。
在这里插入图片描述
ModelAttribute
可以作用在方法上也可以作用在参数上。
如果放在方法上,方法会在控制器方法执行之前先执行。如下图所示,第二个方法会优先执行。
在这里插入图片描述

应用场景:当表单提交的数据不是实体类完整的数据时,保证没有提交数据的字段使用数据库对象原来的数据。假设,当User类当中有三个属性,表单中有两个属性,另外一个属性没有提交值默认为空。如果想要使用原来数据库中的值,就可以选择此注解。如下图所示,表单只提交了两个属性,user对象中只有两个属性会被封装值。那个没有提交的属性就使用数据库中原来的数据。
在这里插入图片描述
SessionAttribute
作用:用于多次执行控制器方法间的参数共享。只能作用在类上。
在这里插入图片描述
在这里插入图片描述
下图可以将session中存储的键值对打印出来。
在这里插入图片描述
存到session域之后,也可以取出来。如下图所示:
在这里插入图片描述
点击红箭头所指向的超链接,可以执行上图中所显示的方法:
在这里插入图片描述

响应返回值

方法执行结束之后需要跳转到指定的页面,最终给用户执行响应。当方法执行结束时,可以有不同种类型的返回值类型。
字符串类型
1、新建一个超链接,点击这个超链接发送请求。
在这里插入图片描述
2、点击超链接后,下图所示的方法就会被执行:
在这里插入图片描述
3、返回success以后,需要根据视图解析器去请求箭头指向目录下的jsp文件success。
在这里插入图片描述
void类型
在这里插入图片描述
此时不往规定的页面去跳转,而是请求默认的页面,默认页面的路径如下所示:
在这里插入图片描述
ModelAndView
ModelAndView是Spring为我们提供的一个对象。
在这里插入图片描述

响应之页面跳转

使用关键字的方法进行转发:
在这里插入图片描述
在return后面写上要跳转的目的地。
重定向,路径可以不写项目名:
在这里插入图片描述

响应json数据

过滤静态资源
先进行环境的搭建。在webapp目录下新建一个名为js的目录。然后在目录当中存放js文件,如下图所示:
在这里插入图片描述
搭建成功后,可以在jsp页面上引入这个新增的文件,然后就可以用到jQuery提供的函数和方法。编写如下页面:
由于前端控制器会把静态的资源文件拦截,所以需要告诉前端控制器哪些静态资源不可以被拦截。
在这里插入图片描述
配置如下图所示,表示js下的任何文件都不会被拦截。配置时只需要将对应的文件放入对应的文件夹即可。
在这里插入图片描述
发送ajax请求
url表示请求路径。contentType表示发送信息到服务器时内容编码类型。data当中存储键值对。success表示请求成功后的回调函数。
在这里插入图片描述
上述代码编写完成后,点击按钮,后台会执行testAjax方法。
在这里插入图片描述
响应json格式的数据
使用@ResponseBody注解将controller方法返回对象转化为json相应给客户端。
需要用到以下几个包:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值