tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Hanik - Dev Lists <devli...@hanik.com>
Subject Re: how to send http response in several chunked package with Tomcat
Date Thu, 28 Feb 2008 15:51:19 GMT
//first flush headers
response.flushBuffer()
//then flush body
while (havedata) {
  response.getOutputStream().println(some data)
  response.flushBuffer()
}

you need to put your thinker hat on Hanks :)

Hanks Wang (hanwan) wrote:
> Hi Filip,
> Seems the method has a problem : tomcat puts the http header and part of
> the body in the same chunk.
>
> But I hope to generate the response in below format:
> Suppose I need use String tmp as the response, tmp = part1 + part2 +
> part3+part4;
> we use 4 tcp frame totally for the http response:
>
> Frame 1: only carry the httpheader, no chunk in the frame
> Frame 2: includes the first chunk, carries part1+part2;
> Frame 3: includes the second chunk, carries part3+part4;
> Frame 4: includes a chunk whose length is 0, tells client it's the end
> of chunks;
>
> However Tomcat generate the response in such way:
> Frame 1: includes httpheader and the first chunk, 1st chunk carries
> part1;
> Frame 2: includes part2 + part3;
> Frame3 and Frame4 are same with above;
>
> So how can I make sure there is only http header in the first frame?
>
> Thanks.
> Han
>  
>
> -----Original Message-----
> From: Hanks Wang (hanwan) 
> Sent: Thursday, February 28, 2008 10:26 PM
> To: Tomcat Users List
> Subject: RE: how to send http response in several chunked package with
> Tomcat
>
> Hi Filip,
>
> Yes it works. Thanks a lot!
>
> Christopher, in fact I'm writing a servlet to fool a management
> software, So I need make sure the servlet response is as close to real
> device as possible.
>
> Thanks for everyone's help.
>
> B.R
> Han
> -----Original Message-----
> From: Filip Hanik - Dev Lists [mailto:devlists@hanik.com]
> Sent: Wednesday, February 27, 2008 11:24 PM
> To: Tomcat Users List
> Subject: Re: how to send http response in several chunked package with
> Tomcat
>
> you don't need to do that, tomcat does it for you.
> all you need to do is
>
> while (havedata) {
>   response.getOutputStream().println(some data)
>   response.flushBuffer()
> }
>
> and tomcat takes care of the rest
>
> Filip
>
> Hanks Wang (hanwan) wrote:
>   
>> Hi Johnny,
>>
>> I try below method implement the chunk in code:
>>
>> String tmp = "something very long";
>>
>> String hlen = Integer.toHexString(tmp.length());
>> hlen = hlen +"\r\n" + tmp.toString();
>> String chunkend = Integer.toHexString(0)+"\r\n"; 
>> response.getOutputStream().println(hlen);
>> response.getOutputStream().println(chunkend);
>>
>> I created two http chunk successfully by this way. The first chunk is 
>> the data which wraps tmp, the second is the end chunk.
>>
>> But the question is, all these chunk and http header are in same frame
>>     
>
>   
>> (get it from wireshark.).
>>
>> How can I put them in different frame?
>> Which means we need 3 frame for the case: the first frame will carry 
>> the http header, the second will carry the first chunk data, the last 
>> frame will carry the end chunk.
>>
>> Does it mean I need control the tcp/ip protocol? It's impossible,
>>     
> right?
>   
>> B.R
>> Han
>>
>>  
>>
>> -----Original Message-----
>> From: Hanks Wang (hanwan)
>> Sent: Wednesday, February 27, 2008 3:40 PM
>> To: Tomcat Users List
>> Subject: RE: how to send http response in several chunked package with
>>     
>
>   
>> Tomcat
>>
>> Hi Johnny,
>>
>> Thanks a lot. I read the http RFC and find something like this:
>>
>> The chunk-size field is a string of hex digits indicating the size of 
>> the chunk. The chunked encoding is ended by any chunk whose size is 
>> zero, followed by the trailer, which is terminated by an empty line.
>>
>> Do u have any tutorial of ChunkedOutputFilter? I can't find anything 
>> from its API document..
>>
>> Thanks
>> Han
>>
>>
>> -----Original Message-----
>> From: Johnny Kewl [mailto:john@kewlstuff.co.za]
>> Sent: Tuesday, February 26, 2008 7:41 PM
>> To: Tomcat Users List
>> Subject: Re: how to send http response in several chunked package with
>>     
>
>   
>> Tomcat
>>
>>
>> ----------------------------------------------------------------------
>> --
>> ---
>> HARBOR: http://coolharbor.100free.com/index.htm
>> The most powerful application server on earth.
>> The only real POJO Application Server.
>> Making the Java dream come true.
>> ----------------------------------------------------------------------
>> --
>> ---
>> ----- Original Message -----
>> From: "Hanks Wang (hanwan)" <hanwan@cisco.com>
>> To: "Tomcat Users List" <users@tomcat.apache.org>
>> Sent: Tuesday, February 26, 2008 12:02 PM
>> Subject: how to send http response in several chunked package with 
>> Tomcat
>>
>>
>> Hi all,
>>
>> Is there a way to make tomcat generate http response in 
>> chunked-encoding style?
>>
>> suppose I have a file resp.log and I can parse it in byte[], how can I
>>     
>
>   
>> send the byte array in several chunked package?
>>
>> --------
>> Hanks I have just started looking at this, so no expert but I did 
>> notice
>>
>> ChunkedInputFilter,ChunkedOutputFilter....
>>
>> I think your answer is in setting a filter.... in normal Http I notice
>>     
>
>   
>> that chunking happens automatically if header size ommited, but with 
>> so much control of the socket I think you have to pump it thru a 
>> filter and then there must be a way to say last chuck... and start 
>> chuck...
>> Short of that one would have to set headers themselves and add 
>> trailing 0's and end sequences, so I think those classes are specific 
>> to http11
>>
>> .... a guess
>>
>> Any suggestion is welcome!
>>
>> Thanks
>> Han
>>
>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe,
>> e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe,
>> e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe,
>> e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>>   
>>     
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe,
> e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe,
> e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
>   


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message