SpringMVC学习笔记(2)——SpringMVC的注解式开发

1. RequestMapping注解的使用

1.1 指定给方法或者类

当指定给类时,value的值为请求的相同路径部分(模块的名称)
在这里插入图片描述

指定给方法时,value的值为请求的全部路径
在这里插入图片描述

1.2 get和post提交方式的区别

get:
1.每次发送的请求量比较小,要发送大请求量时,不合适
2.浏览器地址栏会明文化显示数据
3.浏览器缓存可以存储数据

post:
1.每次请求都是重新提交请求,无缓存,
2.适合提交大量数据和保密的数据时

一般查询多使用get方式,添加修改多使用post方式。
参数少使用get,参数多使用post
查的数据长时间不变可以用get

1.3 method属性

使用RequestMethod类的枚举值
例如:get方式,RequestMethod.GET

2. 接受请求中的参数

对应HttpServletRequest,HttpServletResponse,HttpSession只需在控制器方法的形参列表中,定义就可以了,框架会给参数赋值,再控制器方法中就可以直接使用request、response、session参数

框架使用request对象接收参数 request的getParameter()方法,在中央调度器的内部调用doProperParam方法时,按名称对象传递参数

400:http status,表示客户端异常,主要是发生在用户提交数据过程中

2.1 逐个接收

请求中的参数名和控制器方法中的形参名一样,按照名称对象接受参数
在这里插入图片描述
在这里插入图片描述

解决中文乱码问题

使用过滤器

在这里插入图片描述

请求参数名和方法名不一致问题

在@RequestParam注解中的value值设置为“请求名”
在这里插入图片描述

2.2 对象接收

在控制器方法中的形参是对象,请求中参数名和对象的属性名一样(java类需要有无参构造,且有set方法)
在这里插入图片描述

3. 控制器方法的返回值

控制器方法的返回值表示本次请求的处理结果:返回值有ModelAndView。String,void,Object。

3.1 ModelAndView 数据和视图

请求结果有数据又有视图,使用此类最方便,数据存放在Request作用域,视图由forword转发。

3.2 String 视图

框架对返回值是String,执行的是forword操作,视图可以表示为完整名称,也可是表示为逻辑名称。
在这里插入图片描述
在@RequestMapping的produces属性赋值为“text/plain;charset=utf-8”

3.3 void 没有数据和视图

没有数据和视图,可以使用HttpServletResponse对象输出数据,响应ajax请求

3.4 Object

控制器方法返回对象Object,用来响应ajax请求,这些都是数据,而ajax请求需要的就是数据。在ajax请求,一般需要从服务器端返回json格式的数据,经常要处理java对象到json的转换,而且还需要输出数据来响应ajax请求。框架提供了处理java对象到json转换,还有数据的输出工作

HttpMessageConverter 消息转换器

接口,作用是 :1)实现请求的数据转为java对象, 2)把控制器方法返回的对象转为json,xml,text,二进制等不同格式的数据
在这里插入图片描述
需要在springmvc的配置文件,加入注解驱动的标签mvc:annotation-driven,会创建HttpMessageConverter接口的8个实现类对象。

@ResponseBody

@ResponseBody注解的作用,就是把student转换后的json通过HttpServletResponse对象输出给浏览器

控制器方法返回对象转为json的步骤

1)pom.xml加入jackson依赖,springmvc框架默认处理json就是使用jackson
2)在springmvc的配置文件中,加入注解驱动的标签mvc:annotation-dirven
3)在控制器方法的上面加入@ResponseBody注解,表示返回值数据输出到浏览器。

4. 静态资源处理方式

url-pattern设置为‘/’后,导致中央调度器成为默认的servlet,不能处理静态资源,访问静态资源会出现404的错误。需要设置对静态资源的访问

4.1 使用mvc:default-servlet-handler

在这里插入图片描述

4.2 使用mvc:resources标签

mapping:访问静态资源的uri地址,可以使用通配符(**)
**:表示任意的目录和目录的资源名称
location:静态资源在项目中的位置,不要使用/WEB-INF目录

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值