70 FalguniDabhi PA2
70 FalguniDabhi PA2
Roll No : 70
Sem : 8th
Subject : java
M.sc (it)
_____________________________________
Practical Assignment-1
1) Provide an attractive home page . The home page
must have facility to login, register new user and
remember password and recover forgot password
facility.
Registration.jsp :-
</body>
</html>
Login.jsp :-
forgot-password.jsp :-
</body>
</html>
Conn.java :-
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt
to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit
this template
*/
// conn.java
// conn.java
package Conn;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
LoginServlet.java
:package servlets;
import Conn.conn;
// Database connection
conn myConnection = new conn();
Connection con = myConnection.connect();
if (con != null) {
try {
// SQL query to check login credentials
String sql = "SELECT * FROM UserTB WHERE username = ? AND password =
?";
try (PreparedStatement pstmt = con.prepareStatement(sql))
{ pstmt.setString(1, username);
pstmt.setString(2, password);
RegisterServlet.java :-
// RegisterServlet.java
package servlets;
import Conn.conn;
// Database connection
conn myConnection = new conn();
Connection con = myConnection.connect();
if (con != null) {
try {
// SQL query to insert into UserTB
String sql = "INSERT INTO UserTB (username, login_id, password,
password_question, password_answer, email, phone, address, city, state, country,
pin) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
// Create a PreparedStatement
try (PreparedStatement pstmt = con.prepareStatement(sql)) {
// Set parameters
pstmt.setString(1, username);
pstmt.setString(2, loginId);
pstmt.setString(3, password);
pstmt.setString(4, passwordQuestion);
pstmt.setString(5, passwordAnswer);
pstmt.setString(6, email);
pstmt.setString(7, phone);
pstmt.setString(8, address);
pstmt.setString(9, city); pstmt.setString(10,
state); pstmt.setString(11, country);
pstmt.setString(12, pin);
// Execute the insert statement
int rowsAffected = pstmt.executeUpdate();
ResetPasswordServlet.java
Conn.conn;
// Database connection
conn myConnection = new conn();
Connection con = myConnection.connect();
if (con != null) {
try {
// SQL query to update the password in UserTB
String sql = "UPDATE UserTB SET password = ? WHERE email = ?";
try (PreparedStatement pstmt = con.prepareStatement(sql)) {
pstmt.setString(1, newPassword);
pstmt.setString(2, email);
// Execute the update statement
int rowsAffected = pstmt.executeUpdate();
category.jsp :-
</body>
</html>
addCategory.jsp :-
</body>
</html>
editCategory.jsp :-
</body>
</html>
product.jsp :-
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Product Management</title>
<!-- Include Bootstrap CSS -->
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<style>
body {
padding: 20px;
}
h2 {
margin-bottom: 20px;
} table { width:
100%; margin-bottom:
20px; border-collapse:
collapse;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
} th, td {
text-align: left;
padding: 12px;
border-bottom: 1px solid #ddd;
}
th {
background-color: #f8f9fa;
font-weight: bold;
}
.action-links a {
margin-right: 10px;
color: #007bff;
}
.action-links a:hover {
text-decoration: underline;
}
a{
color: #007bff;
} a:hover {
color: #0056b3;
text-decoration: none;
}
</style>
</head>
<body>
</body>
</html>
addProduct.jsp :-
editProduct.jsp :-
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt
to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit
this template
*/
// conn.java
// conn.java
package Conn;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to
change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Other/File.java to edit this
template
*/
package Conn;
/**
*
* @author root
*/
public class Category {
// Constructors
public Category() {
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to
change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this
template
*/
package Conn;
/**
*
* @author root
*/
public class Product {
private int productId;
private String productName;
private double price;
private String unit;
private double discount;
private String image;
private int categoryId;
private int stock;
dao;
import Conn.Category;
import Conn.conn;
import java.sql.Connection;
import
java.sql.PreparedStatement;
import java.sql.ResultSet; import
java.sql.SQLException; import
java.util.ArrayList; import
java.util.List;
while (rs.next()) {
Category category = new Category();
category.setCategoryId(rs.getInt("Category_id"));
category.setCategoryName(rs.getString("Category_name"));
category.setParentCategoryId(rs.getInt("Parent_c_id"));
categories.add(category);
}
} catch (SQLException e) {
e.printStackTrace();
}
return categories;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
pstmt.setInt(1, categoryId);
try (ResultSet rs = pstmt.executeQuery()) {
if (rs.next()) {
category.setCategoryId(rs.getInt("Category_id"));
category.setCategoryName(rs.getString("Category_name"));
category.setParentCategoryId(rs.getInt("Parent_c_id"));
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return category;
}
pstmt.setString(1, category.getCategoryName());
pstmt.setInt(2, category.getParentCategoryId());
pstmt.setInt(3, category.getCategoryId());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
pstmt.setInt(1, categoryId);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
ProductDAO.java :-
package dao;
import Conn.conn;
import Conn.Product;
import java.sql.Connection;
import
java.sql.PreparedStatement;
import java.sql.ResultSet; import
java.sql.SQLException; import
java.util.ArrayList; import
java.util.List;
} catch (SQLException e) {
e.printStackTrace();
}
return products;
}
pstmt.setString(1, product.getProductName());
pstmt.setDouble(2, product.getPrice());
pstmt.setString(3, product.getUnit());
pstmt.setDouble(4, product.getDiscount());
pstmt.setString(5, product.getImage());
pstmt.setInt(6, product.getCategoryId());
pstmt.setInt(7, product.getStock());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
pstmt.setInt(1, productId);
try (ResultSet rs = pstmt.executeQuery()) {
if (rs.next()) {
product.setProductId(rs.getInt("Product_id"));
product.setProductName(rs.getString("Product_name"));
product.setPrice(rs.getDouble("Price"));
product.setUnit(rs.getString("Unit"));
product.setDiscount(rs.getDouble("Discount"));
product.setImage(rs.getString("Image"));
product.setCategoryId(rs.getInt("Category_id"));
product.setStock(rs.getInt("Stock"));
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return product;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
pstmt.setInt(1, productId);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
CategoryServlet.java :package
servlets;
import Conn.Category;
import dao.CategoryDAO;
import javax.servlet.ServletException; import
javax.servlet.annotation.WebServlet; import
javax.servlet.http.HttpServlet; import
javax.servlet.http.HttpServletRequest; import
javax.servlet.http.HttpServletResponse;
import java.io.IOException; import static
java.lang.System.out; import java.util.List;
if (action != null) {
switch (action) {
case "add":
// Show add category form
request.getRequestDispatcher("addCategory.jsp").forward(request,
response);
break;
case "edit":
// Show edit category form int categoryId =
Integer.parseInt(request.getParameter("id")); Category category
= categoryDAO.getCategoryById(categoryId);
request.setAttribute("category", category);
request.getRequestDispatcher("editCategory.jsp").forward(request,
response);
break;
case "delete":
// Perform delete category operation
int deleteCategoryId =
Integer.parseInt(request.getParameter("id"));
categoryDAO.deleteCategory(deleteCategoryId);
response.sendRedirect("CategoryServlet"); break; default:
break;
}
} else {
// Display the list of categories
List<Category> categories = categoryDAO.getAllCategories();
request.setAttribute("categories", categories);
request.getRequestDispatcher("category.jsp").forward(request, response);
}
}
if (action=="add") {
categoryDAO.addCategory(newCategory);
} else if ("edit".equals(action)) {
int categoryId = Integer.parseInt(request.getParameter("categoryId"));
newCategory.setCategoryId(categoryId);
categoryDAO.updateCategory(newCategory);
}
}
response.sendRedirect("CategoryServlet");
}
}
ProductServlet.java :package
servlets;
import dao.ProductDAO;
import Conn.Product;
if (action != null) {
switch (action) {
case "add":
// Show add product form
request.getRequestDispatcher("addProduct.jsp").forward(request,
response);
break;
case "edit":
// Show edit product form int productId =
Integer.parseInt(request.getParameter("id")); Product
product = productDAO.getProductById(productId);
request.setAttribute("product", product);
request.getRequestDispatcher("editProduct.jsp").forward(request,
response);
break;
case "delete":
// Perform delete product operation
int deleteProductId = Integer.parseInt(request.getParameter("id"));
productDAO.deleteProduct(deleteProductId);
response.sendRedirect("ProductServlet");
break; default: break;
}
} else {
// Display the list of products
List<Product> products = productDAO.getAllProducts();
request.setAttribute("products", products);
request.getRequestDispatcher("product.jsp").forward(request, response);
}
}
if ("add".equals(action)) {
productDAO.addProduct(newProduct);
} else if ("edit".equals(action)) {
int productId = Integer.parseInt(request.getParameter("productId"));
newProduct.setProductId(productId);
productDAO.updateProduct(newProduct);
}
}
response.sendRedirect("ProductServlet");
}
}
Output :-