土壤质地标准转换程序Java MVC模式
本程序主要简单实现土壤质地标准的转换,即美国制,国际制,中国制,苏联制之间的相互转换,为了简便起见,本程序只分为黏粒,粉粒,砂粒三大类。
本程序的效果如下:

程序的eclipse界面

本程序采用了mvc模式。程序组织结构为:
A.soil.html为网页界面;
B.receivedata.js为嵌入soil.html的JavaScript,采用ajax来接收用户输入的参数,将参数传至servlet,并接收servlet传来的结果,再将结果显示在HTML的文本框中;
C.包servlet下的controlServlet.java即为控制层,用来接收ajax传来的用户参数,并将这些参数传至模型层Convert.java进行处理,并获取Convert.java处理结果,再将结果传至ajax;
D.Convert.java为本程序的核心,即为一个Java类。实现土壤质地标准的转换;
程序实现如下:
soil.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>土壤类型转换</title>
<link rel="stylesheet" type="text/css" href="reg.css">
<link rel="stylesheet" type="text/css" href="style.css"><script type="text/javascript">
</script>
</head>
<body>
<p align="left" style="width:530px;line-height:22px"><strong>土壤质地标准转换</strong>:可以实现国际制,美国制,苏联制,中国制这四种不同土壤质地划分标准的相互转换。本程序将土壤质地划分为黏粒,粉粒,砂粒三大类,输入某类标准下的黏粒,粉粒,砂粒的百分比含量即可得出目标标准制度下的百分比含量。</p><div id="reg"><table width="98%" border="0" align="center" cellpadding="3" cellspacing="1">
<caption>土壤质地标准转换</caption><tr><td align="right"><span class="style">请选择所使用的类型:</span></td><td><span class="style"><select id="selectid1"><option value="1" selected>国际制</option><option value="2">美国制</option><option value="3">苏联制</option><option value="4">中国制</option></select></span></td>
</tr>
<form name="form1" id="form1">
<tr><td align="right" class="style">请输入百分比含量:</td><td class="style">黏粒:<input  id="clayInput" type="text" size="10"></td><td class="style">粉粒:<input  id="particalInput" type="text" size="10"></td><td class="style">砂粒:<input  id="sandInput" type="text" size="10"></td></tr>
</form>
<tr><td align="right" class="style">请选择结果类型:</td><td><span class="style"><select id ="selectid2"><option value="5" selected>国际制</option><option value="6">美国制</option><option value="7">苏联制</option><option value="8">中国制</option></select></span></td>
</tr><tr>
<td align="right" class="style">输出结果:</td><td class="style">黏粒:<input  id="clayOut" type="text" size="10"></td><td class="style">粉粒:<input  id="particalOut" type="text" size="10"></td><td class="style">砂粒:<input  id="sandOut" type="text" size="10"></td>
</tr><tbody align="right">
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td><input type="button" id="submit" name="submit" value="提交" /><input type = "reset" id = "reset" name = "reset" onclick="javascript:document.form1.reset();" value = "重置"></td>
</tr><tfoot align="right">
<tr><td colspan="4"><font size="-1">注:文本框中输入数值即可,无需输入百分号,转换结果保留两位小数</font></td>
</tr>
</tfoot>
</tbody>
</table>
</div>
<table width="98%" border="0" align="center" cellpadding="3" cellspacing="1">
<tr><td >&nbsp;</td><td align="center"><span id="msg"></span></td>
</tr></table></body>
<script src="jquery-2.1.1.min.js"></script>
<script src="receivedata.js"></script>
</html>
receivedata.js
$('#submit').on('click', function()//点击提交按钮{var clayInput = document.getElementById("clayInput").value;//获取用户输入的黏粒数值var particalInput = document.getElementById("particalInput").value;//用户输入的粉粒数值var sandInput = document.getElementById("sandInput").value;//砂粒var selectoption=$("#selectid1").val();//用户选择的制度标准var selectoption2=$("#selectid2").val(); //data为ajax传送给servlet的参数var data="clay=" + clayInput + "&partical=" + particalInput + "&sand=" + sandInput+"&select1=" +selectoption+"&selectTarget="+selectoption2;//用户输入参数不合法的处理if(clayInput<0 || clayInput>100||particalInput<0||particalInput>100||sandInput<0||sandInput>100){ $("#msg").html("<font color=red>请输入0~100之间的数值!");return;}if((parseFloat(clayInput) + parseFloat(particalInput) + parseFloat(sandInput))>100){$("#msg").html("<font color=red>输入数值总和应小于100!");return;}if(clayInput==""|| particalInput==""||sandInput==""){$("#msg").html("<font color=red>数值不能为空!");return;}if(isNaN(clayInput)||isNaN(particalInput)||isNaN(sandInput)){$("#msg").html("<font color=red>输入数据必须为数字!");return;}//用户输入合法时程序的处理if(clayInput && particalInput && sandInput){$("#msg").html("");var xmlHttpRequest=null;if(window.ActiveXObject){xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}else if(window.XMLHttpRequest){xmlHttp=new XMLHttpRequest();}if(null!=xmlHttp){var url="./controlServlet?timeStamp=" + new Date().getTime();    xmlHttp.open("POST",url,true);  //采用post方式提交xmlHttp.onreadystatechange=handleStateChange;  xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  xmlHttp.send(data);  //传送参数data}}});//当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState 改变时,就会触发 onreadystatechange 事件。//当 readyState 等于 4 且状态为 200 时,表示响应已就绪function handleStateChange()  {  if(xmlHttp.readyState==4)  {  if(xmlHttp.status==200)  //请求成功{  parseResults();  }  }  }  function parseResults()  //解析后台传回的数据{   var responseText=document.createTextNode(xmlHttp.responseText);  //alert("后台返回的返回值: "+xmlHttp.responseText);var field=xmlHttp.responseText.split(" ");$("#clayOut").attr("value",field[0]);$("#particalOut").attr("value",field[1]);$("#sandOut").attr("value",field[2]);}

controlServlet.java

package servlet;import java.io.IOException;
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 servlet.Convert;//引入Convert.java
/*** Servlet implementation class controlServlet*/
@WebServlet("/controlServlet")
public class controlServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public controlServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。  java.io.PrintWriter out = response.getWriter(); String clayInput = request.getParameter("clay");//获取ajax传来的参数String particalInput = request.getParameter("partical");String sandInput = request.getParameter("sand");String standard = request.getParameter("select1");String standard2 = request.getParameter("selectTarget");Convert convert = new Convert(clayInput, particalInput, sandInput, standard, standard2);//实例化对象String result = convert.selectStandard();out.println(result);//request.setAttribute("result", result);//RequestDispatcher requestDispatcher = request.getRequestDispatcher("soil.html");//requestDispatcher.forward(request, response);}}

Convert.java

package servlet;
import java.text.NumberFormat ;
public class Convert
{private String clayInput=null;  private String particalInput=null;  private String sandInput=null;private String standard=null;  private String standard2=null;// variable used to print in htmlpublic String clayOut = null;public String particalOut = null;public String sandOut = null;public Convert(String clayInput,String particalInput,String sandInput,String standard,String standard2){this.setclayInput(clayInput);this.setparticalInput(particalInput);this.setsandInput(sandInput);this.setstandard(standard);this.setstandard2(standard2);}public void setclayInput(String clayInput)  {  this.clayInput=clayInput;  }   public String getclayInput() {  return clayInput;  }  public void setparticalInput(String particalInput)  {  this.particalInput=particalInput;  }   public String getparticalInput() {  return particalInput;  }  public void setsandInput(String sandInput)  {  this.sandInput=sandInput;  }   public String getsandInput() {  return sandInput;  }  public void setstandard(String standard)  {  this.standard=standard;  }   public String getstandard() {  return standard;  } public void setstandard2(String standard2)  {  this.standard2=standard2;  }   public String getstandard2() {  return standard2;  } public String selectStandard() {clayInput = clayInput.trim();particalInput = particalInput.trim();sandInput = sandInput.trim();double clayInput1 = Double.parseDouble(clayInput);double particalInput1 = Double.parseDouble(particalInput);double sandInput1 = Double.parseDouble(sandInput);NumberFormat f=NumberFormat.getInstance();f.setMaximumFractionDigits(2);String result = null;if((standard.equals("1") && standard2.equals("5"))||(standard.equals("2") && standard2.equals("6"))||(standard.equals("3") && standard2.equals("7"))||(standard.equals("4") && standard2.equals("8")))//same to same{clayOut = clayInput;particalOut = particalInput;sandOut = sandInput;result= clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("1") && standard2.equals("6"))//inter to usa{clayOut = clayInput;particalOut = f.format(particalInput1+sandInput1*0.015);sandOut = f.format(sandInput1*0.985);result=clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("1") && standard2.equals("7"))//inter to ussr{clayOut=f.format(clayInput1*0.5);particalOut = f.format(particalInput1+clayInput1*0.5+sandInput1*0.015);sandOut=f.format(sandInput1*0.48);result=clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("1") && standard2.equals("8"))//inter to China{clayOut = f.format(clayInput1+particalInput1*0.167);particalOut = f.format(particalInput1*0.833+sandInput1*0.015);sandOut = f.format(sandInput1*0.48);result=clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("2") && standard2.equals("5"))//usa to inter{clayOut = clayInput;particalOut = f.format(particalInput1*0.375);sandOut = f.format(sandInput1+particalInput1*0.625);result=clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("2") && standard2.equals("7"))//usa to ussr{clayOut = f.format(clayInput1*0.5);particalOut = f.format(clayInput1*0.5+particalInput1);sandOut = f.format(sandInput1*0.487);result=clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("2") && standard2.equals("8"))//usa to china{clayOut = f.format(clayInput1+particalInput1*0.0625);particalOut = f.format(particalInput1*0.9375);sandOut = f.format(sandInput1*0.487);result=clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("3") && standard2.equals("5"))//ussr to inter{clayOut = f.format(clayInput1+particalInput1*0.0204);particalOut = f.format(particalInput1*0.367);sandOut = f.format(particalInput1*0.612+sandInput1);result=clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("3") && standard2.equals("6"))//ussr to usa{clayOut = f.format(clayInput1+particalInput1*0.0204);particalOut = f.format(particalInput1*0.9796);sandOut = sandInput;result=clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("3") && standard2.equals("8"))//ussr to China{clayOut = f.format(clayInput1+particalInput1*0.0816);particalOut = f.format(particalInput1*0.918);sandOut = sandInput;result=clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("4") && standard2.equals("5"))//China to inter{clayOut = f.format(clayInput1*0.4);particalOut = f.format(clayInput1*0.6+particalInput1*0.3333);sandOut = f.format(sandInput1+particalInput1*0.666);result=clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("4") && standard2.equals("6"))//China to usa{clayOut = f.format(clayInput1*0.4);particalOut = f.format(clayInput1*0.6+particalInput1);sandOut = sandInput;result=clayOut+" "+particalOut+" "+sandOut;//return result;}if(standard.equals("4") && standard2.equals("7"))//China to ussr{clayOut = f.format(clayInput1*0.2);particalOut = f.format(clayInput1*0.8+particalInput1);sandOut = sandInput;result=clayOut+" "+particalOut+" "+sandOut;//return result;}return result;}}

程序中使用了jquery,需要引入相应文件,如jquery-2.1.1.min.js

土壤质地标准转换程序Java MVC模式相关推荐

  1. java mvc模式_Java MVC模式

    MVC模式表示:模型 -视图 - 控制器模式.此模式用于分离应用程序的问题. 模型(Model) - 模型表示携带数据的对象或JAVA POJO.如果其数据改变它也可以具有逻辑来更新控制器. 视图(V ...

  2. Java MVC模式和三层架构

    MVC 是一种分层开发的模式: M:Model,业务模型,处理业务 V:View,视图,界面展示 C:Controller,控制器,处理请求,调用模型和视图 三层架构分别是 表现层 . 业务逻辑层 . ...

  3. java mvc模式工作流程_SpringMVC的简介和工作流程

    一.简介 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.Spri ...

  4. MVC模式在.NET框架中的应用与实现 (转)

    MVC模式在.NET框架中的应用与实现   引言 .NET开发平台是由微软公司近年来推出的新型体系结构,在Microsoft .NET框架下,建立大型的Web应用和Web服务变得更加便捷.如何在.NE ...

  5. MVC模式在.NET框架中的应用与实现

    0           引言 ­ .NET开发平台是由微软公司近年来推出的新型体系结构,在Microsoft .NET框架下,建立大型的Web应用和Web服务变得更加便捷.如何在.NET框架下构建健壮 ...

  6. MVC模式 在Java Web应用程序中的实现

    一.MVC简介 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分 ...

  7. java 框架mvc_JAVA框架-MVC模式

    MVC MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式.这种模式用于应用程序的分层开发. Model(模型) - 模型代表一个存取数据的对象或 JAVA PO ...

  8. java struts2 mvc_struts2的MVC模式

    MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而得到更好的开发和维护效率. 在MVC模式中,应用程序被划分成了模型(Model).视 ...

  9. java EE开发之Servlet第八课:MVC模式 (基本理解)

    ##1,为什么需要MVC模式? 为什么需要MVC模式,以前简单的JSP页面处理不好吗?MVC有什么好处呢? 答:MVC就是常说的: 模型(Model):POJO(Plain Old Java Obje ...

  10. Java面向对象和MVC模式设计练习——快递管理系统

    快递管理系统 一.任务概述 二.MVC设计模式 1.定义 2.优点 a.低耦合 b.复用性强 三.思路梳理 1.MVC架构设计 a.Controller b.Model c.View 2.流程控制 3 ...

最新文章

  1. flower.php,flowerlist.php
  2. Qt 设置应用程序图标
  3. C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
  4. YBTOJ洛谷P3209:平面图判定(2-SAT)
  5. java string常见操作题
  6. OpenGL基础22:贴图
  7. Python OS使用
  8. 小波变换 分离影像低频部分_连续小波变换(1)
  9. excel图表模板免费下载_40个免费的信息图表模板下载
  10. 苹果/微软/特斯拉的产品美学——向丑而生?
  11. 美团饿了么返利公众号小程序搭建(付源码)
  12. 辛意云教授讲《论语》
  13. Be Better:遇见更好的自己-2016年记
  14. 两种敏捷开发方式的工作流介绍
  15. m基于FPGA的GPS收发系统开发,包括码同步,载波同步,早迟门跟踪环,其中L1采用QPSK,L2采用BPSK
  16. python-opencv 读取摄像头并保存为.mp4视频 及 VideoCapture()的使用
  17. 名图怎么弄云服务器_“双车”战略,名图如何驱动新兴细分市场
  18. JavaSE学习---I/O流学习分享
  19. JavaScript中this工作原理
  20. 互联网著作权行政保护办法 信息网络传播权保护条例

热门文章

  1. 软件工程师的衰落与程序员的崛起
  2. 蓝桥杯——等差素数列(c语言)
  3. EChart如何实现中国地图和省份下钻
  4. 微信小程序自动化测试——智能化 Monkey
  5. FTL 算法之Arbiter
  6. Android__逆向__xpose使用
  7. dhtmlxgantt pro 7.1.10 | dhtmlxgantt 专业版 7.1.10
  8. stm32教程之三重ADC交错采样
  9. html5常用的小控件,收藏了
  10. 电脑浏览器打不开html文档,电脑浏览器打不开本地html文件