Class URLEncoder

java.lang.Object
org.apache.catalina.util.URLEncoder
All Implemented Interfaces:
Cloneable

public final class URLEncoder extends Object implements Cloneable
This class is very similar to the java.net.URLEncoder class. Unfortunately, with java.net.URLEncoder there is no way to specify to the java.net.URLEncoder which characters should NOT be encoded. This code was moved from DefaultServlet.java
  • Field Details

    • DEFAULT

      public static final URLEncoder DEFAULT
      Pre-configured encoder for URI paths.
    • QUERY

      public static final URLEncoder QUERY
      Pre-configured encoder for query strings.
  • Constructor Details

    • URLEncoder

      public URLEncoder()
      Constructs a new URLEncoder with alphanumeric characters as safe.
  • Method Details

    • addSafeCharacter

      public void addSafeCharacter(char c)
      Marks the given character as safe (not requiring encoding).
      Parameters:
      c - the character
    • removeSafeCharacter

      public void removeSafeCharacter(char c)
      Removes the given character from the set of safe characters.
      Parameters:
      c - the character
    • setEncodeSpaceAsPlus

      public void setEncodeSpaceAsPlus(boolean encodeSpaceAsPlus)
      Sets whether space characters should be encoded as '+' instead of '%20'.
      Parameters:
      encodeSpaceAsPlus - true to use '+' for spaces
    • encode

      public String encode(String path, Charset charset)
      URL encodes the provided path using the given character set.
      Parameters:
      path - The path to encode
      charset - The character set to use to convert the path to bytes
      Returns:
      The encoded path
    • clone

      public Object clone()
      Overrides:
      clone in class Object