简易Servlet计算器

写一个简易的Servlet计算器
先写一个计算的jsp页面

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="GBK" content="text/html; charset=GBK">
<title>简易计算器</title>
<script type="text/javascript">
function calc(form){
    with(form){              //用with就不用重复引用了 也就是说不用form.firstNum,可以直接firstNum
        if(firstNum.value==""||secondNum.value==""){
            alert("请输入数字!");
            return false;
        }
        if(isNaN(firstNum.value)||isNaN(secondNum.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>简易计算器</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="secondNum">

</td>
</tr>
<tr>
<td align="center"> <input type="submit" value="计算"></td>
</tr>

</table>

</form>
</body>
</html>

写一个Servlet

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *  implementation class CalculateServlet
 */
@WebServlet("/CalculateServlet")

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("secondNum"));
        // 获取运算符
        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='Calculate.jsp'>返回</a>");
        out.flush();
        out.close();
    }

}

配置web.xml
注意的是前面已经映射了,这里面再写映射就会启动不了 Tomcat。犯了这个错误,找了半天原因!

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <servlet>
        <servlet-name>CalculateServlet</servlet-name>
        <servlet-class>com.CalculateServlet</servlet-class>
    </servlet>

  <display-name>CalculateServlet</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

猜你喜欢

转载自blog.csdn.net/lx127372/article/details/81146944