在jsp页面showPriceSUM.jsp中定义一个方法 public double getPriceSUM(String input),该方法可以返回参数input含有的各个数字的代数和。
时间: 2023-04-06 17:01:50 浏览: 170
您好,我可以回答这个问题。在jsp页面showPriceSUM.jsp中定义一个方法public double getPriceSUM(String input),可以使用以下代码实现:
public double getPriceSUM(String input) {
double sum = 0;
String[] nums = input.split("[^\\d]+");
for (String num : nums) {
sum += Double.parseDouble(num);
}
return sum;
}
该方法首先将输入的字符串按照非数字字符进行分割,得到一个数字数组。然后遍历数组,将每个数字转换为double类型并累加到sum中,最后返回sum即可。
相关问题
使用Servlet+JSP实现简单的计算器功能,主要要求如下;input.jsp;两个数据的输入及运算符的选择
首先,我们需要一个输入页面(input.jsp),用于输入两个数和运算符:
```html
<!DOCTYPE html>
<html>
<head>
<title>简单计算器</title>
</head>
<body>
<h1>简单计算器</h1>
<form action="calculate" method="post">
<input type="number" name="num1" placeholder="请输入第一个数"><br><br>
<input type="number" name="num2" placeholder="请输入第二个数"><br><br>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select><br><br>
<input type="submit" value="计算">
</form>
</body>
</html>
```
接下来,我们需要一个 Servlet (CalculateServlet)来处理表单提交的数据,并进行计算:
```java
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 CalculateServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String num1Str = request.getParameter("num1");
String num2Str = request.getParameter("num2");
String operator = request.getParameter("operator");
if(num1Str != null && num2Str != null) {
double num1 = Double.parseDouble(num1Str);
double num2 = Double.parseDouble(num2Str);
double result = 0;
switch(operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
if(num2 != 0) {
result = num1 / num2;
} else {
response.getWriter().println("除数不能为0!");
return;
}
break;
default:
response.getWriter().println("无效的运算符!");
return;
}
response.getWriter().println("计算结果为:" + result);
} else {
response.getWriter().println("请输入两个数!");
}
}
}
```
最后,我们需要在 web.xml 文件中配置 Servlet:
```xml
<web-app>
<servlet>
<servlet-name>CalculateServlet</servlet-name>
<servlet-class>CalculateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CalculateServlet</servlet-name>
<url-pattern>/calculate</url-pattern>
</servlet-mapping>
</web-app>
```
现在我们就可以在浏览器中访问 input.jsp 页面,输入两个数和运算符,点击“计算”按钮进行计算了。
有一个名为inputNumber.jsp的页面提供一个表单,用户可以通过表单输入两个数和运算符号提交给Servlet控制器;由名为ComputerBean.java生成的JavaBean负责存储运算数、运算符号和运算结果,由名为handleComputer的servlet控制器负责运算,将结果存储到JavaBean中,并负责请求JSP页面lookResult.jsp显示JavaBean中的数据。
这个应用程序的实现比较简单,主要包括三个部分:前端页面、JavaBean和Servlet控制器。
1. 前端页面
在inputNumber.jsp页面中,用户可以输入两个数和运算符号,然后提交表单给Servlet控制器。页面的代码如下:
```html
<html>
<head>
<title>计算器</title>
</head>
<body>
<h1>计算器</h1>
<form action="handleComputer" method="post">
<label>第一个数:</label>
<input type="number" name="num1"><br>
<label>第二个数:</label>
<input type="number" name="num2"><br>
<label>运算符:</label>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select><br>
<input type="submit" value="计算">
</form>
</body>
</html>
```
2. JavaBean
在ComputerBean.java中,我们定义了一个JavaBean类,用于存储运算数、运算符号和运算结果。代码如下:
```java
public class ComputerBean implements Serializable {
private static final long serialVersionUID = 1L;
private double num1;
private double num2;
private String operator;
private double result;
public double getNum1() {
return num1;
}
public void setNum1(double num1) {
this.num1 = num1;
}
public double getNum2() {
return num2;
}
public void setNum2(double num2) {
this.num2 = num2;
}
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
public double getResult() {
return result;
}
public void setResult(double result) {
this.result = result;
}
}
```
3. Servlet控制器
在handleComputer的servlet控制器中,我们首先获取用户提交的运算数和运算符号,然后进行运算,最后将结果存储到JavaBean中,并请求JSP页面lookResult.jsp显示结果。代码如下:
```java
public class handleComputer extends HttpServlet {
private static final long serialVersionUID = 1L;
public handleComputer() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
double num1 = Double.parseDouble(request.getParameter("num1"));
double num2 = Double.parseDouble(request.getParameter("num2"));
String operator = request.getParameter("operator");
double result = 0;
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
}
ComputerBean bean = new ComputerBean();
bean.setNum1(num1);
bean.setNum2(num2);
bean.setOperator(operator);
bean.setResult(result);
request.setAttribute("bean", bean);
RequestDispatcher dispatcher = request.getRequestDispatcher("lookResult.jsp");
dispatcher.forward(request, response);
}
}
```
在lookResult.jsp页面中,我们可以显示JavaBean中的运算数、运算符号和运算结果。代码如下:
```html
<html>
<head>
<title>计算结果</title>
</head>
<body>
<h1>计算结果</h1>
<table border="1">
<tr>
<td>第一个数:</td>
<td>${bean.num1}</td>
</tr>
<tr>
<td>第二个数:</td>
<td>${bean.num2}</td>
</tr>
<tr>
<td>运算符:</td>
<td>${bean.operator}</td>
</tr>
<tr>
<td>结果:</td>
<td>${bean.result}</td>
</tr>
</table>
</body>
</html>
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)