Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • Build your AI Agent
    • GfG 160
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • Contests
    • Accenture Hackathon (Ending Soon!)
    • GfG Weekly [Rated Contest]
    • Job-A-Thon Hiring Challenge
    • All Contests and Events
  • Java Arrays
  • Java Strings
  • Java OOPs
  • Java Collection
  • Java 8 Tutorial
  • Java Multithreading
  • Java Exception Handling
  • Java Programs
  • Java Project
  • Java Collections Interview
  • Java Interview Questions
  • Java MCQs
  • Spring
  • Spring MVC
  • Spring Boot
  • Hibernate
Open In App
Next Article:
Introduction to JSP
Next article icon

Introduction to Java Servlets

Last Updated : 17 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Java Servlet is a Java program that runs on a Java-enabled web server or application server. It handles client requests, processes them, and generates responses dynamically. Servlets are the backbone of many server-side Java applications due to their efficiency and scalability.

Key Features:

  • Servlets work on the server side.
  • Servlets are capable of handling complex requests obtained from the web server.
  • Generate dynamic responses efficiently.

Creating a Basic Servlet

Example: Here’s a simple example of how a servlet works:

Java
// Basic Java Servlet Demonstration import java.io.*; import jakarta.servlet.*; import jakarta.servlet.http.*;  public class HelloWorldServlet extends HttpServlet {     protected void doGet(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {         response.setContentType("text/html");         PrintWriter out = response.getWriter();         out.println("<html><body><h1>Hello, World!</h1></body></html>");     } } 


Configuring a Servlet

To deploy a servlet, you need to configure it in the web.xml file. This file maps URLs to servlets. For example,

XML
<web-app xmlns="http://java.sun.com/xml/ns/javaee"           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee           http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"           version="3.0">      <servlet>         <servlet-name>HelloWorldServlet</servlet-name>         <servlet-class>HelloWorldServlet</servlet-class>     </servlet>      <servlet-mapping>         <servlet-name>HelloWorldServlet</servlet-name>         <url-pattern>/hello</url-pattern>     </servlet-mapping>  </web-app> 


Modern Servlet Configuration (Annotation-Based)

From Servlet 3.0, servlet configuration can also be done using annotations. Instead of using web.xml, we can configure the servlet using the @WebServlet annotations.

Java
// This annotation replaces the need for  // configuring the servlet in web.xml @WebServlet("/hello")  public class HelloWorldServlet extends HttpServlet {     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {         response.setContentType("text/html");         PrintWriter out = response.getWriter();         out.println("<html><body><h1>Hello, World!</h1></body></html>");     } } 


Why Choose Java Servlet over other Technologies?

Dynamic web content requires server-side technologies. While there are many options, Java Servlet stand out due to their advantages over alternatives like Common Gateway Interface (CGI)

Limitations of CGI:

  • Process Overhead: CGI creates and destroys a process for every client request, leading to high resource consumption.
  • Scalability Issues: Poor performance with increased client requests.

Benefits of Java Servlets:

  • Faster execution as Servlets do not create new processes for each request.
  • Write-once, run-anywhere feature of Java.
  • Single instance handles multiple requests.
  • Easily integrates with databases using JDBC.
  • It inherits robust security features from web servers.
  • Many web servers like Apache Tomcat are free to use with Java Servlets.

Java Servlets Architecture

Java servlets container play a very important role. It is responsible for handling important tasks like load balancing, session management and resource allocation, it make sure that all the requests are process efficiently under high traffic. The container distribute requests accross multiple instances, which helps improve the system performance.

Servlet Architecture can be depicted from the image itself as provided below as follows:  

Jsp-servlet-architecture

Execution of Java Servlets

Execution of Servlets basically involves Six basic steps: 

  • The Clients send the request to the Web Server.
  • The Web Server receives the request.
  • The Web Server passes the request to the corresponding servlet.
  • The Servlet processes the request and generates the response in the form of output.
  • The Servlet sends the response back to the webserver.
  • The Web Server sends the response back to the client and the client browser displays it on the screen.

Java Servlet LifeCycle Methods

1. init(): This method itializes the Servlet instance.

Java
@Override public void init() throws ServletException {          // Initialization: Called once when the servlet is loaded into memory     System.out.println("Servlet initialized"); } 


2. service(): This method Processes requests and invokes either doGet() and doPost() based on the request type.

Java
@Override protected void service(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {          // Request handling: Called each time a request is made     String method = request.getMethod();          if ("GET".equalsIgnoreCase(method)) {         doGet(request, response);     } else if ("POST".equalsIgnoreCase(method)) {         doPost(request, response);     } } 


3. destroy(): This method cleans up resources when the servlet is terminated.

Java
@Override public void destroy() {          // Cleanup: Called once when the servlet is being destroyed     System.out.println("Servlet destroyed"); } 


Need of Server-Side Extensions

The Server-Side Extensions are nothing but the technologies that are used to create dynamic Web pages. To enable dynamic web pages, a web server or container is required. To meet this requirement, independent Web server providers offer some proprietary solutions in the form of APIs (Application Programming Interface). 
These APIs allow us to build programs that can run with a Web server. In this case, Java Servlet is also one of the component APIs of Java Servlets are part of Jakarta EE (formerly Java EE). which sets standards for creating dynamic Web applications in Java. 

Before learning about something, it’s important to know the need for that something, it’s not like that this is the only technology available for creating Dynamic Web Pages. The Servlet technology is similar to other Web server extensions such as Common Gateway Interface (CGI) scripts and Hypertext Preprocessor (PHP). However, Java Servlets are more acceptable since they solve the limitations of CGI such as low performance and low degree scalability.  

What is CGI (Common Gateway Interface)?

CGI is actually an external application that is written by using any of the programming languages like C or C++ and this is responsible for processing client requests and generating dynamic content. 

In CGI application, when a client makes a request to access dynamic Web pages, the Web server performs the following operations:  

  • It first locates the requested web page i.e the required CGI application using URL.
  • It then creates a new process to service the client’s request.
  • Invokes the CGI application within the process and passes the request information to the application.
  • Collects the response from the CGI application.
  • Destroys the process, prepares the HTTP response, and sends it to the client.
CGI-Processing-Requests

So, in CGI server has to create and destroy the process for every request. It’s easy to understand that this approach is applicable for handling few clients but as the number of clients increases, the workload on the server increases and so the time is taken to process requests increases.  

Difference Between Java Servlets and CGI

The table below demonstrates the difference between servlet and CGI

ServletCGI (Common Gateway Interface)
Servlets are portable and efficient.CGI is not portable.
In Servlets, sharing data is possible.In CGI, sharing data is not possible.
Servlets can directly communicate with the webserver.CGI cannot directly communicate with the webserver.
Servlets are less expensive than CGI.CGI is more expensive than Servlets.
Servlets can handle the cookies.CGI cannot handle the cookies.

Servlets APIs and Packages

Servlets are built from two packages: 

  • jakarta.servlet(Basic): Provides basic Servlet classes and interfaces.
  • jakarta.servlet.http(Advance): Advanced classes for handling HTTP-specific requests.

Key Classes and Interfaces

Various classes and interfaces present in these packages are: 

ComponentTypePackage
ServletInterfacejavax.servlet.*
ServletRequestInterfacejavax.servlet.*
ServletResponseInterfacejavax.servlet.*
GenericServletClassjavax.servlet.*
HttpServletClassjavax.servlet.http.*
HttpServletRequestInterfacejavax.servlet.http.*
HttpServletResponseInterfacejavax.servlet.http.*
FilterInterfacejavax.servlet.*
ServletConfigInterfacejavax.servlet.*

Servlet Container

Servlet container, also known as Servlet engine, is an integrated set of objects that provide a run time environment for Java Servlet components. In simple words, it is a system that manages Java Servlet components on top of the Web server to handle the Web client requests. 

Services provided by the Servlet container: 

  • Network Services: Loads a Servlet class. The loading may be from a local file system, a remote file system or other network services. The Servlet container provides the network services over which the request and response are sent.
  • Decode and Encode MIME-based messages: Provides the service of decoding and encoding MIME-based messages.
  • Manage Servlet container: Manages the lifecycle of a Servlet.
  • Resource management: Manages the static and dynamic resources, such as HTML files, Servlets, and JSP pages.
  • Security Service: Handles authorization and authentication of resource access.
  • Session Management: Maintains a session by appending a session ID to the URL path

Real-World Use Cases of Java Servlets

  • E-Commerce Platforms: Dynamic catalog generation and order processing.
  • Banking Applications: Secure user sessions and real-time transaction processing.
  • Content Management Systems: Handling file uploads and dynamic content delivery.


Next Article
Introduction to JSP

A

AniketSingh1
Improve
Article Tags :
  • Java
  • java-servlet
Practice Tags :
  • Java

Similar Reads

  • What is Advanced Java?
    In the realm of coding, creativity, and state-of-the-art technology have a pivotal role in the domain of software creation. Java is known for its platform independence, robustness, and extensive libraries. Advanced Java concepts let you make really complicated programs, it encompasses an array of te
    13 min read
  • Servlets and JSP

    • Introduction to Java Servlets
      Java Servlet is a Java program that runs on a Java-enabled web server or application server. It handles client requests, processes them, and generates responses dynamically. Servlets are the backbone of many server-side Java applications due to their efficiency and scalability. Key Features: Servlet
      7 min read

    • Introduction to JSP
      JavaServer Pages (JSP) is a server-side technology that creates dynamic web applications. It allows developers to embed Java code directly into HTML or XML pages, and it makes web development more efficient. JSP is an advanced version of Servlets. It provides enhanced capabilities for building scala
      5 min read

    • JSP Architecture
      JSP architecture gives a high-level view of the working of JSP. JSP architecture is a 3 tier architecture. It has a Client, Web Server, and Database. The client is the web browser or application on the user side. Web Server uses a JSP Engine i.e; a container that processes JSP. For example, Apache T
      3 min read

    • Life Cycle of JSP
      The life cycle of a JavaServer Page (JSP) consists of various phases that start from its creation, followed by its translation into a servlet, and finally managed by the servlet lifecycle. The JSP engine handles this process automatically. Steps of JSP Life Cycle Translation of JSP page to ServletCo
      2 min read

    • Difference between Servlet and JSP
      Brief Introduction: Servlet technology is used to create a web application. A servlet is a Java class that is used to extend the capabilities of servers that host applications accessed by means of a request-response model. Servlets are mainly used to extend the applications hosted by web services. J
      3 min read

  • Dependency Injection(DI) Design Pattern
    Effective dependency management is essential to building scalable and maintainable systems. The Dependency Injection (DI) design pattern is one strategy that has become very popular. Fundamentally, dependency injection is a method that addresses how components or objects are constructed and how they
    11 min read
  • Spring

    • Introduction to Spring Framework
      The Spring Framework is a powerful, lightweight, and widely used Java framework for building enterprise applications. It provides a comprehensive programming and configuration model for Java-based applications, making development faster, scalable, and maintainable. Before Enterprise Java Beans (EJB)
      9 min read

    • Spring Framework Architecture
      The Spring framework is a widely used open-source Java framework that provides a comprehensive programming and configuration model for building enterprise applications. Its architecture is designed around two core principles: Dependency Injection (DI) Aspect-Oriented Programming (AOP)The Spring fram
      7 min read

    • Spring Initializr
      Spring Initializr is a popular tool for quickly generating Spring Boot projects with essential dependencies. It helps developers set up a new application with minimal effort, supporting Maven and Gradle builds. With its user-friendly interface, it simplifies project configuration, making it an essen
      5 min read

    • Spring - BeanFactory
      The first and foremost thing when we talk about Spring is dependency injection which is possible because Spring is a container and behaves as a factory of Beans. Just like the BeanFactory interface is the simplest container providing an advanced configuration mechanism to instantiate, configure, and
      4 min read

    • Spring - ApplicationContext
      ApplicationContext belongs to the Spring framework. Spring IoC container is responsible for instantiating, wiring, configuring, and managing the entire life cycle of beans or objects. BeanFactory and ApplicationContext represent the Spring IoC Containers. ApplicationContext is the sub-interface of B
      5 min read

    • Spring Dependency Injection with Example
      Dependency Injection is the main functionality provided by Spring IOC(Inversion of Control). The Spring-Core module is responsible for injecting dependencies through either Constructor or Setter methods. The design principle of Inversion of Control emphasizes keeping the Java classes independent of
      7 min read

    • Spring - IoC Container
      The Spring framework is a powerful framework for building Java applications. It can be considered a collection of sub-frameworks, also referred to as layers, such as Spring AOP, Spring ORM, Spring Web Flow, and Spring Web MVC. We can use any of these modules separately while constructing a Web appli
      3 min read

    • Spring - Autowiring
      Autowiring in the Spring framework can inject dependencies automatically. The Spring container detects those dependencies specified in the configuration file and the relationship between the beans. This is referred to as Autowiring in Spring. To enable Autowiring in the Spring application we should
      4 min read

    • Spring Framework Annotations
      Spring framework is one of the most popular Java EE frameworks. It is an open-source lightweight framework that allows Java EE 7 developers to build simple, reliable, and scalable enterprise applications. Spring framework mainly focuses on providing various ways to help you manage your business obje
      6 min read

    SpringBoot

    • Introduction to Spring Boot
      Spring is widely used for creating scalable applications. For web applications, Spring provides Spring MVC, a commonly used module for building robust web applications. The major drawback of traditional Spring projects is that configuration can be time-consuming and overwhelming for new developers.
      5 min read

    • Difference between Spring and Spring Boot
      Spring Spring is an open-source lightweight framework that allows Java developers to build simple, reliable, and scalable enterprise applications. This framework mainly focuses on providing various ways to help you manage your business objects. It made the development of Web applications much easier
      4 min read

    • Spring Boot - Architecture
      Spring Boot is built on top of the core Spring framework. It simplifies and automates Spring-based application development by reducing the need for manual configuration. Spring Boot follows a layered architecture, where each layer interacts with other layers in a hierarchical order. The official Spr
      3 min read

    • Spring Boot - Annotations
      Spring Boot Annotations are a form of metadata that provides data about a spring application. Spring Boot is built on the top of the spring and contains all the features of spring. And is becoming a favorite of developers these days because of its rapid production-ready environment which enables the
      7 min read

    • Spring Boot Actuator
      Developing and managing an application are the two most important aspects of the application’s life cycle. It is very important to know what is going on beneath the application. Also, when we push the application into production, managing it gradually becomes critically important. Therefore, it is a
      5 min read

    • Spring Boot - Code Structure
      There is no specific layout or code structure for Spring Boot Projects. However, there are some best practices followed by developers that will help us too. You can divide your project into layers like service layer, entity layer, repository layer,, etc. You can also divide the project into modules.
      3 min read

    • Spring - RestTemplate
      Due to high traffic and quick access to services, REST APIs are getting more popular and have become the backbone of modern web development. It provides quick access to services and also provides fast data exchange between applications. REST is not a protocol or a standard, rather, it is a set of ar
      8 min read

    • How to Change the Default Port in Spring Boot?
      Spring Boot framework provides a default embedded server i.e. the Tomcat server for many configuration properties to run the Spring Boot application. The application runs on the default port which is 8080. As per the application need, we can also change this default port for the embedded server. In
      4 min read

    • Spring Boot - Scheduling
      Spring Boot provides the ability to schedule tasks for execution at a given time period with the help of @Scheduled annotation. This article provides a step by step guideline on how we can schedule tasks to run in a spring boot application Implementation:It is depicted below stepwise as follows:  St
      4 min read

    • Spring Boot - Sending Email via SMTP
      Spring Boot provides the ability to send emails via SMTP using the JavaMail Library. Here we will be illustrating step-by-step guidelines to develop Restful web services that can be used to send emails with or without attachments. In order to begin with the steps, let us first create a Spring Boot p
      5 min read

    • Spring Boot - REST Example
      In modern web development, most applications follow the Client-Server Architecture. The Client (frontend) interacts with the server (backend) to fetch or save data. This communication happens using the HTTP protocol. On the server, we expose a bunch of services that are accessible via the HTTP proto
      5 min read

  • Introduction to the Spring Data Framework
    Spring Data is a powerful data access framework in the Spring ecosystem that simplifies database interactions for relational (SQL) and non-relational (NoSQL) databases. It eliminates boilerplate code and provides an easy-to-use abstraction layer for developers working with JPA, MongoDB, Redis, Cassa
    3 min read
  • Spring MVC

    • Spring - MVC Framework
      The Spring MVC Framework follows the Model-View-Controller architectural design pattern, which works around the Front Controller, i.e., the Dispatcher Servlet. The Dispatcher Servlet handles and dispatches all incoming HTTP requests to the appropriate controller. It uses @Controller and @RequestMapp
      4 min read

    • Spring - Multi Action Controller with Example
      Spring is one of the most popular Java EE frameworks. It is an open-source lightweight framework that allows Java EE 7 developers to build simple, reliable, and scalable enterprise applications. This framework mainly focuses on providing various ways to help you manage your business objects. It made
      5 min read

    • Spring MVC using Java Based Configuration
      Spring MVC framework enables the separation of modules, namely Model, View, and Controller, and seamlessly handles application integration. This enables the developer to create complex applications using plain Java classes. The model object can be passed between the view and the controller using map
      4 min read

    • ViewResolver in Spring MVC
      Spring MVC is a powerful Web MVC Framework for building web applications. It provides a structured way to develop web applications by separating concerns into Model, View, and Controller. One of the key features of Spring MVC is the ViewResolver, which enables you to render models in the browser wit
      7 min read

    • Spring MVC - Exception Handling
      Prerequisites: Spring MVC When something goes wrong with your application, the server displays an exception page defining the type of exception, the server-generated exception page is not user-friendly. Spring MVC provides exception handling for your web application to make sure you are sending your
      6 min read

    • Spring - MVC Form Handling
      Prerequisites: Spring MVC, Introduction to Spring Spring MVC is a Model-View-Controller framework, it enables the separation of modules into Model, View, and Controller and uniformly handles the application integration. In this article, we will create a student login form and see how Spring MVC hand
      6 min read

    • How to Make Post Request in Java Spring?
      Java language is one of the most popular languages among all programming languages. There are several advantages of using the java programming language, whether for security purposes or building large distribution projects. One of the advantages of using JAVA is that Java tries to connect every conc
      4 min read

    • Spring MVC CRUD with Example
      In this article, we will explore how to build a Spring MVC CRUD application from scratch. CRUD stands for Create, Read/Retrieve, Update, and Delete. These are the four basic operations to create any type of project. Spring MVC is a popular framework for building web applications. Spring MVC follows
      8 min read

    Spring Security

    • Introduction to Spring Security and its Features
      Spring Security is a powerful authentication and authorization framework used to secure Java-based web applications. It easily integrates with Spring Boot and provides advanced security mechanisms such as OAuth2, JWT-based authentication, role-based access control, and protection against common vuln
      3 min read

    • Spring Security Architecture
      Spring Security framework helps us to secure Java-based web applications. The main task of the Spring Security framework is managing who can access what. It is used to protect our application from common security threats such as CSRF and session fixation attacks. Spring Security makes it simple to s
      3 min read

    • Spring Security Annotations
      There are multiple annotations supported by Spring Security. But, in this article, we will discuss about these annotations can be used in a Spring Boot project as well. These annotations play a crucial role in creating a web application in Spring Boot. The Spring Security annotations are a powerful
      3 min read

    • Spring Security - Basic Authentication
      Spring Security is a framework that allows a programmer to use JEE (Java Enterprise Edition) components to set security limitations on Spring Framework-based web applications. As a core part of the Spring ecosystem, it’s a library that can be utilized and customized to suit the demands of the progra
      7 min read

    • Authentication in Spring Security
      In Spring Security, “authentication” is the process of confirming that a user is who they say they are and that they have the right credentials to log in to a protected resource or to perform a privileged action in an application. Spring Security helps you set up different authentication methods, li
      13 min read

  • What are Microservices?
    Microservices are an architectural approach to developing software applications as a collection of small, independent services that communicate with each other over a network. Instead of building a monolithic application where all the functionality is tightly integrated into a single codebase, micro
    12 min read
  • JUnit 5

    • Introduction to JUnit 5
      JUnit is a Testing Framework. The Junit 5 is the latest version of the testing framework, and it has a lot of features when compared with Junit 4. JUnit 5, also known as JUnit Jupiter. It introduces several new features and improvements over its predecessor, JUnit 4, making it more powerful and flex
      8 min read

    • JUnit 5 – Test LifeCycle
      In the Java testing framework, JUnit 5 is the latest testing framework that introduces a robust test lifecycle that is managed through four primary annotations that are @BeforeAll, @BeforeEach, @AfterEach, and @AfterAll. We need to annotate each method with @Test annotation from the org.junit.jupite
      5 min read

geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences