servlets - HttpServletRequest#getReader() is empty in GlassFish 4 -
i have strange problem under glassfish 4. i'm sending raw data in post request (using jquery) servlet. reading data in dopost through request.getreader() fail reader empty (-1 returned immediately). if change code:
reader reader = request.getreader(); to:
bufferedreader reader = new bufferedreader( new inputstreamreader( request.getinputstream() ) ); is succeed. note request.getreader() not empty when using tomcat 6,7 or jetty. have idea wrong glassfish 4? here complete simple snippet demonstrate issue:
package test.servlet; import java.io.ioexception; import java.io.reader; import java.io.writer; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; public class testservlet extends httpservlet { @override protected void doget( httpservletrequest request, httpservletresponse response ) throws servletexception, ioexception { writeinitialpage( response ); } @override protected void dopost( httpservletrequest request, httpservletresponse response ) throws servletexception, ioexception { writedata( response, readdata( request ) ); } private void writedata( httpservletresponse response, string data ) throws ioexception { writer writer = response.getwriter(); for( int = 0; < data.length(); i++ ) { writer.write( data.charat( ) ); } } private string readdata( httpservletrequest request ) throws ioexception { reader reader = request.getreader(); // bufferedreader reader = new bufferedreader( new inputstreamreader( request.getinputstream() ) ); stringbuilder buffer = new stringbuilder(); int current = reader.read(); while( current != -1 ) { char ch = ( char )current ; buffer.append( ch ); current = reader.read(); } reader.close(); return buffer.tostring(); } private void writeinitialpage( httpservletresponse response ) throws ioexception { writer writer = response.getwriter(); writer.write( "<html>" ); writer.write( "<head>" ); writer.write( "<script type=\"text/javascript\" src=\"/test/js/jquery-1.10.2.min.js\"></script>" ); writer.write( "</head>" ); writer.write( "<body>" ); writer.write( "<button type=\"button\" onclick=\"" ); writer.write( "$.ajax('/test/test',{" ); writer.write( "'data': 'data1 data2 data3 data4 data5 data6 data7 data8 data9 data10'," ); writer.write( "'type': 'post'," ); writer.write( "'processdata': false," ); writer.write( "'contenttype': 'text/plain'" ); writer.write( "});" ); writer.write( "\">send</button>" ); writer.write( "</body>" ); writer.write( "</html>" ); } }
Comments
Post a Comment