1. 程式人生 > >JavaEE初學之jsp+JavaBean實現頁面簡單計算器

JavaEE初學之jsp+JavaBean實現頁面簡單計算器

JavaEE初學之jsp+JavaBean實現頁面簡單計算器

這個學期剛剛學了JavaEE,簡單記錄一下,希望以後會有幫助。

實現效果

在這裡插入圖片描述

首先新建一個web project:Calculator,然後新建一個calculate.jsp檔案和CalculatorBean.java檔案(最好把Java檔案放在自己新建的包下面,引用時不容易出錯)。jsp檔案實現頁面顯示功能與引數傳遞,JavaBean檔案實現表單中引數的儲存與具體的計算功能。實現起來還是比較簡單的。廢話不多說,上程式碼:

#CalculatorBean.java

package nmx;
import java.math.*;
public class CalculatorBean {
   private String first_num="0";
   private char operator='+';
   private String second_num="0";
   private String result;
public String getFirst_num() {
	return first_num;
}
public void setFirst_num(String first_num) {
	this.first_num = first_num;
}
public char getOperator() {
	return operator;
}
public void setOperator(char operator) {
	this.operator = operator;
}
public String getSecond_num() {
	return second_num;
}
public void setSecond_num(String second_num) {
	this.second_num = second_num;
}
public String getResult() {
	return result;
}
public void setResult(String result) {
	this.result = result;
}
   public void calculate(){
	   BigDecimal first=new BigDecimal(first_num);
	   BigDecimal second=new BigDecimal(second_num);
	   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:break;
	 }
   }
}

#calculate.jsp

<%@ page language="java"  import="java.util.*,nmx.*" 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;charset=utf-8">
	<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>
  
  <jsp:useBean id="calculator" class="nmx.CalculatorBean" scope="request"/>
  <jsp:setProperty  name="calculator" property="*" />
  
  <%
     try {
    calculator.calculate();
   // out.println(111);
   }catch(Exception e){
    out.write(e.getMessage());
   }
   %>
   
 <!--   <% request.setCharacterEncoding("utf-8"); %>  
   <hr size="1" style="height:1px;border:none;border-top:2px dashed ;">-->
  ------------------------------------------------------<br>
  &nbsp;&nbsp;計算結果是:
  <jsp:getProperty property="first_num" name="calculator"/>
  <jsp:getProperty property="operator" name="calculator"/>
  <jsp:getProperty property="second_num" name="calculator"/>
  =
  <jsp:getProperty property="result" name="calculator"/>
  <br>------------------------------------------------------<br>
  
    <form action="calculate.jsp" method="post">
       <table border="1">
          <tr><td colspan="2">簡單的計算器</td></tr>
          <tr><td>第一個引數:</td><td><input type="text" name="first_num"></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="second_num"></td></tr>
          <tr><td colspan="2"><input type="submit"  value="計算"  ></td></tr>
       </table>
    </form>
  </body>
</html>

一定要注意,form表單中各個控制元件的name屬性是他們傳遞資料的關鍵!千萬不要忘記,曾經因為這個調了一下午的bug。心累~

寫完後將它部署到Tomcat 8上。然後在myeclipse自帶的web Browser 上輸入相應的路徑:http://localhost:8080/Calculator/calculate.jsp 回車即可驗證檢視。