jsp开发模式和web计算器

1、jsp开发模式:
1.sun公司推出jsp技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean、一种是Servlet+jsp+javabean
2.jsp+javabean模式适合开发业务逻辑不太复杂的web应用程序,这种模式下,javabean用于封装业务数据,jsp则负责处理用户请求,又显示数据。
3.Servlet+jsp+javabean(MVC)模式适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean模式程序
 各个模块之间层次清晰,web开发推荐采用这种模式。
2、使用模式一编写计算器

使用jsp+javabean编写一个计算器(calculator)页面,javabean具有firstNum、secondNUm、result、operator属性,并提供一个calculate方法。

CalculatorBean.java

 

package cn.itcast.domain;

import java.math.BigDecimal;

//封装计算器数据的bean
public class CalculatorBean {
	private String firstNum="0";
	private char operator=‘+‘;
	private String secondNum="0";
	private String result;
	public String getFirstNum() {
		return firstNum;
	}
	public void setFirstNum(String firstNum) {
		this.firstNum = firstNum;
	}
	public char getOperator() {
		return operator;
	}
	public void setOperator(char operator) {
		this.operator = operator;
	}
	public String getSecondNum() {
		return secondNum;
	}
	public void setSecondNum(String secondNum) {
		this.secondNum = secondNum;
	}
	public String getResult() {
		return result;
	}
	public void setResult(String result) {
		this.result = result;
	}
	public void calculate(){
		BigDecimal first=new BigDecimal(this.firstNum);
		BigDecimal second=new BigDecimal(this.secondNum);
		switch(this.operator){
		case ‘+‘:{
			this.result=first.add(second).toString();
			break;
		}
		case ‘-‘:{
			this.result=first.subtract(second).toString();
			break;
		}
		case ‘*‘:{
			this.result=first.multiply(second).toString();
			break;
		}
		case ‘/‘:{
			if(second.doubleValue()==0){
				throw new RuntimeException("被除数不能为0!");
			}
			this.result=first.divide(second,20,BigDecimal.ROUND_HALF_UP).toString();
			break;
		}
		default:
			throw new RuntimeException("运算符只能是 + - * / ");
		}
		
	}
}

calculatorBean.jsp

 

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>计算器演示页面</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body style="text-align:center;">
	<jsp:useBean id="calculatorBean" class="cn.itcast.domain.CalculatorBean" />
	<jsp:setProperty name="calculatorBean" property="*"/>
	<%
		try{
			calculatorBean.calculate();
		}catch(Exception e){
			out.write(e.getMessage());
		}
		
	 %>
	 <br />------------------------------------------------------------------<br />
	 	计算结果是:
	 	<jsp:getProperty name="calculatorBean" property="firstNum"/>
	 	<jsp:getProperty name="calculatorBean" property="operator"/>
	 	<jsp:getProperty name="calculatorBean" property="secondNum"/>
	 	=
	 	<jsp:getProperty name="calculatorBean" property="result"/>
	 <br />------------------------------------------------------------------<br />
  <form action="/day09/calculator.jsp" method="post">
  	<table width="40%" border="1" bordercolor="red" align="center">
  		<tr>
  			<td colspan="2">简单的计算器</td>
  		</tr>
  		<tr>
  			<td>第一个参数</td>
  			<td>
  				<input type="text" name="firstNum">
  			</td>
  		</tr>
  		<tr>
  			<td>操作符</td>
  			<td>
  				<select name="operator">
  					<option value="+">+</option>
  					<option value="-">-</option>
  					<option value="*">*</option>
  					<option value="/">/</option>
  				</select>
  			</td>
  		</tr>
  		<tr>
  			<td>第二个参数</td>
  			<td>
  				<input type="text" name="secondNum">
  			</td>
  		</tr>
  		<tr>
  			<td colspan="2">
  				<input type="submit" value="计算">
  			</td>
  		</tr>
  	</table>
  	</form>
  </body>
</html>

技术分享

 

效果图如上!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。