欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

@PathParam和@QueryParam区别简析

时间:2021-05-18 09:43:04|栏目:JAVA代码|点击:

本文主要研究的是@PathParam和@QueryParam区别问题,具体如下。

问题

今天调试一个上传功能,客户端手持机发送数据,在URL中附加一个参数,后台用@PathParam接收,但是报错,无法获取这个参数。

url:http://192.168.1.3/web1_service/convert/vict_hj1000?unit=160106

代码

@Path("/vict_hj1000") 
@POST 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public Response createVictHJ1000Detect(@FormDataParam("name0") InputStream uploadedInputStream, @PathParam("unit") Long unit) throws JSONException { 
     

也就是说,这个unit参数获取不到,怎么回事呢?

原因解释

网上查了一遍,找到了原因,是url中参数的写法不对,导致后台的@PathParam无法获取,下面列出@PathParam和@QueryParam的区别:

1. @PathParam ,url中直接在斜杠后面添加参数值, 例如:www.a.com/student/001 ;
2. @QueryParam ,url中在后面添加【键值对】形式的参数,例如:www.a.com/student?id=001 ;

我的应用里面,url用的是键值对形式的参数,而后台用的是@PathParam,不匹配,因此无法获取。

解决办法就是修改URL,取消键值对,在斜杠后直接加参数值,改成:

http://192.168.1.3/web1_service/convert/vict_hj1000/160106

并且后台修改@Path注解,改为:

@Path("/vict_hj1000/{unit}") 

问题解决!

总结

以上就是本文关于@PathParam和@QueryParam区别简析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

上一篇:Java源码解析HashMap的resize函数

栏    目:JAVA代码

下一篇:解决IDEA target文件夹越来越大的问题

本文标题:@PathParam和@QueryParam区别简析

本文地址:http://www.codeinn.net/misctech/123690.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有