Unit 3: Web Application development using JSP & Servlets




Servlet Overview

A servlet is a server-side Java program used to create dynamic web applications. It runs on a web server or application server and handles requests from clients (browsers) and sends responses back.

Why Servlets are Used

  • To process user requests
  • To generate dynamic web content
  • To handle form data
  • To interact with databases
  • To build secure and scalable web applications

Advantages of Servlets

AdvantageDescription
Platform independentRuns on JVM
EfficientUses multithreading
SecureServer-side execution
PersistentLoaded once, reused

Servlet Architecture

Servlet architecture explains how a servlet works inside a web server.

Main Components

  1. Client (Browser) – Sends request
  2. Web Server – Receives request
  3. Servlet Container – Manages servlet lifecycle
  4. Servlet – Processes request
  5. Response – Sent back to client

Request–Response Flow

  1. Client sends HTTP request
  2. Web server forwards request to servlet container
  3. Container loads servlet (if not loaded)
  4. Servlet processes request
  5. Response is sent back to browser

Diagram Description (Exam Writing)

Client → Web Server → Servlet Container → Servlet Client ← Response ← Servlet Container ← Servlet

Servlet Interface

The Servlet interface is part of javax.servlet package.
All servlets must implement this interface directly or indirectly.

Methods of Servlet Interface

MethodPurpose
init()Initializes servlet
service()Handles requests
destroy()Cleans up resources
getServletConfig()Returns configuration
getServletInfo()Returns information

Example

public class DemoServlet implements Servlet { public void init(ServletConfig sc) {} public void service(ServletRequest req, ServletResponse res) {} public void destroy() {} public ServletConfig getServletConfig() { return null; } public String getServletInfo() { return null; } }

In practice, servlets usually extend HttpServlet instead of implementing Servlet directly.

Servlet Life Cycle

The Servlet Life Cycle describes the stages a servlet goes through from creation to destruction.

Life Cycle Phases

  1. Loading and Instantiation
  2. Initialization (init())
  3. Request Handling (service())
  4. Destruction (destroy())

Life Cycle Diagram (Exam Format)

Load → init() → service() → destroy()

Explanation

PhaseDescription
init()Executed once
service()Executed for each request
destroy()Executed once before removal

Handling HTTP GET Requests

The GET method is used to request data from the server.
Data is sent through the URL.

Characteristics of GET

  • Data visible in URL
  • Limited data size
  • Less secure
  • Used for fetching data

Method Used

doGet(HttpServletRequest request, HttpServletResponse response)

Example

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("This is GET request"); }

Handling HTTP POST Requests

The POST method is used to send data securely to the server.

Characteristics of POST

  • Data not visible in URL
  • No size limitation
  • More secure
  • Used for form submission

Method Used

doPost(HttpServletRequest request, HttpServletResponse response)

Example

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { String name = request.getParameter("username"); response.getWriter().println("Welcome " + name); }

GET vs POST Comparison

FeatureGETPOST
Data visibilityVisible in URLHidden
SecurityLessMore
Data sizeLimitedUnlimited
UsageFetch dataSubmit data

Summary Table

TopicKey Point
ServletServer-side Java
ArchitectureClient–Server model
Life Cycleinit → service → destroy
GETRetrieve data
POSTSubmit data

Exam Tips

  • Write servlet life cycle steps clearly
  • Always mention HttpServlet
  • Draw request–response flow diagram
  • Compare GET and POST in table form

Redirecting Requests to Other Resources

Redirecting means sending a client request from one resource to another (Servlet, JSP, or HTML page).

Types of Redirection

1. Request Dispatching (Forwarding)

  • Done on the server side
  • URL in browser does not change

Method Used

RequestDispatcher rd = request.getRequestDispatcher("welcome.jsp"); rd.forward(request, response);

2. Response Redirection

  • Done on the client side
  • URL changes

Method Used

response.sendRedirect("login.jsp");

Comparison Table

ForwardRedirect
Server sideClient side
URL unchangedURL changes
FasterSlower

Session Tracking

Session Tracking is used to maintain user information across multiple requests.

Why Session Tracking is Needed

  • HTTP is a stateless protocol
  • Server does not remember previous requests

Session Tracking Techniques

TechniqueDescription
CookiesStored on client
URL RewritingData in URL
Hidden FieldsHidden form data
HttpSessionServer-side session

Cookies

A cookie is a small piece of data stored on the client’s browser.

Types of Cookies

  • Persistent cookies
  • Non-persistent cookies

Creating a Cookie

Cookie c = new Cookie("username", "Jay"); response.addCookie(c);

Reading a Cookie

Cookie[] cookies = request.getCookies();

Advantages and Limitations

AdvantagesLimitations
SimpleLess secure
Saves user preferencesLimited size

Session Tracking with HttpSession

HttpSession stores user data on the server side.

Creating a Session

HttpSession session = request.getSession(); session.setAttribute("user", "Jay");

Retrieving Session Data

String user = (String) session.getAttribute("user");

Invalidating Session

session.invalidate();

Advantages

  • More secure
  • Can store complex objects
  • Widely used in real applications

Introduction to Java Server Pages (JSP)

JSP is a server-side technology used to create dynamic web pages using HTML and Java code.

JSP Features

  • Easier than Servlets
  • HTML-centric
  • Platform independent
  • Supports MVC architecture

Java Server Pages Overview

How JSP Works

  1. Browser sends request
  2. JSP is translated into Servlet
  3. Servlet is compiled
  4. Response sent to browser

JSP Architecture Flow

Client → JSP → Servlet → Response

A First Java Server Page Example

Example: Hello JSP

<html> <body> <h2>Welcome to JSP</h2> <% out.println("Hello User"); %> </body> </html>

Explanation

  • <% %> → Scriptlet tag
  • out → Implicit object

Implicit Objects in JSP

Implicit objects are predefined objects available in JSP.

List of Implicit Objects

ObjectPurpose
requestClient request
responseServer response
outOutput stream
sessionSession data
applicationApplication context
configServlet config
pageJSP page
pageContextContext info
exceptionError handling

Scripting in JSP

JSP scripting elements allow Java code in JSP.

Types of Scripting Elements

ElementSyntaxUse
Scriptlet<% %>Java code
Expression<%= %>Output
Declaration<%! %>Variables, methods

Standard Actions in JSP

Standard actions are predefined JSP tags.

Common JSP Standard Actions

ActionPurpose
<jsp:include>Include resource
<jsp:forward>Forward request
<jsp:useBean>Create bean
<jsp:setProperty>Set bean
<jsp:getProperty>Get bean

Directives in JSP

Directives provide instructions to the JSP container.

Types of Directives

DirectivePurpose
pagePage-level settings
includeInclude files
taglibCustom tags

Example

<%@ page language="java" %>

Custom Tag Libraries

Custom tags allow developers to create their own JSP tags.

Advantages

  • Reduces Java code in JSP
  • Improves readability
  • Encourages reusability

Components

  • Tag handler class
  • TLD file

Example Usage

<mytag:welcome />

Summary Table

TopicKey Concept
CookiesClient-side tracking
HttpSessionServer-side tracking
JSPDynamic pages
Implicit ObjectsPredefined objects
Custom TagsReusable logic

Exam Tips

  • Always mention HTTP is stateless
  • Compare Cookies and HttpSession
  • Write JSP lifecycle steps
  • Use tables and diagrams