当前位置: 首页 > 知识库问答 >
问题:

泽西:解码包含空间的String@PathParam

须景胜
2023-03-14
public Response getCustomerByName(
@PathParam("customerName") String customerName)

问题:
我将customerName传递为:堆栈溢出(URL编码为:堆栈溢出)。我希望在java代码中接收解码字符串(堆栈溢出,无)。

我试过的:
这很好用,但我觉得这不是更通用的方法。

URLDecoder.decode(customerName, "UTF-8");

需要更通用的解决方案:我想在其余的API中也做类似的更改,因此在每个API中使用URLDecker是一种负担。我可以遵循什么常见做法在应用程序级别强制执行这种解码?(@PathParam在我收到请求时已被解码)

共有1个答案

东门奕
2023-03-14

它应该是自动“解码”的,您不需要使用URL解码器进行显式解码。解码(客户名称,“UTF-8”)

如PathParam javadoc的javadoc所述:

该值是URL解码的,除非使用Encoded注释禁用。

我刚刚在下面进行了验证,它按照javadoc(在weblogic服务器中)工作

@GET
@Produces(value = { "text/plain"})
@Path("{customerName}")
public Response getCustomerByName(@PathParam("customerName") String customerName) {
    System.out.println(customerName);
    return Response.ok().entity(customerName).type("text/plain").build();
}
 类似资料:
  • 我正在泽西岛2中编写一个RESTful网络服务。我想支持响应的 Gzip 编码。按照这个答案,我在我的类中启用了。 在我的资源类中,我返回一个对象。 现在,当我点击这个api时,我得到一个响应,但响应头不包含头,而是包含 header。 请求: 响应: 响应中没有 标头,也没有任何标头。 我在上使用。 我还遗漏了其他配置吗?我如何获得这两个头并得到gzip压缩的响应,而不是接收分块的响应? 编辑:

  • 我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?

  • 我正在开发一个REST Web服务,其中我使用URL中的ID来指定患者,如下所示: <代码>WS/服务/患者/1 其中“1”是患者的id。所以,在代码中,我这样指定: 我在一个例子中看到了它,但是我的失败了。我得到了这个错误: 通用域名格式。太阳运动衫应用程序编程接口。容器ContainerException:方法,public void PresentationLayer。PatientReso

  • 我决定在这部分替换Web.XML: 我指向servlet容器Jersey,它将接受对REST-Controllers的请求,表明在启动时有必要扫描路径com . skillsimprover . REST examples . REST上的包REST,并表明资源的所有方法和类的基URI都填充了/api/* 从 JAX-RS 2.x 版本开始,可以使用应用程序类或资源配置类来注册包和资源。 我执行了

  • 我试图用户泽西的JSON/bean验证,但是当初始化servlet发生错误。 全栈跟踪: pom.xml: 可能引发异常的行: 更新:使用Java8 更多的文字,这样我就可以发布这个问题更多的文字,这样我就可以发布这个问题更多的文字,这样我就可以发布这个问题更多的文字,这样我就可以发布这个问题更多的文字,这样我就可以发布这个问题再发些短信,这样我就可以发布这个问题了

  • 我需要在Jersey中创建一个自定义ExceptionMapper来处理Jackson返回的JsonProcessingException。 Jackson库已经以JsonMappingExceptionMapper.java和JsonParseExceptionMapper.java(链接)的形式包含了此异常的ExceptionMapper提供程序。 如果我在“my.package”中为这个异常