You are on page 1of 12

Java applets

M. L. Liu

01/13/24 Distributed Computing, M. L. Liu 1


Introduction
Java applets are one of three kinds of Java
programs:
 An application is a standalone program that can be
invoked from the command line.
 An applet is a program that runs in the context of a
browser session.
 A servlet is a program that is invoked on demand on a
server program and that runs in the context of a web
server process.

01/13/24 Distributed Computing, M. L. Liu 2


Applets, web page, client, server
 Applets are programs stored on a web server, similar to web pages.
 When an applet is referred to in a web page that has been fetched and
processed by a browser, the browser generates a request to fetch (or
download) the applet program, then executes the program in the browser’s
execution context, on the client host.
s e r ve r ho s t
br o w s e r ho s t
we b s e rv e r
bro ws e r
re qe u s t fo r
m y W e bPa g e .h tm l

m y W e bPa g e .h tm l
m y W e bPa g e .h tm l H e llo W o rld.cla s s
... re qu e s t fo r
< a pple t co de = H e llo W o rld.cla s s < /a pple t> H e llo W o rldcla s s
...
H e llo W o rld.cla s s H e llo W o rld.cla s s

01/13/24 Distributed Computing, M. L. Liu 3


Applet Execution - 1
 An applet program is a written as a subclass of the
java.Applet class or the javax.swing.Japplet class.
There is no main method: you must override the
start method. Applet objects uses AWT for graphics.
JApplet uses SWING.
 It is a Grapics object that runs in a Thread object, so
every applet can perform graphics, and runs in
parallel to the browser process.

01/13/24 Distributed Computing, M. L. Liu 4


Applet Execution
 When the applet is loaded, these methods are automatically
invoked in order:
 the init( ) method is invoked by the Java Virtual Machine.

 The start( ) method

 The paint( ) method.

 The applet is now running and rendered on the web page.


 You program the start( ) method and the paint( ) method for
your application, and invoke a repaint call to re-render the
graphics, if necessary.
 At the end of the execution, the stop( ) method is invoked,
followed by the destry( ) method to deallocate the applet’s
resources.

01/13/24 Distributed Computing, M. L. Liu 5


Applet Security
http://java.sun.com/docs/books/tutorial/applet/overview/

For security reasons, applets that are loaded over


the network have several restrictions.
 an applet cannot ordinarily read or write files

on the computer that it's executing on.


 an applet cannot make network connections

except to the host that it came from.

01/13/24 Distributed Computing, M. L. Liu 6


HTML tags for applets - 1
<APPLET specifies the beginning of the HTML applet code

CODE="demoxx.class" is the actual name of the applet (usually a


'class' file)
CODEBASE="demos/" is the location of the applet (relative as here,
or a full URL)
NAME="smily" the name you want to give to this instance of the
applet on this page
WIDTH="100" the physical width of the applet on your page
HEIGHT="50" the physical height of the applet on your page
ALIGN="Top" where to align the applet within its page space (top,
bottom, center)

01/13/24 Distributed Computing, M. L. Liu 7


HTML tags for applets - 2
<PARAM specifies a parameter that can be passed to the applet
NAME=“name1" the name known internally by the applet in order to
receive this parameter
VALUE="000000" the value you want to pass for this parameter
> end of this parameter
<PARAM specifies a parameter that can be passed to the applet (applet
specific)
NAME=“name2" the name known internally by the applet in order to
receive this parameter
VALUE="ffffff" the value you want to pass for this parameter
> end of this parameter

</APPLET> specifies the end of the HTML applet code

01/13/24 Distributed Computing, M. L. Liu 8


The HelloWorld Applet
<HTML> public void paint(Graphics g){
<BODY> final int FONT_SIZE = 42;
<APPLET code=hello.class width=900
height=300> Font font = new
</APPLET> Font("Serif", Font.BOLD,
</BODY> FONT_SIZE);
</HTML>
// set font, and color and display
// applet to display a message in a message on
window // the screen at position 250,150
import java.awt.*; g.setFont(font);
import java.applet.*; g.setColor(Color.blue);
// The message in the next line is
public class hello extends Applet{ the one you will see
public void init( ){ g.drawString("Hello,
world!",250,150);
setBackground(Color.yellow); }
} }
01/13/24 Distributed Computing, M. L. Liu 9
Advanced Applets
 You can use threads in an applet.
 You can make socket calls in an applet, subject to the security constraints.

S e r ve r h o s t C l i e nt ho st
H TTP s e rv e r bro ws e r

a p p le t d o w n lo a d
s erv er Y a llo w e d
c o n n e c tio n r e q u e s t a pple t

f o r b id d e n
H ost X
c o n n e c tio n r e q u e s t
s erv er Z

01/13/24 Distributed Computing, M. L. Liu 10


Proxy server
A proxy server can be used to circumvent the security constraints.
Se r ve r ho s t C l i e nt ho s t
H TTP s e rv e r bro ws e r

ap p let d o w n lo ad
s er v er Y
c o n n ec tio n r eq u es t a pple t

H o st X
c o n n ec tio n r eq u es t
s er v er Z

01/13/24 Distributed Computing, M. L. Liu 11


Summary
 An applet is a Java class
 Its code is downloaded from a web server
 It is run in the browser’s environment on the client host
 It is invoked by a browser when it scans a web page and
encounters a class specified with the APPLET tag
 For security reason, the execution of an applet is
normally subject to restrictions:
 applets cannot access files in the file system on the client host
 Applets cannot make network connection exception to the
server host from which it originated

01/13/24 Distributed Computing, M. L. Liu 12

You might also like