Hi,
    Can you please answer this one also. When i try to send back a serialized
object back from Servet to My Applet then it gives a error saying that "Input
stream does not have a serialized object". I am using the same object which
implements serializable for both Input and Output. Do i need to set some special
parameters when sending back the data from the Servlet to Applet indicating that
it is a serialized object.
    What i want to do is like update the data into the model what ever was passed
to servlet and pass it back to the Applet. It is possible to do that. If Applet
has any security restrictions is it possible to do it in a Java Application.

Thanks
Sudhir

Mukul Gandhi wrote:

> Hi,
> I have worked on ur problem and have found a solution. Pl see the commented
> lines // for explanation.
>
> 1. portion of the Applet code :
>
> This I called in response to a button click in the Applet. But u may be
> calling this code on some other event.
>
> try
> {
>       //testServlet is the servlet I am invoking from the applet
>       //IP address 192.50.200.55 is where all my test servers are running, ur
>       //machine address will be different
>
>       URL myUrl = new URL ("http://192.50.200.55:8080/servlet/testServlet");
>       URLConnection con = myUrl.openConnection();
>
>       con.setDoInput(true);
>       con.setDoOutput(true);
>       con.setUseCaches(false);
>       con.setDefaultUseCaches(false);
>       con.setRequestProperty("Content-type", "application/octet-stream");
>
>       ObjectOutputStream out = new ObjectOutputStream(con.getOutputStream());
>       SBSRequest myObject = new SBSRequest(100);
>
>       //passing a serialized object to the servlet
>
>       out.writeObject(myObject);
>       out.close();
>
>       //the servlet recieves the serialized object , and writes its state
>       //along with HTML to a file fil.html. Applet is showing this file
>       //using showDocument function. The location http://192.50.200.55/ddir
>       //is mapped to the Java Web Server root directory where .html file is
>       //getting created by default. u can create .html file in some other
> directory                                                      //also and
> map it accordingly. The location http://192.50.200.55/ddir
>       //is identified by MS PWS in my case. u can also use JWS for this
> purpose
>       //also.
>
>       getAppletContext().showDocument(new
> URL("http://192.50.200.55/ddir/fil.html"));
> }
> catch(MalformedURLException ex)
> {
>      ex.printStackTrace();
> }
> catch(IOException ex)
> {
>      ex.printStackTrace();
> }
>
> 2. portion of the Servlet code :
>
> public void doPost(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException
> {
> try
> {
>       ObjectInputStream ins = new ObjectInputStream
> (request.getInputStream());
>       ObjectOutputStream outs = new
> ObjectOutputStream(response.getOutputStream());
>
>       SBSRequest sbsRequest = (SBSRequest)ins.readObject();
>       int data = sbsRequest.getData();
>       ins.close();
>
>       //servlet recieves the serialized object and creates a .html file for
>       //applet to show on the browser
>
>       FileWriter out = new FileWriter("fil.html");
>       out.write("<html>");
>       out.write("<head><title>testServlet</title></head>");
>       out.write("<body>");
>       out.write("<h2>"+data+"</h2>");
>       out.write("</body></html>");
>       out.close();
> }
> catch(ClassNotFoundException ex)
> {
>       ex.printStackTrace();
> }
>
> } //end of doPost
>
> 3. Code for SBSRequest class(u may be using a different class definition) :
>
> import java.io.*;
>
> public class SBSRequest implements Serializable
> {
>   int i;
>
>   SBSRequest(int ii)
>   {
>     i = ii;
>   }
>
>   public int getData()
>   {
>     return i;
>   }
>
> }
>
> Since ur doing POST from an Applet(using URLConnection), u cannot recieve
> HTML sent from the servlet by default on the browser { The HTTP response
> from the server is inside the applet in a Input stream and hence not
> available to the browser }. Therefore I have used an intermediate .html
> file to show HTML on the browser.
>
> Hope my soln solves ur problem.
>
> -mukul
>
> At 07:19 PM 8/11/99 +0100, you wrote:
> >        Hi all,
> >
> >I have a doubt and I think the answer is very simple..
> >I want to call a servlet from an applet with the method post in order to
> >send an object to the servlet, and I want the servlet responds whith an HTML
> >page. This page will show in the browser where the applet is..
> >
> >the source maybe like this :
> >
> >In the applet :
> >
> >    ....
> >    URL myUrl = new URL ("http://myserver:8080/servlet/myservlet");
> >    URLConnection con = myUrl.openConnection ();
> >
> >    con.setDoInput (true);
> >    con.setDoOutput (true);
> >    con.setUseCaches (false);
> >    con.setDefaultUseCaches (false);
> >    con.setRequestProperty ("Content-type", "application/octet-stream");
> >
> >    ObjectOutputStream out = new ObjectOutputStream (con.getOutputStream
> >());
> >    out.writeObject (myObject);
> >    out.close ();
> >    ....
> >
> >In the servlet :
> >
> >    public void doPost (HttpServletRequest request, HttpServletResponse
> >response) {
> >
> >    ObjectInputStream in = new ObjectInputStream (request.getInputStream
> >());
> >    ObjectOutputStream out = new ObjectOutputStream
> >(response.getOutputStream ());
> >
> >    SBSRequest sbsRequest = (SBSRequest)in.readObject ();
> >    in.close ();
> >
> >    response.setContentType ("text/html");
> >    PrintWriter out = response.getWriter ();
> >    out.println ("<html>");
> >    out. ....
> >    out.println ("</html>");
> >    out.close ();
> >
> >    }
> >
> >I tried this but the browser does not show the html page. Someone has done
> >this before ?
> >Thanks in advance,
> >
> >Juan Jose Martin
>
> ___________________________________________________________________________
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
> of the message "signoff SERVLET-INTEREST".
>
> Archives: http://archives.java.sun.com/archives/servlet-interest.html
> Resources: http://java.sun.com/products/servlet/external-resources.html
> LISTSERV Help: http://www.lsoft.com/manuals/user/user.html

___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html

Reply via email to