Solved

URLConnection/getOutputStream in Applet init/start

Posted on 2000-05-12
11
586 Views
Last Modified: 2008-02-26
I have attempted to make a URLConnection to a servlet at the same address as the servlet that launched an applet(I have confirmed the address via getDocumentBase, both are on my PC) in the applet's init and start methods.  The connection appears to work but when I do a getOutputStream (also in the applet's init and start methods) on the URLConnection I get a SecurityException (cannot access localhost).  An URLConnection/getOutputStream to the same servlet works in a method that executes after init and start have completed.
0
Comment
Question by:SDeprez
  • 6
  • 5
11 Comments
 
LVL 7

Expert Comment

by:Ravindra76
ID: 2804855
Visit this for more info

http://www.j-nine.com/pubs/applet2servlet/  

Solution:-

int servletport = 8080; //Replace Ur servlet port
URLConnection con = new URL("http://"+getCodeBase().getHost()+":"+servletport+
"/servlet/YourServlet").openConection();

i.e just replace

localhost

with

getCodeBase().getHost()
0
 

Author Comment

by:SDeprez
ID: 2804981
getCodeBase returns the directory that the applet was loaded from (i.e. file://D:/Projects/projectname).  In this case, getCodeBase().getHost() isn't returning anything.  getDocumentBase returns the URL for the servlet that loaded this applet (i.e. http://localhost:8080/servlet/servletname).  The servlet I'm connecting to has the same URL for the exception of the servletname.
0
 
LVL 7

Expert Comment

by:Ravindra76
ID: 2805014
Note one point:-

      The only way the applet will connect to servlet unless it is signed is with

      server name as getCodeBasse().getHost().

Since U are not using webserver , U are getting d:\..\..\.

Don't run applet like that.

Load Your applet from webserver

Then only it will work.

Applet when executing in browser will feel localhost as also as remove server.
It won't know that that is the server from which it is downloaded.
0
 

Author Comment

by:SDeprez
ID: 2805904
Adjusted points from 50 to 75
0
 

Author Comment

by:SDeprez
ID: 2805905
Then why does this work ok when I put the URLConnection/getOutputStream in an applet method other than init or start?
0
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 
LVL 7

Expert Comment

by:Ravindra76
ID: 2805967

Are U using Browser or AppletViewer??

IE or NEtscape ??
0
 
LVL 7

Expert Comment

by:Ravindra76
ID: 2805971
I told all the matter for browsers.
0
 

Author Comment

by:SDeprez
ID: 2806012
I'm using IE with servletrunner.  

I'm afraid I don't totally understand your answer.  Are you saying that since init and start are invoked by the browser (and the other methods are not) that the URLConnect/getOutputStream work differently?  

I do appreciate your assistance!!!
0
 
LVL 7

Expert Comment

by:Ravindra76
ID: 2806377
once an applet connected to servlet,

it won't connect again. It will give U exception.


getCodeBase() like functions are available after applet is inited.
0
 

Author Comment

by:SDeprez
ID: 2810863
I think you just answered my question.  Let me know if I understand you correctly.  In a nutshell, getCodeBase, URLConnection, etc. are not available until after an applet's start and init methods have completed?  
0
 
LVL 7

Accepted Solution

by:
Ravindra76 earned 75 total points
ID: 2811630
Applet has no constructors:- ( We won't use but we can use and not recommonded..)

>The browser invokes your constructor, then setStub, then init(). Hence when your constructor is
invoked, the AppletStub (and through it the AppletContext) is not yet available. Although in principle you
can do things in the constructor that don't  rely (even indirectly) on the AppletStub or AppletContext, it is
less error-prone to simply defer all setup to the init method. That way you know that anything that needs
the stub/context will have it available.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

For customizing the look of your lightweight component and making it look lucid like it was made of glass. Or: how to make your component more Apple-ish ;) This tip assumes your component to be of rectangular shape and completely opaque. (COD…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now