What is the difference between Java Applet and HTML?

What is the difference between Java Applet and HTML?

Here's an explanation of the difference between executing an applet with appletviewer and through an HTML file:

Java Applet: Applets are small Internet-based program written in Java, a programming language for the web, which can be downloaded by any computer.

The applet is also able to run in an HTML file that the Applet is embedded within, provided that the browser running the HTML file has a Java Virtual Machine (JVM).

  1. appletviewer: This is a command line tool from the JDK (Java Development Kit) that allows you to run applets outside of a web browser. When you run an applet using the appletviewer tool, it does not need to be embedded within an HTML file; instead, it can be launched directly.

  2. HTML file: On the other hand, applets can also be embedded within HTML files. To run the applet, you would open the HTML file in a web browser that has a JVM. The browser reads the HTML file, comes across the applet tag (which has been deprecated in HTML5, by the way, and replaced by the object tag), and runs the applet within the web page.

There are some key differences in executing an applet with appletviewer versus through an HTML file in a web browser:

  • Compatibility and Convenience: HTML file approach will work on any browser with a JVM, so it's more compatible and convenient for end users.

  • Security Restrictions: Applets run in a browser have stricter security restrictions, because they run within a sandbox to prevent unauthorized activities. For example, an applet cannot access local file system of the viewer's computer unless granted permission. However, with appletviewer, these restrictions may not be as stringent.

  • Deprecation: As of 2021, many modern web browsers do not support applets at all due to security reasons and because the technology has been deprecated. appletviewer is typically used now only for testing during development, rather than for actual deployment of applets.

Note: With Java 9, the appletviewer command is deprecated and may not be included in future JDK.

Oracle, the maintainers of Java, have planned to remove the Applet API in the future due to the move away from applets in modern web development.

Replies

  • shalini_goel14
    shalini_goel14
    Hi Raviteja,

    Welcome back to CE. 😀

    A very good question.[​IMG]

    As much to my knowledge in one sentence: Unlike html code, applets are intelligent programs. Html code has very limited functionality.
  • Kaustubh Katdare
    Kaustubh Katdare
    If you are willing to accept an answer from non-computer engineer; here it goes 😉 -

    1. HTML is Hyper Text Markup Language. Remember -it is NOT programming! It's just putting 'marks' around the text so as to make it look beautiful as a web page.

    Here's how HTML looks (note, its just putting up tags around the text)

    
    
    The content of the body element is displayed in your browser.
    
    


    2. Applet on the other hand is a JAVA program that is 'embedded' in the HTML code to provide 'functionality' (note the quotes!) to the web page.

    Here's a sample applet code taken from Source: #-Link-Snipped-#
    /*
     * @(#)ArcTest.java	1.5 98/06/29
     *
     * Copyright (c) 1997, 1998 Sun Microsystems, Inc. All Rights Reserved.
     *
     * Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
     * modify and redistribute this software in source and binary code form,
     * provided that i) this copyright notice and license appear on all copies of
     * the software; and ii) Licensee does not utilize the software in a manner
     * which is disparaging to Sun.
     *
     * This software is provided "AS IS," without a warranty of any kind. ALL
     * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
     * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
     * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
     * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
     * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
     * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
     * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
     * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
     * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
     * POSSIBILITY OF SUCH DAMAGES.
     *
     * This software is not designed or intended for use in on-line control of
     * aircraft, air traffic, aircraft navigation or aircraft communications; or in
     * the design, construction, operation or maintenance of any nuclear
     * facility. Licensee represents and warrants that it will not use or
     * redistribute the Software for such purposes.
     */
    
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    
    /**
     * An interactive test of the Graphics.drawArc and Graphics.fillArc
     * routines. Can be run either as a standalone application by
     * typing "java ArcTest" or as an applet in the AppletViewer.
     */
    public class ArcTest extends Applet {
        ArcControls controls;   // The controls for marking and filling arcs
        ArcCanvas canvas;       // The drawing area to display arcs
    
        public void init() {
    	setLayout(new BorderLayout());
    	canvas = new ArcCanvas();
    	add("Center", canvas);
    	add("South", controls = new ArcControls(canvas));
        }
    
        public void destroy() {
            remove(controls);
            remove(canvas);
        }
    
        public void start() {
    	controls.setEnabled(true);
        }
    
        public void stop() {
    	controls.setEnabled(false);
        }
    
        public void processEvent(AWTEvent e) {
            if (e.getID() == Event.WINDOW_DESTROY) {
                System.exit(0);
            }
        }
    
        public static void main(String args[]) {
    	Frame f = new Frame("ArcTest");
    	ArcTest	arcTest = new ArcTest();
    
    	arcTest.init();
    	arcTest.start();
    
    	f.add("Center", arcTest);
    	f.setSize(300, 300);
    	f.show();
        }
    
        public String getAppletInfo() {
            return "An interactive test of the Graphics.drawArc and \nGraphics.fillArc routines. Can be run \neither as a standalone application by typing 'java ArcTest' \nor as an applet in the AppletViewer.";
        }
    }
    
    class ArcCanvas extends Canvas {
        int		startAngle = 0;
        int		endAngle = 45;
        boolean	filled = false;
        Font	font;
    
        public void paint(Graphics g) {
    	Rectangle r = getBounds();
    	int hlines = r.height / 10;
    	int vlines = r.width / 10;
    
    	g.setColor(Color.pink);
    	for (int i = 1; i <= hlines; i++) {
    	    g.drawLine(0, i * 10, r.width, i * 10);
    	}
    	for (int i = 1; i <= vlines; i++) {
    	    g.drawLine(i * 10, 0, i * 10, r.height);
    	}
    
    	g.setColor(Color.red);
    	if (filled) {
    	    g.fillArc(0, 0, r.width - 1, r.height - 1, startAngle, endAngle);
    	} else {
    	    g.drawArc(0, 0, r.width - 1, r.height - 1, startAngle, endAngle);
    	}
    
    	g.setColor(Color.black);
    	g.setFont(font);
    	g.drawLine(0, r.height / 2, r.width, r.height / 2);
    	g.drawLine(r.width / 2, 0, r.width / 2, r.height);
    	g.drawLine(0, 0, r.width, r.height);
    	g.drawLine(r.width, 0, 0, r.height);
    	int sx = 10;
    	int sy = r.height - 28;
    	g.drawString("S = " + startAngle, sx, sy);
    	g.drawString("E = " + endAngle, sx, sy + 14);
        }
    
        public void redraw(boolean filled, int start, int end) {
    	this.filled = filled;
    	this.startAngle = start;
    	this.endAngle = end;
    	repaint();
        }
    }
    
    class ArcControls extends Panel
                      implements ActionListener {
        TextField s;
        TextField e;
        ArcCanvas canvas;
    
        public ArcControls(ArcCanvas canvas) {
    	Button b = null;
    
    	this.canvas = canvas;
    	add(s = new TextField("0", 4));
    	add(e = new TextField("45", 4));
    	b = new Button("Fill");
    	b.addActionListener(this);
    	add(b);
    	b = new Button("Draw");
    	b.addActionListener(this);
    	add(b);
        }
    
        public void actionPerformed(ActionEvent ev) {
    	String label = ev.getActionCommand();
    
    	canvas.redraw(label.equals("Fill"),
    	              Integer.parseInt(s.getText().trim()),
    	              Integer.parseInt(e.getText().trim()));
        }
    }


    So, HTML (and CSS) will decide how the page will look and applet will decide how the web page acts.

    Clear enough?
  • sumitjami
    sumitjami
    After all i am also back 😁
    ...........project project project.........tired of it..............

    Applets are nothing but programs which run when a particular page is loaded and runs independently as an independent program, applets provide containers for in which programmer can perform any task any task just as it would be any other desktop program
    however the fact to be considered is that this program is not installed and only run directly ......at the same time this app is transfered through the web hence care has to be taken that it is not very large in size.....

    Whereas the HTML as described is nothing but a decoration language which is used to put all the data to be displaced together on a page.........

You are reading an archived discussion.

Related Posts

My name is Cameron Sharpe CEO of . I am running a dating website. Am planning to open a back office in India and looking out for some good space...
I am building an experimental project and I am confused as to how much voltage I will need. I have five 400 volt 470 uf capacitors wired in series to...
TiE Nagpur chapter was launched today to promote entrepreneurship in Nagpur, India. The highlight of the launch was address by famous management guru, Dr. C.K. Pralhad. Dr. Pralhad talked about...
I tried running 1/3hp blower using solar pannels with the aid of 12volt car batteries and was able to run it fine. Now I want to run the blower using...
the Question this is actually an example in my book (sedra and smith, 5th ed) which i fail to understand completely!!! the question is : Assuming the diodes to be...