Wtexp 10
Wtexp 10
Aim: Design and implement a business interface with necessary business logic for any web
application using EJB. e.g. Design and implement the web application logic for deposit and
withdraw amount transactions using EJB.
Code:
bank.jsp:
<%@ page language="java" %>
<!DOCTYPE html>
<html>
<head>
<title>Banking Page</title>
</head>
<body>
<h2>Bank Transaction</h2>
<form method="post" action="bank">
<label>Amount:</label>
<input type="number" step="0.01" name="amount" required />
<br><br>
<button type="submit" name="action" value="deposit">Deposit</button>
<button type="submit" name="action" value="withdraw">Withdraw</button>
</form>
</body>
</html>
-------------------------------------------------------------------------------------------------------------------------------------
BankService.java:
package ejb;
import jakarta.ejb.Remote;
@Remote
public interface BankService {
double deposit(double amount);
double withdraw(double amount);
double getBalance();
}
-------------------------------------------------------------------------------------------------------------------------------------------
BankServiceBean.java:
package ejb;
import jakarta.ejb.Stateless;
@Stateless
public class BankServiceBean implements BankService {
private double balance = 0;
@Override
public double deposit(double amount) {
balance += amount;
return balance;
}
@Override
public double withdraw(double amount) {
if (amount <= balance) {
balance -= amount;
} else {
throw new RuntimeException("Insufficient balance.");
}
return balance;
}
@Override
public double getBalance() {
return balance;
}
}
------------------------------------------------------------------------------------------------------------------------------
BankServlet.jav:
package servlet;
import ejb.BankService;
import jakarta.ejb.EJB;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/bank")
public class BankServlet extends HttpServlet {
@EJB
private BankService bankService;
try {
if ("deposit".equals(action)) {
newBalance = bankService.deposit(amount);
} else {
newBalance = bankService.withdraw(amount);
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h2>Transaction Successful!</h2>");
out.println("<p>New Balance: $" + newBalance + "</p>");
} catch (Exception e) {
response.getWriter().println("<h3>Error: " + e.getMessage() + "</h3>");
}
}
}
-----------------------------------------------------------------------------------------------------------------------------------
Web.xml:
<!-- WebContent/WEB-INF/web.xml -->
<web-app>
<servlet>
<servlet-name>BankServlet</servlet-name>
<servlet-class>servlet.BankServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BankServlet</servlet-name>
<url-pattern>/bank</url-pattern>
</servlet-mapping>
</web-app>
-------------------------------------------------------------------------------------------------------------------------------------------
Output: