ParameterUtil.java

package allaire.samples.invoice;

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
 * Internationalized versions of ServletRequest's parameter methods.
 **/
public class ParameterUtil
{
    /**
     * Internationalized version of ServletRequest.getParameter().  Uses the response
     * object's character encoding to encode the parameter.
     **/
    public static String getParameterWithEncoding(ServletRequest request, ServletResponse response, String key)
    {
        String val = null;
        try
        {
            val = request.getParameter(key);
            if (val == null)
            {
                return val;
            } else
            {
                return new String(val.getBytes("ISO-8859-1"),
                                  response.getCharacterEncoding());
            }
        }
        catch (Exception ex)
        {
            return val;
        }
    }

    /**
     * Internationalized version of ServletRequest.getParameterValues().  Uses the response
     * object's character encoding to encode the parameters.
     **/
    public static String[] getParameterValuesWithEncoding(ServletRequest request, ServletResponse response, String key)
    {
        String[] values = request.getParameterValues(key);
        if (values != null)
        {
            for (int i = 0;i < values.length;i ++)
            {
                try
                {
                    values[i] = new String(values[i].getBytes("ISO-8859-1"),
                                           response.getCharacterEncoding());
                }
                catch (Exception ex)
                { // ingore Exception, values[i] will just be null
                }
            }
        }
        return values;
    }
}