编写JavaWeb程序-计算器
1. 整体流程
以下是编写JavaWeb程序-计算器的整体流程:
步骤 | 描述 |
---|---|
1 | 创建一个JavaWeb项目 |
2 | 创建一个Servlet类 |
3 | 在web.xml中配置Servlet |
4 | 创建一个JSP页面 |
5 | 在JSP页面中编写前端代码 |
6 | 在Servlet中编写后端代码 |
2. 具体步骤及代码解释
2.1 创建一个JavaWeb项目
首先,你需要在你的开发环境中创建一个JavaWeb项目。你可以使用Eclipse、IntelliJ IDEA或其他JavaWeb开发工具来完成这一步。创建项目时,选择创建一个新的JavaWeb项目,然后按照向导进行操作。
2.2 创建一个Servlet类
在创建好项目后,你需要创建一个Servlet类来处理计算器的逻辑。在项目的src
目录下创建一个新的Java类,命名为CalculatorServlet
。以下是一个示例的CalculatorServlet
类:
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 CalculatorServlet extends HttpServlet {
@Override
protected void doPost(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);
}
}
在以上代码中,我们创建了一个继承自HttpServlet
的CalculatorServlet
类。在doPost
方法中,我们首先从请求参数中获取用户输入的数字和操作符,然后根据操作符计算结果,并将结果存储到请求的属性中。
2.3 在web.xml中配置Servlet
在完成CalculatorServlet
的编写后,我们需要在web.xml
文件中配置该Servlet,以便Web容器能够正确地处理请求。打开web.xml
文件,添加以下配置:
<servlet>
<servlet-name>CalculatorServlet</servlet-name>
<servlet-class>com.example.CalculatorServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CalculatorServlet</servlet-name>
<url-pattern>/calculate</url-pattern>
</servlet-mapping>
在以上配置中,我们指定了Servlet的名称和类路径,并将其映射到了一个URL模式/calculate
。
2.4 创建一个JSP页面
接下来,我们需要创建一个JSP页面来展示计算器的界面,并将用户输入的数据发送给Servlet进行计算。在项目的WebContent
目录下创建一个新的JSP文件,命名为index.jsp
。以下是一个示例的index.jsp
文件:
<html>
<head>
<title>Calculator</title>
</head>
<body>
Calculator
<form action="calculate" method="post">
<input type="number" name="num1" placeholder="Number 1" required><br>
<input type="number" name="num2" placeholder="Number 2" required><br>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select><br>
<input type="submit" value="Calculate">
</form>
</body>
</html>
在以上代码中,我们创建了一个包含两个输入框(用于输入数字)和一个下拉菜单(用于选择操作符)的表单。表单的提交按钮被点击时,数据将被发送到/calculate
路径,由Servlet进行处理。