org.apache.struts2.util.tomcat.buf
Class UDecoder

java.lang.Object
  extended by org.apache.struts2.util.tomcat.buf.UDecoder

public final class UDecoder
extends Object

All URL decoding happens here. This way we can reuse, review, optimize without adding complexity to the buffers. The conversion will modify the original buffer.

Author:
Costin Manolache

Field Summary
static boolean ALLOW_ENCODED_SLASH
           
 
Constructor Summary
UDecoder()
           
 
Method Summary
 void convert(ByteChunk mb, boolean query)
          URLDecode, will modify the source.
 void convert(CharChunk mb, boolean query)
          In-buffer processing - the buffer will be modified
 void convert(MessageBytes mb, boolean query)
          URLDecode, will modify the source
 String convert(String str, boolean query)
           
static String URLDecode(byte[] bytes, String enc, boolean isQuery)
          Decode and return the specified URL-encoded byte array.
static String URLDecode(String str)
          Decode and return the specified URL-encoded String.
static String URLDecode(String str, String enc)
          Decode and return the specified URL-encoded String.
static String URLDecode(String str, String enc, boolean isQuery)
          Decode and return the specified URL-encoded String.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALLOW_ENCODED_SLASH

public static final boolean ALLOW_ENCODED_SLASH
Constructor Detail

UDecoder

public UDecoder()
Method Detail

convert

public void convert(ByteChunk mb,
                    boolean query)
             throws IOException
URLDecode, will modify the source.

Throws:
IOException

convert

public void convert(CharChunk mb,
                    boolean query)
             throws IOException
In-buffer processing - the buffer will be modified

Throws:
IOException

convert

public void convert(MessageBytes mb,
                    boolean query)
             throws IOException
URLDecode, will modify the source

Throws:
IOException

convert

public final String convert(String str,
                            boolean query)

URLDecode

public static String URLDecode(String str)
Decode and return the specified URL-encoded String. When the byte array is converted to a string, the system default character encoding is used... This may be different than some other servers. It is assumed the string is not a query string.

Parameters:
str - The url-encoded string
Throws:
IllegalArgumentException - if a '%' character is not followed by a valid 2-digit hexadecimal number

URLDecode

public static String URLDecode(String str,
                               String enc)
Decode and return the specified URL-encoded String. It is assumed the string is not a query string.

Parameters:
str - The url-encoded string
enc - The encoding to use; if null, the default encoding is used. If an unsupported encoding is specified null will be returned
Throws:
IllegalArgumentException - if a '%' character is not followed by a valid 2-digit hexadecimal number

URLDecode

public static String URLDecode(String str,
                               String enc,
                               boolean isQuery)
Decode and return the specified URL-encoded String.

Parameters:
str - The url-encoded string
enc - The encoding to use; if null, the default encoding is used. If an unsupported encoding is specified null will be returned
isQuery - Is this a query string being processed
Throws:
IllegalArgumentException - if a '%' character is not followed by a valid 2-digit hexadecimal number

URLDecode

public static String URLDecode(byte[] bytes,
                               String enc,
                               boolean isQuery)
Decode and return the specified URL-encoded byte array.

Parameters:
bytes - The url-encoded byte array
enc - The encoding to use; if null, the default encoding is used. If an unsupported encoding is specified null will be returned
isQuery - Is this a query string being processed
Throws:
IllegalArgumentException - if a '%' character is not followed by a valid 2-digit hexadecimal number


Copyright © 2000–2018 Apache Software Foundation. All rights reserved.