Java后端开发——房贷计算器(Ajax版、Json版、等额本息+等额本金)

这篇具有很好参考价值的文章主要介绍了Java后端开发——房贷计算器(Ajax版、Json版、等额本息+等额本金)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MVC房贷计算器(Ajax版)

1.新建一个JavaWeb项目hslcalweb,设置tomcat10。
2.创建房贷计算器JavaBean:HslCalBean.java,增加以下的属性,并生成Getter/Setter方法。

private double total;     //贷款额度
	private int loanyear;  //贷款年限
	private double rate;      //年利率
	
	private double interest;  //总利息
	private double repayment; //每月还款
	private int loanNumber; //贷款期数
	private double repayTotal; //还款总额
	private StringBuffer results;  //等额本金,还款列表字符串

3.生成默认和带三个已知参数的构造方法。

	public HslCalBean(double total, int loanyear, double rate) {
		super();
		this.total = total;
		this.loanyear = loanyear;
		this.rate = rate;
	}

	public HslCalBean() {
		super();
	}

4.增加计算器的计算方法cal()

public void cal() {
		double mrate=rate/12;            //月利率=年利率/12
		loanNumber=loanyear*12;          //贷款期数=年限*12
		
		//总利息=贷款额*贷款月数*月利率*(1+月利率)贷款月数/[(1+月利率)还款月数 - 1]-贷款额
		interest = (total*10000*loanNumber*mrate*Math.pow(mrate+1,loanNumber))/(Math.pow(mrate+1,loanNumber)-1)-total*10000; 
		
		//还款总额=还款月数*贷款额*月利率*(1+月利率)贷款月数/[(1+月利率)还款月数 - 1]
		repayTotal=(loanNumber* total*10000*mrate*Math.pow(mrate+1,loanNumber))/(Math.pow(mrate+1,loanNumber)-1); 
		
		 //每月还款=贷款本金×[月利率×(1+月利率)^还款月数]÷{[(1+月利率)^还款月数]-1}
        repayment =total*10000*(mrate* Math.pow(mrate+1,loanNumber))/(Math.pow(mrate+1,loanNumber)-1);   
	}

5.增加一个测试类HslTest.java,对JavaBean测试,并对比结果是否正确。
public class HslTest {
	public static void main(String[] args) {
		DecimalFormat df=new DecimalFormat("#.00");
		HslCalBean hslCal= new HslCalBean(50,30, 0.043) ;
		hslCal.cal();
		System.out.println("贷款总额:"+hslCal.getTotal()+"元");
		System.out.println("总利息:"+df.format(hslCal.getInterest())+"元");
		System.out.println("还款总额:"+df.format(hslCal.getRepayTotal())+"元");
		System.out.println("还款期数:"+df.format(hslCal.getLoanNumber())+"月");
		System.out.println("月均还款:"+df.format(hslCal.getRepayment())+"元");
		
	}
}

6.新建一个控制器Servlet:HslCalServlet.java,映射的URL:/hslcal,从浏览器输入参数调用房贷计算器JavaBean。

public class HslCalServlet extends HttpServlet {
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		double total=Double.parseDouble(request.getParameter("total"));
		int loanyear=Integer.parseInt(request.getParameter("loanyear"));
		double rate=Double.parseDouble(request.getParameter("rate"));
		
		DecimalFormat df=new DecimalFormat("#.00");
		HslCalBean hslCal= new HslCalBean(total,loanyear, rate) ;
		hslCal.cal();
		response.setCharacterEncoding("UTF-8");
		response.setHeader("content-type","text/html;charset=UTF-8");
		PrintWriter out=response.getWriter();
		out.println("贷款总额:"+hslCal.getTotal()+"元<hr>");
		out.println("总利息:"+df.format(hslCal.getInterest())+"元<hr>");
		out.println("还款总额:"+df.format(hslCal.getRepayTotal())+"元<hr>");
		out.println("还款期数:"+df.format(hslCal.getLoanNumber())+"月<hr>");
		out.println("月均还款:"+df.format(hslCal.getRepayment())+"元<hr>");
	}
}

7.引入JQuery库,存放在webapp/js/jquery-3.6.4.min.js路径下。
链接:https://pan.baidu.com/s/1_wOpxn6wUBDbGsqx0VSPpw?pwd=2023
提取码:2023
8.新建一个房贷计算器表单页面hslcal_ajax.html,完成表单设计,让用户从网页输入参数,并提交服务器端Servlet小程序计算结果。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>房贷计算器</title>
<script type="text/javascript" src="js/jquery-3.6.4.min.js"></script>
<script type="text/javascript">
$(function(){
	$('#btn_cal').click(function(){
			  	$.ajax({
			 		url:"hslcal",
			 		type:"POST",
			 		data:$("#calform").serialize(),
			 		success:function(data){
			 			$('#result').val(data);
			 		},
			 		error:function(data){
			 			alert("error!")
			 		}	
			 	});   
	});
})
</script> 
</head>
<body>
<h3>房贷计算器2023</h3>
<form id="calform">
<table border=1>
<tr><td>贷款总额:</td><td><input id="total" name="total" type="text" ></td></tr>
<tr><td>按揭年数:</td><td>
  <select id="loanyear" name="loanyear">
  <option value="5">5年(50期)</option>
  <option value="10">10年(120期)</option>
  <option value="20">20年(240期)</option>
  <option value="30">30年(360期)</option>
</select></td></tr>
<tr><td>贷款利率:</td><td>
  <select id="rate" name="rate">
  <option value="0.0365">3.65%(5年及5年以内)</option>
  <option value="0.043">4.3%(5年以上)</option>
</select></td></tr>
<tr><td colspan="2" align="center">
<input type="button" id="btn_cal" value="开始计算"/>
</td></tr>
<tr><td colspan="2" align="center">
<textarea id="result" rows="8" cols="50"></textarea>
</td></tr>
</table>
</form>
</body>
</html>

9.运行效果
Java后端开发——房贷计算器(Ajax版、Json版、等额本息+等额本金),大数据,JAVA后端开发,H5前端开发,1024程序员节,前端,javascript,大数据,java,jar,json

MVC房贷计算器(Json版)

1.引入Java的JSON的工具库jackson,存放于路径webapp/WEB-INF/lib下面。
所需要包链接:https://pan.baidu.com/s/1fPUCBotqCOwYnsUrTyiG8g?pwd=2023
提取码:2023
Java后端开发——房贷计算器(Ajax版、Json版、等额本息+等额本金),大数据,JAVA后端开发,H5前端开发,1024程序员节,前端,javascript,大数据,java,jar,json
2.新建一个房贷计算器表单页面hslcal_json.html,完成表单设计,让用户从网页输入参数,并提交服务器端Servlet小程序计算结果。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>房贷计算器</title>
<script type="text/javascript" src="js/jquery-3.6.4.min.js"></script>
<script type="text/javascript">
$(function(){
	$('#btn_cal').click(function(){
			  	$.ajax({
			 		url:"hslcaljackson",
			 		type:"POST",
			 		dataType:'json',
			 		data:$("#calform").serialize(),
			 		success:function(data){
			 			$('.total').val(data.total);
			 			$('.interest').val(data.interest);
			 			$('.repayTotal').val(data.repayTotal);
			 			$('.loanyear').val(data.loanyear);
			 			$('.repayment').val(data.repayment);
			 		},
			 		error:function(data){
			 			console.log(data);
			 		}	
			 	});   
	});
	
	$('#loanyear').change(function(){

		if($(this).val()>5)
			$('#rate').get(0).value = 0.043;
		else
			$('#rate').get(0).value = 0.0365;
	})
})
</script> 
</head>
<body>
<h3>房贷计算器2023</h3>
<form id="calform">
<table border=1>
<tr><td>贷款总额:</td><td><input id="total" name="total" type="text" ></td></tr>
<tr><td>按揭年数:</td><td>
  <select id="loanyear" name="loanyear">
  <option value="2">2年(24期)</option>
  <option value="5">5年(50期)</option>
  <option value="10">10年(120期)</option>
  <option value="20">20年(240期)</option>
  <option value="30">30年(360期)</option>
</select></td></tr>
<tr><td>贷款利率:</td><td>
  <select id="rate" name="rate">
  <option value="0.0365">3.65%(5年及5年以内)</option>
  <option value="0.043">4.3%(5年以上)</option>
</select></td></tr>
<tr><td colspan="2" align="center">
<input type="button" id="btn_cal" value="开始计算"/>
</td></tr>
<tr><td colspan="2">计算结果</td></tr>
<tr><td>贷款总额</td><td> <input class="total" type="text"></td></tr>
<tr><td>总利息</td><td> <input class="interest" type="text"></td></tr>
<tr><td>还款总额</td><td> <input class="repayTotal" type="text"></td></tr>
<tr><td>还款期数</td><td> <input class="loanyear" type="text"></td></tr>
<tr><td>月均还款</td><td> <input class="repayment" type="text"></td></tr>
</table>
</form>

</body>
</html>

10.新建一个控制器Servlet:HslCalJsonServlet.java,映射的URL:/hslcaljackson,从浏览器输入参数调用房贷计算器JavaBean,利用Jackson生成JSON结果返回。

public class HslCalJacksonServlet extends HttpServlet {

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		double total=Double.parseDouble(request.getParameter("total"));
		int loanyear=Integer.parseInt(request.getParameter("loanyear"));
		double rate=Double.parseDouble(request.getParameter("rate"));
		String repayType=request.getParameter("repayType");
		DecimalFormat df=new DecimalFormat("#.00");
		HslCalBean hslCal= new HslCalBean(total,loanyear, rate) ;
		hslCal.cal();
		response.setCharacterEncoding("UTF-8");
		response.setHeader("content-type","text/html;charset=UTF-8");
		PrintWriter out=response.getWriter();
		ObjectMapper objectMapper = new ObjectMapper();
		String json = objectMapper.writeValueAsString(hslCal);
		out.print(json);
	}
}

11.运行效果
Java后端开发——房贷计算器(Ajax版、Json版、等额本息+等额本金),大数据,JAVA后端开发,H5前端开发,1024程序员节,前端,javascript,大数据,java,jar,json

MVC房贷计算器(等额本息+等额本金)

1.给房贷计算器JavaBean类HslCalBean.java增加等额本金的属性,并设置getter/setter。

private StringBuffer results;  //等额本金,还款列表字符串

2.给房贷计算器JavaBean类HslCalBean.java增加等额本金的计算方法cal2()。

public void cal2() {
		double mrate=rate/12;            //月利率=年利率/12
		loanNumber=loanyear*12;          //贷款期数=年限*12
		interest=  (loanNumber+1)*total*10000*mrate/2;          //总利息=(还款月数+1)×贷款额×月利率/2
		repayTotal=interest+total*10000;          //还款总额= 总利息 + 贷款额
		double totalm=total*10000/loanNumber;      // 每月本金=总本金/还款月数
		                                   
		double totalsum=0;
		results=new StringBuffer("\"");
		DecimalFormat df=new DecimalFormat("#.00");
		for(int i=1;i<=loanNumber;i++) {
			double repayment=totalm+(total*10000-totalsum)*mrate;    // 每月还款= 每月本金 +(本金-累计已还本金)×月利率
			totalsum+=totalm;                               //累计已还本金
			results.append(i+"月,"+df.format(repayment)+"\\n");
		}
		results.append("\"");
	}

3.修改控制器类HslCalServlet.java,通过repayType区分前端选择等额本息还是等额本金,执行相应处理逻辑代码。

String repayType=request.getParameter("repayType");
		if(repayType.equals("1")) {
			hslCal.cal();
			out.print("{");
			out.print("\"total\":"+df.format(hslCal.getTotal())+",");
			out.print("\"interest\":"+df.format(hslCal.getInterest())+",");
			out.print("\"repayTotal\":"+df.format(hslCal.getRepayTotal())+",");
			out.print("\"loanyear\":"+df.format(hslCal.getLoanyear())+",");
			out.print("\"repayment\":"+df.format(hslCal.getRepayment()));
			out.print("}");
		}else if(repayType.equals("2")) {
			hslCal.cal2();
			out.print("{");
			out.print("\"total\":"+df.format(hslCal.getTotal())+",");
			out.print("\"interest\":"+df.format(hslCal.getInterest())+",");
			out.print("\"repayTotal\":"+df.format(hslCal.getRepayTotal())+",");
			out.print("\"loanyear\":"+df.format(hslCal.getLoanyear())+",");
			out.print("\"results\":"+hslCal.getResults());
			out.print("}");
		}

4.修改房贷计算器表单页面hslcal_json.html
1)增加还款方式标记

<tr><td>月均还款</td><td>
<input class="repayment" type="text">
<textarea class="results" cols="20" rows="20" hidden="true"></textarea>
</td></tr>

3)在JQuery的入口函数$(function(){}中增加,两种还款方式的切换代码

$('.repayType').change(function(){
		var radioVal=$(this).val();
		if(radioVal=='1'){
			$('.repayment').show();
			$('.results').hide();
		}else if(radioVal=='2'){
			$('.repayment').hide();
			$('.results').show();
		}
	})

4)在$.ajax函数中的success:function(data){}中,增加对等额本金的标记设置。

$('.results').val(data.results);

6.运行效果
Java后端开发——房贷计算器(Ajax版、Json版、等额本息+等额本金),大数据,JAVA后端开发,H5前端开发,1024程序员节,前端,javascript,大数据,java,jar,json文章来源地址https://www.toymoban.com/news/detail-718910.html

到了这里,关于Java后端开发——房贷计算器(Ajax版、Json版、等额本息+等额本金)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 房贷计算器微信小程序原生语言

    效果: 输入 300万 结果 还款明细 一共有3个页面 1、输入页面 2、结果页面 3、详情页面 index.wxml文件

    2024年04月28日
    浏览(65)
  • Java中规模软件开发实训——简单计算器制作

    ✨ 博主: 命运之光 🌸 专栏: Python星辰秘典 🐳 专栏: web开发(html css js) ❤️ 专栏: Java经典程序设计 ☀️ 博主的其他文章: 点击进入博主的主页 前言: 在现代社会中,计算器是我们生活中不可或缺的工具之一。它们可以轻松地进行各种数值计算,从简单的加减乘除

    2024年02月12日
    浏览(49)
  • Java后端开发——Ajax、jQuery和JSON

    Ajax全称是Asynchronous Javascript and XML,即异步的JavaScript和 XML。Ajax是一种Web应用技术,该技术是在JavaScript、DOM、服务器配合下,实现浏览器向服务器发送异步请求。 Ajax异步请求方式不向服务器发出请求,会得到数据后再更新页面(通过DOM操作修改页面内容),整个过程不会发

    2024年02月03日
    浏览(51)
  • JAVA制作的简易计算器——傻瓜计算器

    用JAVA编写的傻瓜计算器 作用: 1.可以实现加法、减法、乘法、除法简单运算且是单一运算,不可混合使用。 2.CE为清除键 3.没有小数点O(∩_∩)O 思路: 创建JFrame窗口,设置标题,创建JButton,创建文本框JTextField用作显示。 先定义各种按钮类型,用作成员。定义窗口方法对窗口

    2024年02月11日
    浏览(45)
  • Java 实现计算器

    *使用Java语言编写一个能实现“加、减、乘、除”四则运算的计算器程序。* 要求: (1)在程序中要体现面向对象编程语言的三大特征:封装、继承和多态。 (2)该程序要易于扩展和复用。以后可以方便地增加新的运算;程序的业务逻辑与界面部分要实现分离,便于业务逻

    2024年02月12日
    浏览(40)
  • Java编写计算器

    主要用JAVA编写一个计算器,能实现加减乘除、开平方、求阶乘等计算功能,计算器有图形化界面,能对异常进行处理,并且检验输入的合法性,对不合法的输入给出具体的提示信息 代码如下    

    2024年02月11日
    浏览(35)
  • JAVA简易计算器

    1.C是清除键,功能是将之前所输入的数字、计算结果等信息全部归零 2.CE,清除当前输入的数据或符号 3.单击MS存储当前显示值,可以理解为放到存储区 4.单击MC清除存储区数值 5.单击MR将存储区数据显示到屏幕上 6.M+:当前显示的数与存储区的数相加 7.M-:当前显示的数与存储

    2024年02月09日
    浏览(53)
  • java 简易计算器

    1.使用Java图形界面组件设计软件,界面如图所示。 2.软件能够满足基本的“加、减、乘、除”等运算要求。 3.程序代码清晰,语法规范,结构合理,逻辑正确。 先分析,计算器大概是由三个大部分组成的:菜单栏,显示框,按钮。 所以定义一个类cal继承JFrame。 我们定义完后

    2024年02月01日
    浏览(50)
  • Java编写简单计算器

    本文用 Java 的 swing 来实现一个简单计算器,主要内容为图形用户界面GUI的实现以及运算表达式核心算法的设计编写。 程序运行环境为Windows10 ,编译环境为IntelliJ IDEA Community Edition 2022.2.3 一、具体功能: 1、:输入,输出  输入:允许输入带有括号的完整计算式(例 8*(4-95)

    2024年02月04日
    浏览(42)
  • Java计算器简易代码

    我写的计算器 网上搜的进阶版本 拿走不谢!

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包