Practical Java Merged
Practical Java Merged
1
Output
2
Practical 2: Write a servlet program to count the number of visits on a
webpage.
Solu:
Servlet Code (HitCounterServlet.java)
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.ServletContext;
response.setContentType("text/html");
PrintWriter out = response.getWriter();
if (count == null) {
count = 1; // Initialize if first visit
} else {
count++; // Increment counter
}
3
Output
4
Practical 3: Write a servlet code to redirect the user to a Google search page
based on the text entered by the user.
Solu:
@WebServlet("/search")
public class GoogleSearchServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String query = request.getParameter("query");
if (query != null && !query.trim().isEmpty()) {
String googleSearchURL = "https://www.google.com/search?q=" + query;
response.sendRedirect(googleSearchURL);
} else {
response.getWriter().println("Please enter a search term!");
5
}
}
}
Output
6
Practical 4: Write a servlet program to implement include() and forward()
methods.
Solu:
HTML File (index.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servlet Include & Forward Example</title>
</head>
<body>
<h2>Choose an Action:</h2>
<form action="MainServlet" method="post">
<button type="submit" name="action" value="Include">Include</button>
<button type="submit" name="action" value="Forward">Forward</button>
</form>
</body>
</html>
@WebServlet("/MainServlet")
public class MainServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
7
String action = request.getParameter("action"); // Get button value
if ("Include".equals(action)) {
out.println("<h2>MainServlet: Processing Include...</h2>");
RequestDispatcher dispatcher = request.getRequestDispatcher("IncludeServlet");
dispatcher.include(request, response);
} else if ("Forward".equals(action)) {
RequestDispatcher dispatcher = request.getRequestDispatcher("ForwardServlet");
dispatcher.forward(request, response);
}
}
}
@WebServlet("/IncludeServlet")
public class IncludeServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h3>IncludeServlet: This content is INCLUDED.</h3>");
}
}
@WebServlet("/ForwardServlet")
public class ForwardServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h3>ForwardServlet: You were FORWARDED here!</h3>");
}
}
9
Output
10
Practical 5: Write a program to read multiple form values and display them
on a webpage.
Solu:
HTML Code (index.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Read Multiple Form Values</title>
</head>
<body>
<h2>Enter Your Details</h2>
<form action="FormServlet" method="post">
<label for="name">Name:</label>
<input type="text" id="name" name="name" required><br><br>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required><br><br>
<label for="message">Message:</label><br>
<textarea id="message" name="message" rows="4" cols="30"
required></textarea><br><br>
<button type="submit">Submit</button>
</form>
</body>
</html>
11
@WebServlet("/FormServlet")
public class FormServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
12
Output
13
Practical 6: Write a program in servlet to demonstrate the use of HTTPS
session for storing and retrieving user data.
Solu:
HTML Code (index.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Session Example</title>
</head>
<body>
<h2>Login Form</h2>
<form action="SessionServlet" method="post">
<label for="username">Enter Name:</label>
<input type="text" id="username" name="username" required>
<button type="submit">Login</button>
</form>
<br>
<a href="RetrieveServlet">Retrieve Session Data</a>
</body>
</html>
@WebServlet("/SessionServlet")
public class SessionServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
14
response.setContentType("text/html");
PrintWriter out = response.getWriter();
@WebServlet("/RetrieveServlet")
public class RetrieveServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
if (username != null) {
15
out.println("<h2>Stored Session Data:</h2>");
out.println("<p>Username: " + username + "</p>");
} else {
out.println("<h2>No session data found. Please login again.</h2>");
}
}
}
16
Output
17
Practical 7: Write servlet code to use cookies for storing & retrieving user
information.
Solu:
HTML Code (index.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cookie Example</title>
</head>
<body>
<h2>Login Form (Using Cookies)</h2>
<form action="CookieServlet" method="post">
<label for="username">Enter Name:</label>
<input type="text" id="username" name="username" required>
<button type="submit">Save in Cookie</button>
</form>
<br>
<a href="RetrieveCookieServlet">Retrieve Stored Cookie</a>
</body>
</html>
@WebServlet("/CookieServlet")
public class CookieServlet extends HttpServlet {
18
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// Create cookie
Cookie userCookie = new Cookie("username", encodedUsername);
userCookie.setMaxAge(60 * 60); // 1 hour expiration
response.addCookie(userCookie);
// Retrieve cookies
19
Cookie[] cookies = request.getCookies();
String username = "Guest";
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName())) {
username = URLDecoder.decode(cookie.getValue(), "UTF-8");
break;
}
}
}
out.println("<h2>Stored Username:</h2>");
out.println("<p>" + username + "</p>");
}
}
20
Output
21
Practical 8: Write a program using servlet to connect to the employee
database to display and store employee information.
Solu:
Create the EmployeeDB database and employees table:
CREATE DATABASE EmployeeDB;
USE EmployeeDB;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/EmployeeServlet")
public class EmployeeServlet extends HttpServlet {
private static final String DB_URL = "jdbc:mysql://localhost:3306/EmployeeDB";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "Admin@123";
@Override
22
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
String department = request.getParameter("department");
String salary = request.getParameter("salary");
try {
Class.forName("com.mysql.cj.jdbc.Driver"); // Ensures JDBC driver is loaded
try (Connection con = DriverManager.getConnection(DB_URL, DB_USER,
DB_PASSWORD)) {
String query = "INSERT INTO employees (name, department, salary) VALUES
(?, ?, ?)";
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, name);
ps.setString(2, department);
ps.setDouble(3, Double.parseDouble(salary));
response.sendRedirect("index.html");
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h2>Employee List</h2>");
23
try {
Class.forName("com.mysql.cj.jdbc.Driver");
try (Connection con = DriverManager.getConnection(DB_URL, DB_USER,
DB_PASSWORD)) {
String query = "SELECT * FROM employees";
PreparedStatement ps = con.prepareStatement(query);
ResultSet rs = ps.executeQuery();
out.println("<table
border='1'><tr><th>ID</th><th>Name</th><th>Department</th><th>Salary</th></tr>")
;
while (rs.next()) {
out.println("<tr><td>" + rs.getInt("id") + "</td><td>" + rs.getString("name")
+
"</td><td>" + rs.getString("department") + "</td><td>" +
rs.getDouble("salary") + "</td></tr>");
}
out.println("</table>");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
24
<h2>View Employees</h2>
<form action="EmployeeServlet" method="get">
<input type="submit" value="Show Employees">
</form>
</body>
</html>
Output
25
Practical 9: Write a program using JSP scriptlet to display the name entered
by the user.
Solu:
JSP Code (index.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>Enter Name</title>
</head>
<body>
<form action="display.jsp" method="post">
Enter Name: <input type="text" name="username" required>
<input type="submit" value="Submit">
</form>
</body>
</html>
26
Output
27
Practical 10: Write JSP code to display the date and time.
Solu:
JSP Code (dateTime.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ page import="java.util.Date" %>
<!DOCTYPE html>
<html>
<head>
<title>Current Date & Time</title>
</head>
<body>
<h2>Current Date and Time: <%= new Date() %></h2>
</body>
</html>
Output
28
Practical 11: Write a program using implicit objects (request, response, out)
to display user information.
Solu:
JSP Code (userInfo.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>User Information</title>
</head>
<body>
<h2>User Information</h2>
<p><b>IP Address:</b> <%= request.getRemoteAddr() %></p>
<p><b>Browser:</b> <%= request.getHeader("User-Agent") %></p>
<p><b>Request Method:</b> <%= request.getMethod() %></p>
</body>
</html>
Output
29
Practical 12: Write a program using JSP to create a registration form and
connect it to a database to store the information.
Solu:
Create the UserDB database and users table:
CREATE DATABASE UserDB;
USE UserDB;
30
<form action="register.jsp" method="post">
Name: <input type="text" name="name" required><br>
Email: <input type="email" name="email" required><br>
Password: <input type="password" name="password" required><br>
<input type="submit" value="Register">
</form>
</body>
</html>
try {
Class.forName("com.mysql.cj.jdbc.Driver"); // Load JDBC driver
con = DriverManager.getConnection(dbURL, dbUser, dbPassword);
String query = "INSERT INTO users (name, email, password) VALUES (?, ?, ?)";
ps = con.prepareStatement(query);
ps.setString(1, name);
ps.setString(2, email);
ps.setString(3, password);
int rowsAffected = ps.executeUpdate();
if (rowsAffected > 0) {
out.println("<h3>Registration Successful!</h3>");
} else {
out.println("<h3>Registration Failed. Try again.</h3>");
}
} catch (Exception e) {
out.println("<h3>Error: " + e.getMessage() + "</h3>");
e.printStackTrace();
} finally {
31
if (ps != null) ps.close();
if (con != null) con.close();
}
%>
<a href="index.jsp">Go Back</a>
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection(dbURL, dbUser, dbPassword);
String query = "SELECT * FROM users";
PreparedStatement ps = con.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
out.println("<tr><td>" + rs.getInt("id") + "</td><td>" + rs.getString("name")
+
"</td><td>" + rs.getString("email") + "</td></tr>");
}
rs.close();
ps.close();
con.close();
} catch (Exception e) {
out.println("<tr><td colspan='3'>Error: " + e.getMessage() + "</td></tr>");
}
%>
</table>
32
<a href="index.jsp">Register Another User</a>
</body>
</html>
Output
33
Practical 13: Write JSP code to calculate the factorial of a number entered
by the user.
Solu:
JSP Code (factorial.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>Factorial Calculator</title>
</head>
<body>
<form action="" method="post">
Enter a number: <input type="number" name="num" required>
<input type="submit" value="Calculate">
</form>
<%
String numStr = request.getParameter("num");
if (numStr != null) {
int num = Integer.parseInt(numStr);
int fact = 1;
for (int i = 1; i <= num; i++) {
fact *= i;
}
out.println("<h3>Factorial of " + num + " is: " + fact + "</h3>");
}
%>
</body>
</html>
Output
34
Practical 14: Write JSP code to display the reverse of a number entered by
the user.
Solu:
JSP Code (reverse.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>Reverse Number</title>
</head>
<body>
<form action="" method="post">
Enter a number: <input type="number" name="num" required>
<input type="submit" value="Reverse">
</form>
<%
String numStr = request.getParameter("num");
if (numStr != null) {
int num = Integer.parseInt(numStr);
int rev = 0, temp = num;
while (temp != 0) {
rev = rev * 10 + temp % 10;
temp /= 10;
}
out.println("<h3>Reverse of " + num + " is: " + rev + "</h3>");
}
%>
</body>
</html>
Output
35