代码分为两部分,经测试可用。
代码如下:
1.index.jsp
<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>简易Servlet计算器</title>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
function calc(form){
with(form){
if(firstNum.value == "" || secendNum.value == ""){
alert("请输入数字!");
return false;
}
if(isNaN(firstNum.value) || isNaN(secendNum.value)){
alert("数字格式错误!");
return false;
}
if(operator.value == "-1"){
alert("请选择运算符!");
return false;
}
}
}
</script>
</head>
<body>
<form action="CalculateServlet" method="post" onsubmit="return calc(this);">
<table align="center" border="0">
<tr>
<th>简易Servlet计算器</th>
</tr>
<tr>
<td>
<input type="text" name="firstNum">
<select name="operator">
<option value="-1">运算符</option>
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" name="secendNum">
<input type="submit" value="计算">
</td>
</tr>
</table>
</form>
</body>
</html>
2.CalculateServlet.java
package com.lyq.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 计算器Servlet
*/
public class CalculateServlet extends HttpServlet {
private static final long serialVersionUID = 7223778025721767631L;
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
// 获取第一个数字
double firstNum = Double.valueOf(request.getParameter("firstNum"));
// 获取第一个数字
double secondNum = Double.valueOf(request.getParameter("secendNum"));
// 获取运算符
String operator = request.getParameter("operator");
// 计算结果
double result = 0;
// 判断运算符
if("+".equals(operator)){
result = firstNum + secondNum;
}else if("-".equals(operator)){
result = firstNum - secondNum;
}else if("*".equals(operator)){
result = firstNum * secondNum;
}else if("/".equals(operator)){
result = firstNum / secondNum;
}
// 输出计算结果
out.print(firstNum + " " + operator + " " + secondNum + " = " + result);
out.print("<br><a href='index.jsp'>返回</a>");
out.flush();
out.close();
}
}
可以实现网页简单计算器的功能。