Win a copy of Learn Spring Security (video course) this week in the Spring forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Forwarding ServletInputStream

 
Kannan Plr
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all,
I searched the forum to fix the problem which iam facing on ServletInputStream.
I want to read the servletinputstream.
But the method
servletinputstream.available() is returning me "0" bytes.
Contrarily
request.getContentLength() is returning me "268" bytes.
my requirement is to read the servletinputstream and forward that stream to an application residing in the different server through URL connection. But iam failing in read() itself.
Here is my code
Iam submitting the following form to an JSP (ReadForm.jsp)
<form action="ReadForm.jsp" method="post" enctype="multipart/form-data">
<input type=text name='uname'><br>
<input type=password name='pword'><br>
<input type=hidden name='pagename' value="WPS/ReadForm"><br>
<input type=file>
<input type=submit><br>
</form>
ReadForm.jsp contains following code
InputStream sis = request.getInputStream();
int noofBytes = sis.available();
out.println("no of bytes" + noofBytes);
out.println("<br>contentlength " +request.getContentLength())

The output is
no of bytes 0
contentlength 389

please tell me where iam going wrong?

Thanks,
Regards,
PLR.Kannan
 
Stan James
(instanceof Sidekick)
Ranch Hand
Posts: 8791
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Someone pointed out to me that available() is unreliable for raw streams, maybe for servlet input stream as well. It may return 0 if its current buffer is exhausted, but that doesn't mean it can't read another buffer later. The OReilly multipart reader http://www.servlets.com/cos/index.html uses the reader ... it might serve as an example of doing it.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic