[Advanced-java] Sending a Post from an applet to a servlet

Pollard, Jim Pollard at stats.com
Thu Apr 10 23:49:22 2003


posted variables are just printed in the body of the request rather than in
the URL of the request, so you'd do something like :


import java.net.URLEncoder;


URLConnection connection = XMLURL.openConnection();
XMLURL.setDefaultUseCaches(false);
XMLURL.setDoOutput(true);
XMLURL.setDoInput(true);

PrintWriter postWriter = new PrintWriter(XMLURL.getOutputStream());
postWriter.print(variableName+"="+URLEncoder.encode(variableValue)+"&"+
                 variableName2+"="+URLEncoder.encode(variableValue2)+"&"+
                 ...
                 );
postWriter.print("\r\n");
postWriter.flush();
postWriter.close();

InputStream is = connection.getInputStream();
 
InputStreamReader isr = new InputStreamReader( is );
BufferedReader br = new BufferedReader( isr );


that's sort of sketchy, because i can't find any exact code laying around
here, only bits and pieces.  in the past when i tried to use posting from
applets i found that netscape browsers (at least the older ones) cached the
connection for the applet no matter the value of the useCaches.  so i've
used querystring parameter passing exclusively for my applets, so that the
browser treats each different connection to the webpage as a different item.

-Jim P.



> -----Original Message-----
> From: Lorin Davis [mailto:ldavis@pangaeainc.com]
> Sent: Thursday, April 10, 2003 5:10 PM
> To: advanced-java@lists.xcf.berkeley.edu
> Subject: [Advanced-java] Sending a Post from an applet to a servlet
> 
> 
> 
> Hi all 
> 
> I have an applet that opens a URLConnection and a servlet 
> that receives this
> connection in the doGet () 
> I'm trying to change this to go through the doPost () with a 
> parameter added
> to the post.
> 
> Here's how I do my current communications
> 
> myapplet.java 
>   URL XMLURL = new
> URL("http://testserver/serlvets/myservlet?token=<?xml%20versio
> n="1.0"?><XML>
> <CMD>getXML</CMD></XML>");          
>   URLConnection connection = XMLURL.openConnection();
>   InputStream is = connection.getInputStream() ;
> 
>   InputStreamReader isr = new InputStreamReader( is );
>   BufferedReader br = new BufferedReader( isr );
> 
>   while ((bufferIn = br.readLine()) != null) {
>     xml = xml + bufferIn;
>   }
> 
> then on 
> myservlet.java
> there would be something like this
>   public void doGet(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException {
>     String token = request.getParameter(xmlParam);
>     // now do something with the xml that was passed in 
>   }
> 
> The problem is that we want to compress our tokenXML (as 
> sometimes it can be
> very long) before sending it to the servlet and not send it 
> as part of the
> URL instead send it as a parameter of a post.  
> 
> My understanding is you can send any type of data to a post 
> method as a
> parameter but I cannot figure out how to do this from an 
> applet yet any help
> would be much appreciated.
> 
> In an HTLM you would use the <FORM> tags and <INPUT TYPE> 
> tags to send data.
> 
> Thanks.
> _______________________________________________
> Advanced-java mailing list
> Advanced-java@lists.xcf.berkeley.edu
> http://lists.xcf.berkeley.edu/mailman/listinfo/advanced-java
>