SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式。
JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序,这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据。
Jsp: calculator.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>简单计算器</title>
</head>
<body style="text-align: center;">
<jsp:useBean id="calculator" class="com.kevin.Calculator"></jsp:useBean>
<jsp:setProperty property="*" name="calculator"/>
<%
calculator.operation();
%>
<br />-----------------------------------------------------------<br />
<jsp:getProperty property="input1" name="calculator"/>
<jsp:getProperty property="oper" name="calculator"/>
<jsp:getProperty property="input2" name="calculator"/>=
<jsp:getProperty property="result" name="calculator"/>
<br />-----------------------------------------------------------<br />
<form action="/WebTest4/calculator.jsp" method="post">
<table width="40%" border="1">
<tr>
<td colspan="2">简单计算器</td>
</tr>
<tr>
<td>第一个参数</td>
<td><input type="text" name="input1" /> </td>
</tr>
<tr>
<td>运算符</td>
<td>
<select name="oper">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
</td>
</tr>
<tr>
<td>第二个参数</td>
<td><input type="text" name="input2" /> </td>
</tr>
<tr style="text-align: right;">
<td colspan="2" ><input type="submit" name="bt1" value="计算"/></td>
</tr>
</table>
</form>
</body>
</html>
javabean类
package com.kevin;
import java.math.BigDecimal;
import javax.management.RuntimeErrorException;
public class Calculator {
private String input1="0";;
private String input2="0";
private String oper="+";
private String result="0";
public void operation()
{
BigDecimal first = new BigDecimal(input1);
BigDecimal second = new BigDecimal(input2);
System.out.println("oper: " + oper);
if( oper.equals("+") )
result = first.add(second).toString();
else if( oper.equals("-") )
result = first.subtract(second).toString();
else if( oper.equals("*") )
result = first.multiply(second).toString();
else if( oper.equals("/") )
{
if( second.doubleValue()==0 )
{
result = "除数不能为0";
return;
}
if( second.doubleValue() > first.doubleValue() )
{
result = "除数不要大于被除数";
return;
}
result = first.divide(second).toString();
}
else
throw new RuntimeException("元算符异常");
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String getInput1() {
return input1;
}
public void setInput1(String input1) {
this.input1 = input1;
}
public String getInput2() {
return input2;
}
public void setInput2(String input2) {
this.input2 = input2;
}
public String getOper() {
return oper;
}
public void setOper(String oper) {
this.oper = oper;
}
}