2.4K
Difference Between Applet and Servlet in Java
Applet and servlet are the small Java programs or applications. But, both get processed in a different environment. The basic difference between an applet and a servlet is that an applet is executed on the client-side whereas, a servlet is executed on the server-side.
BASIS FOR COMPARISON | DIFFERENCES |
Execution | An applet is an application that is executed on the client machine whereas, a servlet is an application that is executed on the server machine. |
Packages | The package used to create an applet are, import java.applet.*; and import java.awt.*; whereas, the packages used to create a servlet are, import javax.servlet.*; and import java.servlet.http.*; |
Lifecycle methods | The lifecycle methods of the Applet Class are init(), stop(), paint(), start(), destroy(). On the other hand, the lifecycle method are init( ), service( ), and destroy( ). |
User interface | Applets use the user interface classes AWT and Swing to create the user interface whereas, a servlet does not require any user interface class as it does not create any user interface. |
Requirement | To get an applet executed on the client machine, the Java compatible web browser is required. On the other hand, the servlet requires Java enabled the web server to process the request and response of the client. |
Resources | Applet utilizes the resources of the client machine as it executes on the client side. Servlets utilize the resources of the server as it is executed on the server side. |
Security | Applets face more security issues as compared to servlets. |
Let have a looks on Applets and Servlet Example.
Creating “Hands on Applet” Applet.
// A "Hands on Applet" Applet
// Save file as HandsonApplet.java
import java.applet.Applet;
import java.awt.Graphics;
// HandsonApplet class extends Applet
public class HandsonApplet extends Applet {
// Overriding paint() method
@Override
public void paint(Graphics g)
{
g.drawString("Hands on Applet", 20, 20);
}
}
Creating “Hands on Servlet” Servlet.
// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
// Extend HttpServlet class
public class HandsonServlet extends HttpServlet {
private String message;
public void init() throws ServletException
{
// Do required initialization
message = "Hands on Servlets";
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// Set response content type
response.setContentType("text/html");
// Actual logic goes here.
PrintWriter out = response.getWriter();
out.println("<h1>" + message + "</h1>");
}
public void destroy()
{
// do nothing.
}
}