JavaEE初學之jsp+JavaBean實現頁面簡單計算器
阿新 • • 發佈:2018-11-17
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> 計算結果是: <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 回車即可驗證檢視。