Develop a Loan Calculator Program in Servlet
x
43
43
1
import javax.servlet.http.*;
2
import java.io.*;
3
import java.text.*;
4
public class RegPayS extends HttpServlet {
5
double principal;
6
double intRate;
7
double numYears;
8
final int payPerYear = 12;
9
NumberFormat nf;
10
public void doGet(HttpServletRequest request,
11
HttpServletResponse response)
12
throws ServletException, IOException {
13
String payStr = "";
14
nf = NumberFormat.getInstance();
15
nf.setMinimumFractionDigits(2);
16
nf.setMaximumFractionDigits(2);
17
String amountStr = request.getParameter("amount");
18
String periodStr = request.getParameter("period");
19
String rateStr = request.getParameter("rate");
20
try {
21
if(amountStr != null && periodStr != null &&
22
rateStr != null) {
23
principal = Double.parseDouble(amountStr);
24
numYears = Double.parseDouble(periodStr);
25
intRate = Double.parseDouble(rateStr) / 100;
26
payStr = nf.format(compute());
27
}
28
else {
29
amountStr = "";
30
periodStr = "";
31
rateStr = "";
32
}
33
} catch (NumberFormatException exc) {
34
// Take appropriate action here.
35
}
36
37
response.setContentType("text/html");
38
39
PrintWriter pw = response.getWriter();
40
41
pw.print("" +
42
"
43
<form action="\"http://localhost:8080/"" name="\"Form1\""">" + "<b>Enter amount to finance:</b>" + " <input name="\"amount\""" size="12" type="textbox" value="\"");" />"); pw.print(" <b>Enter term in years:</b>" + " <input name="\"period\""+" size="12" type="textbox" value="\"");" />"); pw.print(" <b>Enter interest rate:</b>" + " <input name="\"rate\""" size="12" type="textbox" value="\"");" />"); pw.print(" <b>Monthly Payment:</b>" + " <input name="\"payment\"" readonly="readonly" size="12" type="textbox"" value="\"");" />"); pw.print(" <input type="submit" value="\"Submit\"" />"); pw.println("</form>"); } double compute() { double numer; double denom; double b, e; numer = intRate * principal / payPerYear; e = -(payPerYear * numYears); b = (intRate / payPerYear) + 1.0; denom = 1.0 - Math.pow(b, e); return numer / denom; } }