tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cos...@apache.org
Subject cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/core Request.java
Date Tue, 06 Feb 2001 06:29:19 GMT
costin      01/02/05 22:29:19

  Modified:    src/share/org/apache/tomcat/core Request.java
  Log:
  Corresponding changes in Request - the parameter representation and handling
   is now encapsulated in Parameters.
  
  The Request and RequestDispatcher will create and manipulate Parameters,
  by adding data ( handlePostParameters() is a special case that will
  "feed" all the post body to Parameters ). Parameters are not dealing with
  reading data or anything similar - just store and manipulate params.
  
  Revision  Changes    Path
  1.88      +30 -57    jakarta-tomcat/src/share/org/apache/tomcat/core/Request.java
  
  Index: Request.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Request.java,v
  retrieving revision 1.87
  retrieving revision 1.88
  diff -u -r1.87 -r1.88
  --- Request.java	2001/01/14 20:23:04	1.87
  +++ Request.java	2001/02/06 06:29:19	1.88
  @@ -135,9 +135,9 @@
       protected MimeHeaders headers;
   
       // Processed information ( redundant ! )
  -    protected Hashtable parameters = new Hashtable();
  +    protected Parameters params=new Parameters();
  +    //    protected Hashtable parametersH = new Hashtable();
       protected boolean didReadFormData;
  -    protected boolean didParameters;
   
       protected int contentLength = -1;
       protected String contentType = null;
  @@ -192,6 +192,8 @@
       public Request() {
    	headers = new MimeHeaders();
   	scookies = new Cookies( headers );
  +	params.setQuery( queryMB );
  +	params.setHeaders( headers );
   	initRequest(); 	
       }
   
  @@ -319,26 +321,31 @@
   
   
       // -------------------- Parameters --------------------
  -    
  -    // XXX optimize for common case ( single params )
  -    public String getParameter(String name ) {
  -	String[] values = getParameterValues(name);
  -        if (values != null) {
  -            return values[0];
  -        } else {
  -	    return null;
  -        }
  -    }
   
  -    public String[] getParameterValues(String name) {
  -	handleParameters();
  -        return (String[])parameters.get(name);
  +    /** Read the body, if POST, and add the post parameters.
  +     *  Before this method is called, only query-line parameters
  +     *  are available.
  +     */
  +    public void handlePostParameters() {
  +	int needData=params.needContent();
  +
  +	if( needData > 0 ) {
  +	    try {
  +		byte[] formData = new byte[needData];
  +		readBody( formData, needData );
  +		params.processData( formData );
  +	    } catch(IOException ex ) {
  +		// XXX should we throw exception or log ?
  +		return;
  +	    }
  +	}
       }
   
  -    public Enumeration getParameterNames() {
  -	handleParameters();
  -        return parameters.keys();
  +    public Parameters parameters() {
  +	return params;
       }
  +    
  +
   
       // -------------------- encoding/type --------------------
   
  @@ -598,15 +605,6 @@
   	this.container=container;
       }
   
  -    public void setParameters( Hashtable h ) {
  -	if(h!=null)
  -	    this.parameters=h;
  -    }
  -
  -    public Hashtable getParameters() {
  -	return parameters;
  -    }
  -
       // -------------------- Attributes
       
       public Object getAttribute(String name) {
  @@ -693,35 +691,10 @@
       }
   
       // -------------------- Utils - facade for RequestUtil
  -    private void handleParameters() {
  -   	if(!didParameters) {
  -	    String qString=queryString().toString();
  -	    if(qString!=null) {
  -		didParameters=true;
  -		Parameters.processFormData( qString, parameters );
  -	    }
  -	}
  -	if (!didReadFormData) {
  -	    didReadFormData = true;
  -	    int len=Parameters.formContentLength( getContentType(),
  -						  getContentLength());
  -	    if( len > 0 ) {
  -		// based on HttpUtils, very ,very slow and bad
  -		byte[] formData = new byte [contentLength];
  -		try {
  -		    readBody( formData, contentLength );
  -		} catch(IOException ex ) {
  -		    return;
  -		}
   
  -		Hashtable postParameters=Parameters.processFormData(formData);
  -		parameters = Parameters.mergeParameters(parameters,
  -							postParameters);
  -	    }
  -	}
  -    }
  -
  -    private int readBody(byte body[], int len)
  +    /** Read request data, filling a byte[]
  +     */
  +    public int readBody(byte body[], int len)
   	throws IOException
       {
   	int offset = 0;
  @@ -810,7 +783,8 @@
       public void initRequest() {
           context = null;
           attributes.clear();
  -        parameters.clear();
  +	//        parametersH.clear();
  +	params.recycle();
   	contentLength = -1;
           contentType = null;
           charEncoding = null;
  @@ -819,7 +793,6 @@
   	principal = null;
           reqSessionId = null;
           serverSession = null;
  -        didParameters = false;
           didReadFormData = false;
           container=null;
           handler=null;
  
  
  

Mime
View raw message