Java Servlet 实现复数计算器:加、减、乘、除运算
本示例使用 Servlet 实现一个简单的复数计算器,允许用户输入两个复数,并进行加、减、乘、除运算,最后将结果显示在网页上。
web.xml 配置
<?xml version='1.0' encoding='UTF-8'?>
<web-app xmlns='http://xmlns.jcp.org/xml/ns/javaee'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd'
version='4.0'>
<servlet>
<servlet-name>ComplexNumberCalculator</servlet-name>
<servlet-class>com.example.ComplexNumberCalculatorServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ComplexNumberCalculator</servlet-name>
<url-pattern>/complex-number-calculator</url-pattern>
</servlet-mapping>
</web-app>
Servlet 实现
package com.example;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class ComplexNumberCalculatorServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取输入的复数
ComplexNumber num1 = parseComplexNumber(req.getParameter('num1'));
ComplexNumber num2 = parseComplexNumber(req.getParameter('num2'));
// 计算加、减、乘、除
ComplexNumber sum = num1.add(num2);
ComplexNumber difference = num1.subtract(num2);
ComplexNumber product = num1.multiply(num2);
ComplexNumber quotient = num1.divide(num2);
// 将结果放入request中
req.setAttribute('num1', num1);
req.setAttribute('num2', num2);
req.setAttribute('sum', sum);
req.setAttribute('difference', difference);
req.setAttribute('product', product);
req.setAttribute('quotient', quotient);
// 转发到视图
req.getRequestDispatcher('/result.jsp').forward(req, resp);
}
private ComplexNumber parseComplexNumber(String str) {
String[] parts = str.split(',');
double real = Double.parseDouble(parts[0]);
double imaginary = Double.parseDouble(parts[1].substring(0, parts[1].length() - 1));
return new ComplexNumber(real, imaginary);
}
}
视图 result.jsp
<!DOCTYPE html>
<html>
<head>
<title>Complex Number Calculator</title>
</head>
<body>
<form method='post' action='${pageContext.request.contextPath}/complex-number-calculator'>
<label for='num1'>Complex Number 1:</label>
<input type='text' name='num1' id='num1' />
<label for='num2'>Complex Number 2:</label>
<input type='text' name='num2' id='num2' />
<button type='submit'>Calculate</button>
</form>
<c:if test='${not empty num1}'>
<h2>Results:</h2>
<p>Number 1: ${num1}</p>
<p>Number 2: ${num2}</p>
<p>Sum: ${sum}</p>
<p>Difference: ${difference}</p>
<p>Product: ${product}</p>
<p>Quotient: ${quotient}</p>
</c:if>
</body>
</html>
以上代码仅供参考,实际代码可能会有所不同。
原文地址: http://www.cveoy.top/t/topic/nOiw 著作权归作者所有。请勿转载和采集!