Java Lab Assignment
Java Lab Assignment
import java.io.IOException;
import java.io.PrintWriter;
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 javax.servlet.http.HttpSession;
/**
* Servlet implementation class HelloServlet
*/
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
super();
// TODO Auto-generated constructor stub}
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
// TODO Auto-generated method stub
PrintWriter out=response.getWriter();
response.setContentType("text/html");
HttpSession hs=request.getSession(true);
String uname=(String)hs.getAttribute("username");
String pwd=(String)request.getAttribute("password");
out.println("<h1>Hello World!!!</h1>");
out.println("<h1>Welcome "+uname+" , your password is "+pwd+"!!!</h1>");
}
}
Login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="LoginServlet">
<br>Enter User Id<input type="text" name="t1">
<br>Enter Password<input type="password" name="t2">
<br><input type="submit" value="submit">
</form>
</body>
</html>
LoginServlet
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
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 javax.servlet.http.HttpSession;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
// TODO Auto-generated method stub
PrintWriter out=response.getWriter();
response.setContentType("text/html");
String uid=request.getParameter("t1");
String pass=request.getParameter("t2");
RequestDispatcher rd=null;
HttpSession hs=request.getSession(true);
ServletContext sc=getServletContext();
if(uid.equals("abcd")&&pass.equals("abcd123"))
{
//out.println("<h1>Welcome "+uid+" , your password is "+pass+"!!!</h1>");
hs.setAttribute("username", uid);
request.setAttribute("password", pass);
//rd=sc.getRequestDispatcher("/HelloServlet");
response.sendRedirect("HelloServlet");
}
else{
//out.println("<h1>Invalid User!!!</h1>");
//rd=request.getRequestDispatcher("Login.html");
response.sendRedirect("Login.html");
}
//rd.forward(request, response);
}
}
#home.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Railway Reservation System</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin: 50px; }
h1 {
color: #333; }
.links {
margin-top: 20px;
a{
display: inline-block;
margin: 10px;
padding: 10px 20px;
text-decoration: none;
color: white;
background-color: #007bff;
border-radius: 5px;
font-size: 16px; }
a:hover {
background-color: #0056b3;}
</style>
</head>
<body>
<h1>Welcome to the Railway Reservation System</h1>
<div class="links">
<a href="booking.html">Book Tickets</a>
<a href="cancel.html">Cancel Tickets</a>
</div>
</body>
</html>
Table creation
CREATE TABLE TRAIN1 (
TRAIN_NO VARCHAR2(5) PRIMARY KEY,
TRAIN_NAME VARCHAR2(20) NOT NULL,
TOTAL_SEAT NUMBER
);
CREATE TABLE BOOKING1 (
PNR VARCHAR2(5) PRIMARY KEY,
NOP NUMBER
);
INSERT INTO TRAIN1 VALUES ('TR01', 'RAJDHANI', 100);
INSERT INTO TRAIN1 VALUES ('TR002', 'SHATABDI', 120);
NSERT INTO TRAIN1 VALUES ('TR003', 'MUMBAIEXP', 80);
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE('Error occurred during booking: ' || SQLERRM);
END;
/
#booking.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Book Train Tickets</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
form {
max-width: 400px;
margin: auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 10px;
background-color: #f9f9f9; }
label {
display: block;
margin: 10px 0 5px; }
input, button {
width: 100%;
padding: 10px;
margin: 10px 0;
border: 1px solid #ccc;
border-radius: 5px; }
button {
background-color: #28a745;
color: #fff;
font-size: 16px;
border: none;
cursor: pointer; }
button:hover {
background-color: #218838; }
</style>
</head>
<body>
<h2>Book Train Tickets</h2>
<form action="BookingServlet" method="post">
<label for="trainNo">Train Number:</label>
<input type="text" id="trainNo" name="trainNo" placeholder="Enter Train Number" required>
<label for="nop">Number of Passengers:</label>
<input type="number" id="nop" name="nop" placeholder="Enter Number of Passengers" min="1" required>
<button type="submit">Book Ticket</button>
</form>
</body>
</html>
Booking Servlet
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/BookingServlet")
public class BookingServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String trainNo = request.getParameter("trainNo"); // Train number
int nop = Integer.parseInt(request.getParameter("nop")); // Number of passengers
Connection conn = null;
CallableStatement cstmt = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "system", "1234");
if (conn == null) {
out.println("Connection not created");
} else {
out.println("Connection created successfully<br>");
}
// Preparing the call to the PROC_BOOK_TICKET stored procedure
String sql = "{CALL PROC_BOOK_TICKET(?, ?, ?)}"; // Calls the booking stored procedure
cstmt = conn.prepareCall(sql);
Cancel.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cancel Train Booking</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;}
form {
max-width: 400px;
margin: auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 10px;
background-color: #f9f9f9; }
label {
display: block;
margin: 10px 0 5px; }
input, button {
width: 100%;
padding: 10px;
margin: 10px 0;
border: 1px solid #ccc;
border-radius: 5px;
}
button {
background-color: #dc3545;
color: #fff;
font-size: 16px;
border: none;
cursor: pointer; }
button:hover {
background-color: #c82333; }
</style>
</head>
<body>
<h2>Cancel Train Booking</h2>
<form method="post" action="CancelServlet">
<label for="pnr">PNR Number:</label>
<input type="text" id="pnr" name="pnr" placeholder="Enter PNR Number" required>
<label for="nop">Number of Passengers (NOP):</label>
<input type="number" id="nop" name="nop" placeholder="Enter Number of Passengers" min="1" required>
<label for="trn">Train Number (TRN):</label>
<input type="text" id="trn" name="trn" placeholder="Enter Train Number" required>
<button type="submit">Cancel Booking</button>
</form>
</body>
</html>
CancelServlet.java
import java.io.IOException;
import java.io.PrintWriter;
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.sql.*;
@WebServlet("/CancelServlet")
public class CancelServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public CancelServlet() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
response.setContentType("text/html");
String oldPnr = request.getParameter("pnr"); // Old PNR to delete
int nop = Integer.parseInt(request.getParameter("nop")); // Number of passengers
String trn = request.getParameter("trn"); // Train number
Connection con = null;
CallableStatement cs = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "system", "1234");
if (con == null) {
out.println("Connection not created");
return;
} else {
out.println("Connection created<br>");
}
// Prepare the callable statement to call the PROC_CANCEL_TICKET procedure
cs = con.prepareCall("{CALL PROC_CANCEL_TICKET(?, ?, ?)}");
cs.setString(1, oldPnr); // Old PNR
cs.setInt(2, nop); // Number of passengers
cs.setString(3, trn); // Train number
cs.execute();
out.println("<h1>Ticket Cancellation Successful</h1>");
out.println("<p>PNR: " + oldPnr + " has been cancelled successfully.</p>");
out.println("<p>Train Number: " + trn + "</p>");
out.println("<p>Seats Released: " + nop + "</p>");
} catch (SQLException e) {
out.println("<h1>SQL Error</h1>");
out.println("<p>" + e.getMessage() + "</p>");
e.printStackTrace();
} catch (Exception e) {
out.println("<h1>Error</h1>");
out.println("<p>" + e.getMessage() + "</p>");
e.printStackTrace();
} finally {
try {
if (cs != null) cs.close();
if (con != null) con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
NOP_FROM_TAB NUMBER;
BEGIN
-- Fetch the NOP from BOOKING1 table based on the provided PNR
COMMIT;
COMMIT;
ELSE
END IF;
EXCEPTION
ROLLBACK;
END;