Servlets Tuts
Introduction
RequestDispatcher
RequestDispatcher
RequestDispatcher is an interface in Java Servlet API that allows request forwarding or including the content of another resource (like another servlet, JSP, or HTML) into the response.
| Method | Description |
|---|---|
| forward(ServletRequest req, ServletResponse res | Forwards the request to another resource. The client is not aware of this internal forwarding. |
| include(ServletRequest req, ServletResponse res) | Includes content of another resource in the current response. The response is a combined output. |
How to get RequestDispatcher
RequestDispatcher rd = request.getRequestDispatcher(“targetServletOrJSP”);
RequestDispatcher rd = request.getRequestDispatcher(“SecondServlet”);
rd.forward(request, response);
RequestDispatcher rd = request.getRequestDispatcher(“header.html”);
rd.include(request, response);
Example
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset=“UTF-8”>
<title>Insert title here</title>
</head>
<body>
<form action=“first”>
<label>Enter Number : </label>
<input type=“text” name=“txtnum” size=“10” />
<input type=“submit” value=“Get Value” />
</form>
</body>
</html>
ServletOne.java
package requestdispatcher;
import java.io.IOException;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class FirstServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException
{
int n = Integer.parseInt( req.getParameter(“txtnum”));
req.setAttribute(“num”, n);
RequestDispatcher rd = req.getRequestDispatcher(“second”);
rd.forward(req, res);
}
}
ServletTwo.java
package requestdispatcher;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class SecondServlet extends HttpServlet {
public void doGet( HttpServletRequest req, HttpServletResponse res) throws IOException
{
int n = (int)req.getAttribute(“num”);
int res1 = n*n;
PrintWriter pw = res.getWriter();
pw.println(“square is : “+res1);
}
}
web.xml
<?xml version=“1.0” encoding=“UTF-8”?>
<web-app xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns=“https://jakarta.ee/xml/ns/jakartaee” xsi:schemaLocation=“https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd” id=“WebApp_ID” version=“5.0”>
<display-name>requestdispatcher</display-name>
<servlet>
<servlet-name>one</servlet-name>
<servlet-class>requestdispatcher.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>one</servlet-name>
<url-pattern>/first</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>two</servlet-name>
<servlet-class>requestdispatcher.SecondServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>two</servlet-name>
<url-pattern>/second</url-pattern>
</servlet-mapping>
</web-app>
sendRedirect
sendRedirect() is a method of the HttpServletResponse interface used to redirect the client (browser) to a different resource, such as another servlet, JSP, or an external website.
Syntax:
response.sendRedirect(“newURL”);
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset=“UTF-8”>
<title>Insert title here</title>
</head>
<body>
<form action=“first”>
<label>Enter First Number : </label>
<input type=“text” size=“20” name=“txtnum1” /> <br>
<label>Enter Second Number : </label>
<input type=“text” size=“20” name=“txtnum2” /> <br>
<input type=“submit” value=“Click Me” />
</form>
</body>
</html>
FirstServlet.java
package sendredirect;
import java.io.IOException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class FirstServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException
{
int a = Integer.parseInt( req.getParameter(“txtnum1”));
int b = Integer.parseInt( req.getParameter(“txtnum2”));
int c = a + b;
res.sendRedirect(“second?sum=”+c);
}
}
SecondServlet.java
package sendredirect;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class SecondServlet extends HttpServlet {
public void doGet( HttpServletRequest req, HttpServletResponse res) throws IOException
{
int n = Integer.parseInt( req.getParameter(“sum”));
int sq = n*n;
PrintWriter pw = res.getWriter();
pw.println(“Square is : “+sq);
}
}
web.xml
<?xml version=“1.0” encoding=“UTF-8”?>
<web-app xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns=“https://jakarta.ee/xml/ns/jakartaee” xsi:schemaLocation=“https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd” id=“WebApp_ID” version=“5.0”>
<display-name>sendredirect</display-name>
<servlet>
<servlet-name>one</servlet-name>
<servlet-class>sendredirect.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>one</servlet-name>
<url-pattern>/first</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>two</servlet-name>
<servlet-class>sendredirect.SecondServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>two</servlet-name>
<url-pattern>/second</url-pattern>
</servlet-mapping>
</web-app>
HttpSession
Definition
HttpSession is an interface in Java Servlets used to store user-specific information (data) across multiple requests from the same client during a session.
Purpose
Maintains state between requests (HTTP is stateless by default).
Commonly used to track login status, user preferences, shopping cart, etc.
How to Create or Get a Session
HttpSession session = request.getSession();
Creates a new session if one doesn’t exist.
Use
request.getSession(false)to returnnullif no session exists.
Storing and Retrieving Data
session.setAttribute(“username”, “suresh”);
String name = (String) session.getAttribute(“username”);
Invalidating a Session
session.invalidate();
Methods
| Method | Description |
|---|---|
| getId() | Returns unique session ID |
| setAttribute(String, Object) | Stores data in session |
| getAttribute(String) | Retrieves stored data |
| invalidate() | Destroys the session |
| getCreationTime() | Returns session creation time |
| getLastAccessedTime() | Returns last access time |
Example
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset=“UTF-8”>
<title>Insert title here</title>
</head>
<body>
<form action=“first” method=“get”>
<label>Enter a Value : </label>
<input type=“text” size=“20” name=“txtname”>
<input type=“submit” value=“Click Me” />
</form>
</body>
</html>
FirstServlet.java
package sessiondemo;
import java.io.IOException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
public class FirstServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
String na = req.getParameter(“txtname”);
HttpSession session = req.getSession();
session.setAttribute(“na”,na);
res.sendRedirect(“second”);
}
}
SecondServlet.java
package sessiondemo;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
public class SecondServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
HttpSession session = req.getSession();
String na = (String)session.getAttribute(“na”);
PrintWriter pw = res.getWriter();
pw.println(“Hello, “+na+” this is second servlet”);
}
}
web.xml
<?xml version=“1.0” encoding=“UTF-8”?>
<web-app xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns=“https://jakarta.ee/xml/ns/jakartaee” xsi:schemaLocation=“https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd” id=“WebApp_ID” version=“5.0”>
<display-name>sessiondemo</display-name>
<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>sessiondemo.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>abc</servlet-name>
<url-pattern>/first</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>xyz</servlet-name>
<servlet-class>sessiondemo.SecondServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/second</url-pattern>
</servlet-mapping>
</web-app>
Cookie
Definition
Cookies are small pieces of data stored on the client’s browser to maintain state between client and server in stateless HTTP protocol.
Purpose
Track user sessions
Store user preferences
Implement login systems
Creating and Sending a Cookie
Cookie ck = new Cookie(“username”, “suresh”);
response.addCookie(ck);
Reading Cookies
Cookie[] cookies = request.getCookies();
for (Cookie ck : cookies) {
if (ck.getName().equals(“username”)) {
String name = ck.getValue();
}
}
Methods
| Method | Description |
|---|---|
| getName() | Returns the cookie's name |
| getValue() | Returns the cookie's value |
| setMaxAge(int seconds) | Sets the cookie’s lifetime |
| getMaxAge() | Gets cookie expiration time |
Example
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset=“UTF-8”>
<title>Insert title here</title>
</head>
<body>
<form action=“first”>
<label>Enter Name : </label>
<input type=“text” name=“txtname” />
<input type=“submit” value=“Click Me” />
</form>
</body>
</html>
.
FirstServlet.java
package cookiedemo;
import java.io.IOException;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class FirstServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res ) throws IOException {
String name = req.getParameter(“txtname”);
Cookie c = new Cookie(“na”,name);
res.addCookie(c);
res.sendRedirect(“second”);
}
}
SecondServlet.java
package cookiedemo;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class SecondServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
String na=null;
Cookie cookies[] = req.getCookies();
for(Cookie c : cookies) {
if(c.getName().equals(“na”)) {
na = c.getValue();
}
}
PrintWriter pw = res.getWriter();
pw.println(“Hello “+na+” Welcome to 2nd Servlet”);
}
}
web.xml
<?xml version=“1.0” encoding=“UTF-8”?>
<web-app xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns=“https://jakarta.ee/xml/ns/jakartaee” xsi:schemaLocation=“https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd” id=“WebApp_ID” version=“5.0”>
<display-name>cookiedemo</display-name>
<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>cookiedemo.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>abc</servlet-name>
<url-pattern>/first</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>xyz</servlet-name>
<servlet-class>cookiedemo.SecondServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xyz</servlet-name>
<url-pattern>/second</url-pattern>
</servlet-mapping>
</web-app>
