- 要求设计两个JSP页面,其中一个的外观如下,文件名为calculate.jsp,另外一个计算器结果页面,文件名为docalculate.jsp,并实现计算功能:
1.calculate.jsp
2.docalculate.jsp
3.运行结果
4.代码
calculate.jsp
<%--
Created by IntelliJ IDEA.
User: 11359
Date: 2022/12/4
Time: 11:37
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String number1str =request.getParameter("number1");
String number2str=request.getParameter("number2");
String optionstr=request.getParameter("select");
String sum=request.getParameter("sum");
if(number1str==null || number2str==null || optionstr==null || sum==null){
number1str="";
number2str="";
optionstr="+";
sum="";
}
%>
<form action="docalculate.jsp" method="post">
<input type="text" name="number1" value="<%=number1str%>">
<select name="select" value="<%=optionstr%>">
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<input type="text" name="number2" value="<%=number2str%>">
=
<input type="text" name="sum" value="<%=sum%>">
<br><br>
<input type="submit" value="计算">
</form>
</body>
</html>
docalculate.jsp
<%--
Created by IntelliJ IDEA.
User: 11359
Date: 2022/12/4
Time: 11:38
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
double sum=0.0;
String number1str=request.getParameter("number1");
String number2str=request.getParameter("number2");
String optionstr=request.getParameter("select");
if(number1str!="" && number2str!="" && optionstr!="") {
double number1 = Double.parseDouble(number1str);
double number2 = Double.parseDouble(number2str);
if ("+".equals(optionstr)) {
sum = number1 + number2;
out.print(sum);
} else if ("-".equals(optionstr)) {
sum = number1 - number2;
} else if ("*".equals(optionstr)) {
sum = number1 * number2;
} else if ("/".equals(optionstr)) {
sum = number1 / number2;
}
}
%>
<jsp:forward page="calculate.jsp">
<jsp:param name="number1" value="<%=number1str%>"/>
<jsp:param name="number2" value="<%=number2str%>"/>
<jsp:param name="sum" value="<%=sum%>"/>
<jsp:param name="name" value="<%=optionstr%>"/>
</jsp:forward>
</body>
</html>
不足:页面刷新会导致符号重新变成加号,可考虑使用ajax的请求方式,而不用form的表单上传方式