Ce contenu n'est pas disponible dans la langue sélectionnée.

Chapter 12. @Encoded and encoding


JAX-RS allows you to get encoded or decoded @*Params and specify path definitions and parameter names using encoded or decoded strings.
The @javax.ws.rs.Encoded annotation can be used on a class, method, or parameter. By default, injected @PathParam and @QueryParam are decoded. Adding the @Encoded annotation means that the value of these parameters will be provided in encoded form.
@Path("/")
public class MyResource {

  @Path("/{param}")
  @GET
  public String get(@PathParam("param") @Encoded String param) {...}
Copy to Clipboard Toggle word wrap
In the previous example, the value of the @PathParam injected into the param of the get() method will be URL encoded. Adding the @Encoded annotation as a parameter annotation triggers this effect.
You can also use the @Encoded annotation on the entire method and any combination of @QueryParam or @PathParam's values will be encoded.
@Path("/")
public class MyResource {
  
   @Path("/{param}")
   @GET
   @Encoded
   public String get(@QueryParam("foo") String foo, @PathParam("param") String param) {}
}
Copy to Clipboard Toggle word wrap
In this example, the values of the foo query parameter and the param path parameter will be injected as encoded values.
You can also set the default to be encoded for the entire class.
@Path("/")
@Encoded
public class ClassEncoded {
  
   @GET
   public String get(@QueryParam("foo") String foo) {}
}
Copy to Clipboard Toggle word wrap
The @Path annotation has an attribute called encode. This controls whether the literal part of the value supplied (that is, the characters that are not part of a template variable) are URL-encoded. If true, any characters in the URI template that are not valid will be automatically encoded. If false, then all characters must be valid URI characters. By default, the encode attribute is set to true. (You can also encode the characters by hand.)
@Path(value="hello%20world", encode=false)
Copy to Clipboard Toggle word wrap
As with @Path.encode(), this controls whether the specified query parameter name should be encoded by the container before it tries to find the query parameter in the request.
@QueryParam(value="hello%20world", encode=false)
Copy to Clipboard Toggle word wrap
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat