Servlets in Java: Basic to Advanced Guide for Web Development

In the world of web development, Servlets in Java play a foundational role in building dynamic, data-driven web applications. They act as the bridge between the client browser and server-side logic, helping developers handle requests, process data, and generate responses dynamically.

Whether you’re a beginner stepping into backend development or an aspiring full-stack developer, understanding servlets is crucial. That’s why most Java classes in Pune and expert-led programs at any java training institute in Pune include servlets as a key part of their curriculum.

In this blog, we’ll walk you through:

  • What servlets are

  • Why they are important

  • How they work

  • Servlet lifecycle

  • Key methods and classes

  • Advanced concepts

  • Real-world applications


🔰 What is a Servlet in Java?

Servlet is a Java class that runs on a server and handles HTTP requests and responses. It is part of the Java EE (Jakarta EE) platform and follows the Servlet API, defined under javax.servlet and javax.servlet.http packages.

Servlets enable you to build:

  • Dynamic web pages

  • Form processing logic

  • Session management

  • Backend for mobile/web apps


❓ Why Use Servlets?

✅ Platform Independent

Servlets are written in Java, which makes them platform-independent, unlike CGI scripts in Perl or C.

✅ Scalable and Efficient

Servlets are faster and more memory-efficient than traditional CGI because they use multi-threading rather than spawning new processes for every request.

✅ Built-in Session Handling

They make it easier to maintain sessions and cookies for each client.

✅ Integration with Java EE Ecosystem

Seamlessly integrates with JSP, JDBC, and other Java EE technologies.

Most java training institutes in Pune teach servlets alongside JSP, JDBC, and MVC frameworks to help students build full-stack web applications.


🛠️ Servlet API Packages

  • javax.servlet.* — Basic interfaces and classes (Servlet, ServletRequest, etc.)

  • javax.servlet.http.* — HTTP-specific functionality (HttpServlet, HttpSession, etc.)


🔄 Servlet Lifecycle

The lifecycle of a servlet is managed by the Servlet Container (like Apache Tomcat) and includes the following stages:

1. Loading and Instantiation

When the server receives a request for a servlet, it loads the servlet class and creates an instance.

2. Initialization (init())

Called once after the servlet is created. You can use it to initialize resources.

java
public void init() throws ServletException {
// Initialization code
}

3. Request Handling (service())

Handles client requests. It calls doGet() or doPost() based on the request method.

java
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
// Code to handle request
}

4. Destruction (destroy())

Called once before the servlet is removed from memory.

java
public void destroy() {
// Cleanup code
}

📥 Handling HTTP Requests with HttpServlet

Java provides the HttpServlet class to simplify HTTP request handling. You can override methods like:

  • doGet() – For GET requests

  • doPost() – For POST requests

  • doPut()doDelete() – For RESTful services

🔧 Example: doGet() Method

java
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<h1>Hello from Servlet</h1>");
}

📦 Deployment Descriptor: web.xml

The web.xml file in the WEB-INF directory is used to configure servlet mappings.

xml
<web-app>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.example.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

Alternatively, modern servlets use annotations:

java
@WebServlet("/hello")
public class MyServlet extends HttpServlet { ... }

🧰 ServletContext vs ServletConfig

Feature ServletContext ServletConfig
Scope Application-wide Per servlet
Usage Shared data across servlets Initialization params
Lifetime Until application ends Until servlet is destroyed

You’ll use both in real-time applications like e-commerce carts or content management systems.


🔐 Session Management in Servlets

Managing user sessions is critical for web apps. Servlets support:

1. Cookies

Store client-specific data on the client’s browser.

2. URL Rewriting

Appends session ID to the URL.

3. HttpSession

Java’s built-in session tracking object.

java
HttpSession session = request.getSession();
session.setAttribute("username", "John");

These techniques are demonstrated in major projects in top Java classes in Pune.


🧠 Advanced Servlet Topics

✅ Filters

Used for preprocessing or post-processing a request (e.g., authentication, logging).

java
@WebFilter("/admin/*")
public class AuthFilter implements Filter {
public void doFilter(...) { ... }
}

✅ Listeners

Track events like session creation, context initialization.

java
@WebListener
public class MySessionListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent se) { ... }
}

✅ Servlet Chaining

Send request from one servlet to another using RequestDispatcher.

java
RequestDispatcher rd = request.getRequestDispatcher("SecondServlet");
rd.forward(request, response);

Such advanced topics are covered in detail at java training institutes in Pune, preparing you for enterprise-level web development.


💡 Real-World Applications of Servlets

Application Type Use of Servlets
E-Commerce Portals Manage sessions, orders, and checkout process
Content Management Handle form submissions and database updates
Online Portals User authentication, file uploads, dynamic pages
API Backends Build RESTful APIs with doPost()/doGet()

You’ll implement many of these as part of your final project in Java classes in Pune.


🧪 Mini Project Idea: Student Management Portal

Features:

  • Add, update, delete student records

  • Login system with sessions

  • Use of servlets, JDBC, and JSP

Categorized in:

Tagged in: