JspBean.java:package jspproject;/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2011</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class JspBean {
private String first;
private String second;
private double result;
private String operator;
public void setFirst(String first) { this.first = first; }
public void setSecond(String second) { this.second = second; }
public void setOperator(String operator) { this.operator = operator; }
public String getFirst() { return this.first; }
public String getSecond() { return this.second; }
public String getOperator() { return this.operator; }
public double getResult() {
return this.result;
}
public void calculate() {
double one = Double.parseDouble(first);
double two = Double.parseDouble(second);
try {
if(operator.equals("+")) result = one + two;
else if(operator.equals("-")) result = one - two;
else if(operator.equals("*")) result = one * two;
else if(operator.equals("/")) result = one / two;
else if(operator.equals("%")) result = one % two;
} catch(Exception e) {
System.err.println(e);
}
}
}
JspTest.jsp:
<%@ page contentType="text/html; charset=gb2312" %><html>
<head>
<title>JspTest</title>
</head>
<body bgcolor="#ffffff">
<form action="register.jsp" method="GET">
<table>
<tr>
<th>简单的计数器</th>
</tr>
<tr>
<td>第一个参数</td>
<td><input type="text" name="firstParam" /></td>
</tr>
<tr>
<td>操作符</td>
<td>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
<option value="%">%</option>
</select>
</td>
</tr>
<tr>
<td>第二个参数</td>
<td><input type="text" name="secondParam" /></td>
</tr>
<tr><td><input type="submit" value="计算" /></td></tr>
</table>
</form>
</body>
</html>
register.jsp:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page errorPage="JspTest_error.jsp" %><jsp:useBean id="user" scope="page" class="jspproject.JspBean" />
<jsp:setProperty name="user" property="*" /><html>
<head>
<title>register</title>
</head>
<body bgcolor="#ffffff">
<%
try {
user.calculate();
} catch(Exception e) {
System.err.println(e);
}
%>
<jsp:forward page="display.jsp">
<jsp:param name="operation1" value="<%=user.getFirst() %>"/>
<jsp:param name="oper" value="<%=user.getOperator() %>"/>
<jsp:param name="operation2" value="<%=user.getSecond() %>"/>
<jsp:param name="result" value="<%=user.getResult() %>"/>
</jsp:forward>
</body>
</html>
display.jsp:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page errorPage="display_error.jsp" %><%
String operation1 = request.getParameter("operation1");
String oper = request.getParameter("oper");
String operation2 = request.getParameter("operation2");
String result = request.getParameter("result");
%><html>
<head>
<title>
display
</title>
</head>
<body bgcolor="#ffffff">
<hr />
计算结果:
<%
out.println(operation1 + oper + operation2 + "=" + result);
%>
<hr />
</body>
</html>
为什么最后显示为null+null=0.0?不能正确传值?
而且在控制台输出java.lang.NullPointerException。。
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2011</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class JspBean {
private String first;
private String second;
private double result;
private String operator;
public void setFirst(String first) { this.first = first; }
public void setSecond(String second) { this.second = second; }
public void setOperator(String operator) { this.operator = operator; }
public String getFirst() { return this.first; }
public String getSecond() { return this.second; }
public String getOperator() { return this.operator; }
public double getResult() {
return this.result;
}
public void calculate() {
double one = Double.parseDouble(first);
double two = Double.parseDouble(second);
try {
if(operator.equals("+")) result = one + two;
else if(operator.equals("-")) result = one - two;
else if(operator.equals("*")) result = one * two;
else if(operator.equals("/")) result = one / two;
else if(operator.equals("%")) result = one % two;
} catch(Exception e) {
System.err.println(e);
}
}
}
JspTest.jsp:
<%@ page contentType="text/html; charset=gb2312" %><html>
<head>
<title>JspTest</title>
</head>
<body bgcolor="#ffffff">
<form action="register.jsp" method="GET">
<table>
<tr>
<th>简单的计数器</th>
</tr>
<tr>
<td>第一个参数</td>
<td><input type="text" name="firstParam" /></td>
</tr>
<tr>
<td>操作符</td>
<td>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
<option value="%">%</option>
</select>
</td>
</tr>
<tr>
<td>第二个参数</td>
<td><input type="text" name="secondParam" /></td>
</tr>
<tr><td><input type="submit" value="计算" /></td></tr>
</table>
</form>
</body>
</html>
register.jsp:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page errorPage="JspTest_error.jsp" %><jsp:useBean id="user" scope="page" class="jspproject.JspBean" />
<jsp:setProperty name="user" property="*" /><html>
<head>
<title>register</title>
</head>
<body bgcolor="#ffffff">
<%
try {
user.calculate();
} catch(Exception e) {
System.err.println(e);
}
%>
<jsp:forward page="display.jsp">
<jsp:param name="operation1" value="<%=user.getFirst() %>"/>
<jsp:param name="oper" value="<%=user.getOperator() %>"/>
<jsp:param name="operation2" value="<%=user.getSecond() %>"/>
<jsp:param name="result" value="<%=user.getResult() %>"/>
</jsp:forward>
</body>
</html>
display.jsp:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page errorPage="display_error.jsp" %><%
String operation1 = request.getParameter("operation1");
String oper = request.getParameter("oper");
String operation2 = request.getParameter("operation2");
String result = request.getParameter("result");
%><html>
<head>
<title>
display
</title>
</head>
<body bgcolor="#ffffff">
<hr />
计算结果:
<%
out.println(operation1 + oper + operation2 + "=" + result);
%>
<hr />
</body>
</html>
为什么最后显示为null+null=0.0?不能正确传值?
而且在控制台输出java.lang.NullPointerException。。
double one = Double.parseDouble(first);
double two = Double.parseDouble(second);
这两句的时候自然就会报java.lang.NullPointerException