SpringMVC开发总结(更新中)

1 在Concroller中 @RequestParam 与无注解区别,

无注解的话从web层往service层传输时当不传参数将不会影响调用

有注解的话此注解默认是强制性要传递的参数,当然也可以设计非强质性

2 @RestController与@Controller @Conponent @Server区别

一个是有Rest风格的(请求get,保存post,修改put,删除delete)区别就在这里(这是错误的,但是保留)

restController是返回一个字符串 系统加上后缀进行跳转,另一个要借助类跳转

3 异步请求@RequestBody如何接收

我碰到一个问题是在前端封装json 在ajax中通过JSON.stringify(json)传输,传输中报415、400错误

415 请求类型错误ajax默认请求txt/html,而我是要传json如果不设置dataType="json"刚会报此类错误

400 错误,当服务器强制按某个字段进行传输时,客户端字段对应不上就会报此类错误,

记住要用JSON.stringify(json)进行传输,服务器无法解析对象但能解析字符串

403 错误我忘记了

=====================================ruo======================================

RestTemplate(重要

这个方法是基于httpClient之上封装的一个类,她提供了getForObject postForObject getForEntity postForEntity和 exchange方法

这是基于AOP交互的三个重要的方法

getForObject  通过get请求获取实体对象

postForObject 通过post请求获取实体对象,允许设置请求送,如传递json时

getForEntity 她是getForObject的一个镜像,基于此类上封装了例如返回码(200码成功404未找到之类的)

postForEntity 同上

exchange方法 我着重介绍

参数 url(URI),method(GET POST PUT DELETE),HttpEntity,Class)

这里我只计httpEntity其它没什么可讲的

HttpEntity<String> formEntity = new HttpEntity<String>(json, headers);
包涵了请求体与请求头
请求体从参数命名就知道这是一个json,用对远程调用,对方服务器封装成一个实体对象
请求头包涵请求信息,如我要传输json此处就必须要设置请求头为json
具体代码
HttpHeaders headers = new HttpHeaders();
String encodedToken = CookieUtil.getCookie(request, "userToken");
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
headers.add("Authorization",encodedToken );
如果不设置请求头,对方服务器照样返回415错误或者400错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值