cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From froehl...@apache.org
Subject cvs commit: xml-cocoon2/src/java/org/apache/cocoon/environment/http HttpRequest.java HttpEnvironment.java
Date Wed, 13 Feb 2002 09:35:11 GMT
froehlich    02/02/13 01:35:11

  Modified:    src/java/org/apache/cocoon/environment/http HttpRequest.java
                        HttpEnvironment.java
  Log:
  applied patch from  MIYABE Tatsuhiko [miyabe@jzf.co.jp].
  Form encoding enhancement!
  
  Revision  Changes    Path
  1.3       +45 -3     xml-cocoon2/src/java/org/apache/cocoon/environment/http/HttpRequest.java
  
  Index: HttpRequest.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/http/HttpRequest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- HttpRequest.java	4 Feb 2002 09:45:07 -0000	1.2
  +++ HttpRequest.java	13 Feb 2002 09:35:11 -0000	1.3
  @@ -70,7 +70,7 @@
    * to provide request information for HTTP servlets.
    *
    * @author <a href="mailto:giacomo@apache,org">Giacomo Pati</a>
  - * @version CVS $Id: HttpRequest.java,v 1.2 2002/02/04 09:45:07 cziegeler Exp $
  + * @version CVS $Id: HttpRequest.java,v 1.3 2002/02/13 09:35:11 froehlich Exp $
    */
   
   public class HttpRequest implements Request {
  @@ -81,6 +81,12 @@
       /** The HttpEnvironment object */
       private HttpEnvironment env = null;
   
  +    /** The character encoding of parameters */
  +    private String form_encoding = null;
  +
  +    /** The default form encoding of the servlet container */
  +    private String container_encoding = null;
  +
       /**
        * Creates a HttpServletRequest based on a real HttpServletRequest object
        */
  @@ -245,6 +251,18 @@
           return this.req.getCharacterEncoding();
       }
   
  +    public void setCharacterEncoding(String form_encoding)
  +    throws java.io.UnsupportedEncodingException {
  +        this.form_encoding = form_encoding;
  +    }
  +
  +    /**
  +     * Sets the default encoding of the servlet container.
  +     */
  +    public void setContainerEncoding(String container_encoding) {
  +        this.container_encoding = container_encoding;
  +    }
  +
       public int getContentLength() {
           return this.req.getContentLength();
       }
  @@ -258,7 +276,23 @@
       }
   
       public String getParameter(String name) {
  -        return this.req.getParameter(name);
  +        String value = this.req.getParameter(name);
  +            if (this.form_encoding == null) {
  +                return value;
  +            }
  +            return decode(value);
  +    }
  +
  +    private String decode(String str) {
  +        try {
  +            if (this.container_encoding == null)
  +                this.container_encoding = "ISO-8859-1";
  +            byte[] bytes = str.getBytes(this.container_encoding);
  +            return new String(bytes, form_encoding);
  +        } catch (java.io.UnsupportedEncodingException uee) {
  +            throw new RuntimeException("Unsupported Encoding Exception: " +
  +            uee.getMessage());
  +        }
       }
   
       public Enumeration getParameterNames() {
  @@ -266,7 +300,15 @@
       }
   
       public String[] getParameterValues(String name) {
  -        return this.req.getParameterValues(name);
  +        String[] values = this.req.getParameterValues(name);
  +        if (this.form_encoding == null) {
  +            return values;
  +        }
  +        String[] decoded_values = new String[values.length];
  +        for (int i = 0; i < values.length; ++i) {
  +            decoded_values[i] = decode(values[i]);
  +        }
  +        return decoded_values;
       }
   
       public String getProtocol() {
  
  
  
  1.6       +7 -3      xml-cocoon2/src/java/org/apache/cocoon/environment/http/HttpEnvironment.java
  
  Index: HttpEnvironment.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/http/HttpEnvironment.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- HttpEnvironment.java	7 Feb 2002 08:59:17 -0000	1.5
  +++ HttpEnvironment.java	13 Feb 2002 09:35:11 -0000	1.6
  @@ -71,7 +71,7 @@
   
   /**
    * @author ?
  - * @version CVS $Id: HttpEnvironment.java,v 1.5 2002/02/07 08:59:17 cziegeler Exp $
  + * @version CVS $Id: HttpEnvironment.java,v 1.6 2002/02/13 09:35:11 froehlich Exp $
    */
   public class HttpEnvironment extends AbstractEnvironment implements Redirector {
   
  @@ -103,11 +103,15 @@
                               HttpServletRequest req,
                               HttpServletResponse res,
                               ServletContext servletContext,
  -                            HttpContext context)
  -    throws MalformedURLException, IOException {
  +                            HttpContext context,
  +                            String containerEncoding,
  +                            String defaultFormEncoding)
  +     throws MalformedURLException, IOException {
           super(uri, req.getParameter(Constants.VIEW_PARAM), rootURL, req.getParameter(Constants.ACTION_PARAM));
   
           this.request = new HttpRequest (req, this);
  +        this.request.setCharacterEncoding(defaultFormEncoding);
  +        this.request.setContainerEncoding(containerEncoding);
           this.response = new HttpResponse (res);
           this.webcontext = context;
           this.outputStream = response.getOutputStream();
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org


Mime
View raw message