JSP学习之再谈计算器

这节中,我们将数据的提交、处理、结果显示放在同一个页面上。

代码:

<!-- 这是计算器的界面-->
<%@page contentType="text/html;charset=gb2312"%>
<html>
<head>
	<!--在jsp中添加jsp代码,防止用户空提交-->
	<script language="javascript">
		//写一个函数判断用户是不是提交空的
		function checkNum(){
			if(form1.num1.value==""){
				window.alert("num1,不能为空haha");
				return false;
			}
			//判断num1,是不是一个数
			if(Math.round(form1.num1.value)!=form1.num1.value){
				window.alert("num1,不是一个数");
				return false;
			}
		}
	</script>
</head>
	<body>
		<%
			//接收第一个数(通过request接收,request类似Servlet中的HttpRequestServlet)
			String s_num1=request.getParameter("num1");
			//接收第二个数
			String s_num2=request.getParameter("num2");
			//接收运算符号
			String flag=request.getParameter("flag");

			int num1=0;
			int num2=0;
			int result=0;
			
			System.out.println(s_num1);

			//java中 String ->int

			//为了防止异常的发生,我们做一个处理
			if(s_num1!=null&&s_num2!=null&&flag!=null){
				num1=Integer.parseInt(s_num1);
			    num2=Integer.parseInt(s_num2);
				
				//计算
				if(flag.equals("+"))
				{
					result=num1+num2;
				}else if(flag.equals("-")){
					result=num1-num2;
				}else if(flag.equals("*")){
					result=num1*num2;
				}else{
					result=num1/num2;
				}
				//输出结果
				//out.println("结果是:"+result);
			}
			
		%>
		<h1>我的计算器</h1>	
		<hr>
		<form name="form1" action="Cal.jsp">
			请输入第一个数:<input type="text" size="6" name="num1" value="<%=num1 %>"><br/>
			<select name="flag">
				<option value=+>+</option>
				<option value=->-</option>
				<option value=*>*</option>
				<option value=/>/</option>
			</select><br/>
			请输入第二个数:<input type="text" size="6" name="num2" value="<%=num2 %>"><br/>
			<input type="submit" value="计算" οnclick="return checkNum();"><!--点击后会调用JavaScript脚本,这里通过return返回给form-->
		</form>
		<hr>
		<!--这里输出计算的结果-->
	    计算结果是:<%=result %><!--表达式语法-->
	</body>
</html>

效果图:


注:知识点补充

//接收第一个数(通过request接收,request类似Servlet中的HttpRequestServlet)
String s_num1=request.getParameter("num1");
//接收第二个数
String s_num2=request.getParameter("num2");
//接收运算符号
String flag=request.getParameter("flag");

如果这里num1没有的话,那么s_num1的值为null。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章