• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
黄洪波写点东西的地方
博客园    首页    新随笔    联系   管理    订阅  订阅
GetMapping 和 PostMapping最大的差别(转)

原文地址:GetMapping 和 PostMapping

 Spring4.3中引进了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},来帮助简化常用的HTTP方法的映射,并更好地表达被注解方法的语义。
  以@GetMapping为例,Spring官方文档说:
  @GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。该注解将HTTP Get 映射到 特定的处理方法上。
 
  Difference between @GetMapping & @RequestMapping:
@GetMapping does not support  the consumes attribute of @RequestMapping.

 

同样一个方法实现,用@get定义和@post定义,@get能通过测试,而@post不能

@GET  //@POST
@Path("/getUser")
@Produces("application/json")   //@Consumes(application/x-www-form-urlencoded)
public String getUserById(@QueryParam("loginID") String loginID) throws Exception {
    String users = null;
    CVCUserDAO dao = new CVCUserDAO();
    ArrayList<User> datas = dao.getUsers(loginID);
    Gson gson = new Gson();
    users = gson.toJson(datas);
 
    return users;
    // return "Hello World";
}

 

从来我以为get和post只是一种规范,好吧。。。从某种程度上,是的。

 

但是当使用浏览器去测试它的时候,就不是了

通过浏览器的地址栏输入地址,所访问的URL都是get请求,因此如果以post定义方法,那么由于请求与实现的不一致,会返回405错误,method not allowed,  The specified HTTP method is not allowed for the requested resource.

 

这归根到底是因为浏览器发送了get请求,而方法只能处理post请求,所以发生的错误

 

可能是这么问题太low了,我网上找了一大圈都没有找到答案,最后在stackoverflow上找到了解答

http://stackoverflow.com/questions/25253972/put-jersey-error-405-method-not-allowed

 

他说的很好,如果想用浏览器做post的测试,那么就下一个chrome的postman插件,完美解决你的问题

 

最后从360Doc上找到了Get和Post请求的区别,贴在这里

1. 哪一些情况下,浏览器会发送get请求

a. 直接在浏览器地址栏输入某个地址

b. 点击链接

c. 表单默认的提交方式

 

2. 哪一些情况下,浏览器会发送post请求?

a. 设置表单method = "post"

 

3. get请求的特点

a. 请求参数会添加到请求资源路劲的后面,只能添加少量参数(因为请求行只有一行,大约只能存放2K左右的数据)(2K左右的数据,看起来也不少。。。)

b. 请求参数会显示在浏览器地址栏,路由器会记录请求地址

 

4. post请求的特点

a. 请求参数添加到实体内容里面,可以添加大量的参数(也解释了为什么浏览器地址栏不能发送post请求,在地址栏里我们只能填写URL,并不能进入到Http包的实体当中)

b. 相对安全,但是,post请求不会对请求参数进行加密处理(可以使用https协议来保证数据安全)。

posted on 2018-04-25 02:23  红无酒伤  阅读(2368)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3