jsp实现一个简单的计算器

<!-- 这是一个计算器 -->
<%@ page contentType="text/html; charset=gb2312" %>
<html>
	<h1>计算器</h1>
	
	<hr>
	
	<script language = "javascript">
		function checkNum(){
		
		//		alert("1");alert("0");
			if(document.form1.num1.value == ""){  //注意这里只能使用 == 不能使用equals("")以为js中没有equals函数				alert("num为空");
				return false;
			}
			//判断输入的的是不是数字
			if(Math.round(document.form1.num1.value) != document.form1.num1.value){
				alert("输入的不是num1数字类型。请核实");
				return false;
			}
			
			if(Math.round(document.form1.num2.value) != document.form1.num2.value){
				alert("输入的不是num2数字类型。请核实");
				return false;
			}
			if(document.form1.operator.value == "/" && document.form1.num2.value == 0){
				alert("除数不能为0");
				return false;
			}
			
			
		}
	</script>
	
	
	<body>

			<!-- 显示结果 -->
			
			<!-- 
			<%
				//接受第一个运算数
				String strNum1 = request.getParameter("num1");
				
				//接受第二个云算数
				String strNum2 = request.getParameter("num2");
				//System.out.println("strNum2="+ strNum2);
				//接受运算符
				String operator = request.getParameter("operator");
				//计算结果
				int num11=0, num22=0,result=0;
				
				out.println("12345");
				
				if(strNum1 != null && strNum2 != null && operator != null){
				out.println("不等于空=============");
				//	return false;
				try{
					
					num11 = Integer.parseInt(strNum1);
					num22 = Integer.parseInt(strNum2);
					
					if(operator.equals("+")){
						result = num11 + num22;
					}else if(operator.equals("-")){
						result = num11 - num22;
					}else if(operator.equals("*")){
						result = num11 * num22;
					}else if(operator.equals("/")){
						result = num11/num22;
					}
				
				}catch(Exception e){
					e.printStackTrace();
					out.println("12345678");
				}
			
			
				//	 out.println(strNum1+operator+strNum2+"="+ result);
		
				}
			 
			  %>
			  
			   -->
			
			
		<form name = "form1" action="myCal.jsp">
		请输入第一个数:<input type="text" name="num1" value="<%=strNum1 %>"><br>
		<select name = "operator">
			<option value=+>+</option>
			<option value=->-</option>
			<option value=*>*</option>
			<option value=/>/</option>
			
		</select><br>
		请输入第二个数:<input type="text" name="num2"  value="<%=strNum2 %>"><br>
		
		
		<input type=submit οnclick="return checkNum()" value="等于">
		
		</form>
		
		 
		结果:<%= strNum1%><%=operator %><%= strNum2%>=<%= result %>
	</body>
</html>

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个简易的jsp+servlet计算器实现步骤: 1. 创建一个JSP页面,包含一个表单,其中表单中有两个输入框,一个下拉框和一个提交按钮。下拉框中包含加、减、乘、除四个选项。 2. 在表单中提交按钮的onclick事件中,调用JavaScript函数,将表单中的数据通过Ajax方式发送到后台Servlet中。 3. 创建一个Servlet,用于接收前端发送过来的数据并进行计算计算完成后将结果返回给前端。 4. 在Servlet中,通过request.getParameter()方法获取前端发送过来的数据,然后根据选择的运算符进行计算,并将结果存储在request作用域中。 5. 在Servlet中,通过request.getRequestDispatcher()方法跳转到结果展示的JSP页面。 6. 在JSP页面中,通过EL表达式获取Servlet中计算得到的结果,并将结果展示给用户。 7. 完成以上步骤后,即可实现一个简单jsp+servlet计算器。 这里是一个简单的示例代码: index.jsp: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>简易计算器</title> <script type="text/javascript"> function calculate() { var num1 = document.getElementById("num1").value; var num2 = document.getElementById("num2").value; var operator = document.getElementById("operator").value; if (num1 == "" || num2 == "") { alert("请输入数字!"); return false; } var url = "calculate?num1=" + num1 + "&num2=" + num2 + "&operator=" + operator; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { document.getElementById("result").innerHTML = xhr.responseText; } } xhr.open("GET", url, true); xhr.send(); } </script> </head> <body> <h1>简易计算器</h1> <form> <input type="text" id="num1" name="num1"> <select id="operator" name="operator"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <input type="text" id="num2" name="num2"> <input type="button" value="计算" onclick="calculate()"> </form> <div id="result"></div> </body> </html> ``` CalculateServlet.java: ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class CalculateServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int num1 = Integer.parseInt(request.getParameter("num1")); int num2 = Integer.parseInt(request.getParameter("num2")); String operator = request.getParameter("operator"); int result = 0; switch (operator) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "*": result = num1 * num2; break; case "/": result = num1 / num2; break; } request.setAttribute("result", result); request.getRequestDispatcher("result.jsp").forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` result.jsp: ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>计算结果</title> </head> <body> <h1>计算结果</h1> <p><%= request.getAttribute("result") %></p> </body> </html> ``` 希望这个示例代码能够帮到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值