REST技术第四步 多个參数注解问题
经过实验,发如今使用@BeanParam注解的查询类字段上。
@FormParam和@QueryParam不能同一时候加上去,仅仅能加一个,否则会出现取不到数据的情况。
并且在方法參数上两个注解也不能同一时候加上去。
同一时候加上是一个注解能工作。另外一个不能工作。
我做个实验。
package beanparam; import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam; @Path("/{b}.htm")
public class AddRest {
@GET
public String process(@PathParam(value = "b") @QueryParam("b") int b){
return "<h1>b = "+b+"</h1>";
}
}
实验结果表明。@QueryParam的优先级高于@PathParam。不不过这样,并且@PathParam好像还失去了作用。比方我把url里的数字改掉。改成字母。绝对不报错的。
这就说明取參数的注解它一定有个优先级问题。同一时候加在一个字段上,必然会覆盖还有一个。这么做就会碰到一种非常烦的情况。就是有些參数既可能来自get请求,从URL中取,又可能来自post请求,并且post请求还可能是放在URL里面的。
这种@FormParam和@QueryParam同一时候加上去就仅仅有一个能起作用。这是非常烦的。
对于这种情况,能够用@Context注解注入一个HttpServletRequest对象来调用getParameter方法来做。
此外,同一个方法,也不要同一时候加上@GET与@POST或其它注解注解。
假设一定要的话。能够把方法内容抽出来写一个新方法。
然后写两个方法,分别加上两个注解,内部调用抽出来的公共代码。
比方:
@GET
public String get(){
return business();
}
@POST
public String post(){
return business();
}
这个business就是公共代码。
REST技术第四步 多个參数注解问题的更多相关文章
- REST技术第二步 获取URL中的參数
获取请求的參数.rest技术相对于servlet来说要方便很多. Servlet我们要获取请求的參数,非常麻烦啊.须要request.getParameter("").假设我们要的 ...
- JAVA EE企业级开发四步走完全攻略 [转]
http://bbs.51cto.com/thread-550558-1.html 本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划, ...
- 在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP
如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...
- 只需十四步:从零开始掌握 Python 机器学习(附资源)
分享一篇来自机器之心的文章.关于机器学习的起步,讲的还是很清楚的.原文链接在:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找 ...
- 最新自然语言处理(NLP)四步流程:Embed->Encode->Attend->Predict
http://blog.csdn.net/jdbc/article/details/53292414 过去半年以来,自然语言处理领域进化出了一件神器.此神器乃是深度神经网络的一种新模式,该模式分为:e ...
- 为什么学Python语言,只需四步全面了解Python语言
为什么学Python语言,只需四步全面了解Python语言每个时代都会悄悄犒赏会选择的人,Python现在风口的语言Python--第三大主流编程语言Python , 是一种面向对象的解释型计算机程序 ...
- 【JAVA EE企业级开发四步走完全攻略】
本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划,单个发blog比较零散,所以整理此索引,决定以后每发一季JAVA EE blog后会 ...
- 四步走查智能硬件异常Case
此文已由作者于真真授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 相比于软件,智能硬件产品由于涉及硬件和软件两个端的状态,其异常case要更加错综复杂.由于硬件产品的迭代更新 ...
- LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)
翻译 反转一个单链表. 原文 Reverse a singly linked list. 分析 我在草纸上以1,2,3,4为例.将这个链表的转换过程先用描绘了出来(当然了,自己画的肯定不如博客上面精致 ...
随机推荐
- win10 配置系统默认utf-8编码
win10 配置系统默认utf-8编码 系统 win10 配置系统默认utf-8编码 Windows系统默认字符编码为gbk编码,开发项目编码一般为UTF-8,在我们执行程序及进行程序编码过程中编码 ...
- 122. Best Time to Buy and Sell Stock II@python
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- 牛客OI赛制测试赛2 D 星光晚餐
链接:https://www.nowcoder.com/acm/contest/185/D来源:牛客网 题目描述 Johnson和Nancy要在星光下吃晚餐.这是一件很浪漫的事情. 为了增加星光晚餐那 ...
- 【洛谷日报#75】浅谈C++指针
放入我的博客食用效果更佳(有很多oi学习资料) 1.指针基础 1.引用 C++有一个东西叫引用,引用相当于给对象(如:变量)起了另一个名字,引用必须用对象初始化,一旦初始化,引用就会和初始化其的对象绑 ...
- mysql优化之参数优化(转)
1.优化方式 硬件优化=>系统优化=>mysql配置优化=>SCHEMA优化=>sql优化=>其他解决方案(redis or MongoDB or Cassandra o ...
- Django框架基础知识10-内置分页系统
from django.shortcuts import render, redirect, reversefrom datetime import datetime# Create your vie ...
- NLog在asp.net core中的应用
Asp.net core中,自带的Log是在当selfhost运行时,在控制台中输出,不便于查阅,如果用一个log架框,把日志持久化,便于查询. NLog是一个免费的日志记录框架,专门为.net平台下 ...
- Java学习之集合框架的迭代器--Iteratorjk及ListItertor接口
通常情况下,你会希望遍历一个集合中的元素.例如,显示集合中的每个元素.一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象 ...
- Couchbase V(管理任务)
Couchbase V(管理任务) 多读写 在Couchbase2.1中支持硬盘多读些(Multi- Readers and Writers),一般双核4G服务默认3个thread 4核16G内存一个 ...
- js总结(三):面向对象,prototype ,oo模拟
http://aralejs.org/class/docs/competitors.html http://javascript.crockford.com/prototypal.html proto ...