1.
“Hello World” Servlet Program:
Program Description:
This servlet handles HTTP GET requests and generates a basic HTML
response.
Folder Structure:
demo/
├── src/
│ └── main/
│ └── java/
│ └── com/
│ └── FirstwebApp/
│ └── helloworld.java
├── webapp/
│ └── WEB-INF/
| └── web.xml
│ └── index.jsp
├── target/
└── pom.xml
Code:
package com.FirstwebApp;
import java.io. IOException;
import javax. servlet. http. HttpServlet;
import javax. servlet. Http. HttpServletRequest;
import javax. servlet. http. HttpServletResponse;
import java.io.*;
public class helloworld extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException,IOException {
response.setContentType("text/html");
response.getWriter().println("Hello from Servlet");
}}
Index JSP Program:
Program Description:
This JSP page contains a basic HTML structure with a hyperlink that directs
users to the servlet.
Code:
<html>
<body>
<h2>Hello World! </h2>
<h1><a href= “. /firstservlet">Click here</a></h1>
</body>
</html>
Output:
The servlet outputs a simple message: 'Hello from Servlet'.
• Web.xml:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.example.myServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myServlet</url-pattern>
</servlet-mapping>
</web-app>
2. SignIn Servlet Program:
Program Description:
This servlet processes a user's login credentials by retrieving the
username and password from the request. It prints the credentials to
the console and also displays them in the HTTP response.
Code - signin.java:
package com.example;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class signin extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
String userName = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("User Name: " + userName);
System.out.println("Password: " + password);
PrintWriter out = response.getWriter();
out.println("User Name: " + userName);
out.println("Password: " + password);
}
}
Code - index.jsp:
<!DOCTYPE html>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h2>Login</h2>
<form action="./submit" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username"
required><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"
required><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
Output:
• Web.xml:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>submit</servlet-name>
<servlet-class>com.example. signin</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>submit</servlet-name>
<url-pattern>/submit</url-pattern>
</servlet-mapping>
</web-app>
3. Cookies:
Program Description:
Stores username in a cookie in the first servlet and retrieves it in the second
servlet.
Folder Structure:
cookies/
├── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ ├── CookiesServlet1.java
│ │ └── CookiesServlet2.java
│ └── webapp/
│ ├── WEB-INF/
│ │ └── web.xml
│ └── index.jsp
└── pom.xml
Code: CookiesServlet1.java
package com.example;
import java.io. * ;
import javax. servlet. *;
import javax. servlet. http. * ;
public class CookiesServlet1 extends HttpServlet {
protected void doGet (HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response. setContentType("text/html");
PrintWriter out = response. getWriter ();
String username = request. getParameter ("username");
// Create a cookie
Cookie cookie = new Cookie ("username", username);
response. addCookie(cookie);
out. println ("<h1>Welcome " + username + "</h1>");
out. println ("<a href='cookieservlet2'>Go to Second Servlet</a>");
}
}
Code: CookiesServlet2.java
package com.example;
import java.io. * ;
import javax. servlet. * ;
import javax. servlet. http. * ;
public class CookiesServlet2 extends HttpServlet {
protected void doGet (HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response. setContentType("text/html");
PrintWriter out = response. getWriter ();
// Read cookies
Cookie [] cookies = request. getCookies ();
if (cookies! = null) {
for (Cookie cookie: cookies) {
if (cookie. getName (). equals("username")) {
out. println("<h1>Welcome " + cookie. getValue () + "</h1>");
} else {
out. println("<h1>No cookies found! < /h1>");
Web.xml:
<web-app>
<servlet>
<servlet-name>CookiesServlet1</servlet-name>
<servlet-class>com.example. CookiesServlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CookiesServlet1</servlet-name>
<url-pattern>/cookieservlet1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>CookiesServlet2</servlet-name>
<servlet-class>com.example. CookiesServlet2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CookiesServlet2</servlet-name>
<url-pattern>/cookieservlet2</url-pattern>
</servlet-mapping>
</web-app>
Index.jsp:
<!DOCTYPE html>
<html>
<head>
<title>Login with Cookies</title>
</head>
<body>
<form action="cookieservlet1" method="GET">
<label for="username">Username:</label>
<input type="text" id="username" name="username"
required><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"
required><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
Output:
4. Hidden Form Fields:
Program Description:
Passes username using a hidden form field between servlets.
Folder Structure:
hidden_form/
├── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ ├── HiddenFormServlet1.java
│ │ └── HiddenFormServlet2.java
│ └── webapp/
│ ├── WEB-INF/
│ │ └── web.xml
│ └── index.jsp
└── pom.xml
Code: HiddenFormServlet1.java
package com.example;
import java.io. *;
import javax. servlet. *;
import javax. servlet. http.*;
public class HiddenFormServlet1 extends HttpServlet {
protected void doGet (HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response. setContentType("text/html");
PrintWriter out = response. getWriter ();
String username = request. getParameter ("username");
out. println ("<h1>Welcome " + username + "</h1>");
out. println ("<form action='hiddenformservlet2' method='POST'>");
out. println ("<input type='hidden' name='hiddenUname' value='" +
username + "'>");
out. println ("<input type='submit' value='Submit Hidden Data'>");
out. println ("</form>");
}
}
Code: HiddenFormServlet2.java
package com.example;
import java.io. * ;
import javax. servlet. *;
import javax. servlet. http. *;
public class HiddenFormServlet2 extends HttpServlet {
protected void doPost (HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response. setContentType("text/html");
PrintWriter out = response. getWriter ();
String hiddenName = request. getParameter ("hiddenUname");
out. println ("<h1>Hidden Form Data Received: " + hiddenName +
"</h1>");
Web.xml:
<web-app>
<servlet>
<servlet-name>HiddenFormServlet1</servlet-name>
<servlet-class>com.example. HiddenFormServlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HiddenFormServlet1</servlet-name>
<url-pattern>/hiddenformservlet1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>HiddenFormServlet2</servlet-name>
<servlet-class>com.example. HiddenFormServlet2 </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HiddenFormServlet2</servlet-name>
<url-pattern>/hiddenformservlet2</url-pattern>
</servlet-mapping>
</web-app>
Index.jsp:
<!DOCTYPE html>
<html>
<head>
<title>Login with Hidden Form</title>
</head>
<body>
<form action="hiddenformservlet1" method="GET">
<label for="username">Username:</label>
<input type="text" id="username" name="username"
required><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"
required><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
Output:
5. HTTP Session Management:
Program Description:
Stores username in an HTTP session in the first servlet and retrieves it in the
second servlet.
Folder Structure:
http_session/
├── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ ├── SessionServlet1.java
│ │ └── SessionServlet2.java
│ └── webapp/
│ ├── WEB-INF/
│ │ └── web.xml
│ └── index.jsp
└── pom.xml
Code: SessionServlet1.java
package com.example;
import java. io. * ;
import javax. servlet. *;
import javax. servlet. http.*;
public class SessionServlet1 extends HttpServlet {
protected void doGet (HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response. setContentType text/html");
PrintWriter out = response. getWriter ();
String username = request. getParameter ("username");
// Create a session and store username
HttpSession session = request. getSession();
session. setAttribute ("uname", username);
out. println("<h1>Welcome " + username + "</h1>");
out. println ("<a href='sessionservlet2'>Submit Using
HttpSession</a>");
}
}
Code: SessionServlet2.java
package com.example;
import java.io. * ;
import javax. servlet. *;
import javax. servlet. http. *;
public class SessionServlet2 extends HttpServlet {
protected void doGet (HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response. setContentType ("text/html");
PrintWriter out = response. getWriter ();
// Retrieve session
HttpSession session = request. getSession (false); // Do not create a new
session
if (session! = null) {
String name=(String)session. getAttribute ("uname");
out. print ("Hello from HttpSession Object "+name);
}
else {
out. println ("<h1>No active session found! < /h1>");
Index.jsp:
<!DOCTYPE html>
<html>
<head>
<title>Login with HTTP Session Management</title>
</head>
<body>
<h2>Login</h2>
<form action="sessionservlet1" method="GET">
<label for="username">Username:</label>
<input type="text" id="username" name="username"
required><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"
required><br><br>
<button type="submit">Login</button>
</form>
</body>
</html>
Output:
Web.xml :
<web-app>
<servlet>
<servlet-name>SessionServlet1</servlet-name>
<servlet-class>com.example. SessionServlet1 </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SessionServlet1</servlet-name>
<url-pattern>/sessionservlet1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>SessionServlet2</servlet-name>
<servlet-class>com.example. SessionServlet2 </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SessionServlet2</servlet-name>
<url-pattern>/sessionservlet2</url-pattern>
</servlet-mapping>
</web-app>
6. URL Rewriting:
Program Description:
Passes username via URL query parameters between servlets.
Folder Structure:
url_rewriting/
├── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ ├── URLRewritingServlet1.java
│ │ └── URLRewritingServlet2.java
│ └── webapp/
│ ├── WEB-INF/
│ │ └── web.xml
│ └── index.jsp
└── pom.xml
Code: URLRewritingServlet1.java
package com.example;
import java. io. * ;
import javax. servlet. *;
import javax. servlet. http.*;
public class URLRewritingServlet1 extends HttpServlet {
protected void doGet (HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response. setContentType ("text/html");
PrintWriter out = response. getWriter ();
String username = request. getParameter ("uname");
out. println ("<a href='servlet2?uname= "+n+"'>URL Rewriting</a>");
}
}
Code: URLRewritingServlet2.java
package com.example;
import java.io. * ;
import javax. servlet. *;
import javax. servlet. http.*;
public class URLRewritingServlet2 extends HttpServlet {
protected void doGet (HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
response. setContentType ("text/html");
PrintWriter out = response. getWriter ();
// Retrieve username from query string
String n=request. getParameter ("uname");
out. print ("Hello from URL Rewriting "+n);
}
Index.jsp:
<!DOCTYPE html>
<html>
<head>
<title>Login with URL Rewriting</title>
</head>
<body>
<form action="urlrewritingservlet1" method="GET">
<label for="username">Username:</label>
<input type="text" id="username" name="username"
required><br><br>
<button type="submit">Submit</button>
</form>
</body>
</html>
Output:
Web.xml:
<web-app>
<servlet>
<servlet-name>URLRewritingServlet1</servlet-name>
<servlet-class>com.example. URLRewritingServlet1 </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>URLRewritingServlet1</servlet-name>
<url-pattern>/urlrewritingservlet1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>URLRewritingServlet2</servlet-name>
<servlet-class>com.example. URLRewritingServlet2 </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>URLRewritingServlet2</servlet-name>
<url-pattern>/urlrewritingservlet2</url-pattern>
</servlet-mapping>
</web-app>