模式主要的任務是幫助開發者解決一類問題。
MVC模式主要是用于規劃你的網站的開發的一個基本的結構。
Servlet記住充當的是控制器層。cn.itcast.controller
Java類主要處理業務邏輯。cn.itcast.bean
jsp主要負責的是數據頁面顯示。
對于一個比較傳統的且業務不是很復雜的網站應用那么完全沒有必要分別使用以上三種技術。因此可以使用JSP+JavaBean直接處理。

1. 編輯一個cal.jsp頁面
<body> <!-- 創建JavaBean對象 --> <jsp:useBean id="calculator" class="cn.itcast.beans.Calculator" scope="page"></jsp:useBean> <!-- 封裝用戶數據 --> <jsp:setPRoperty name="calculator" property="*"/> <!-- 計算結果 --> <% try{ calculator.calculate(); }catch(Exception e){ // 將異常對象存儲在page域中 pageContext.setAttribute("msg",e); } %> <form action="/day09/cal.jsp" method="post"> <table align="center" border="1"> <tr align="center"> <td colspan="2">WEB計算器</td> </tr> <tr> <td>操作數1:</td> <td><input type="text" name="num1"></td> </tr> <tr> <td>操作符:</td> <td> <select name="option"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> </td> </tr> <tr> <td>操作數2:</td> <td><input type="text" name="num2"></td> </tr> <tr align="center"> <td colspan="2"><input type="submit" value="計算"></td> </tr> </table> </form> <br/> <hr/> 計算結果: <!-- 獲取javabean中的值 --> <jsp:getProperty name="calculator" property="num1"/> <jsp:getProperty name="calculator" property="option"/> <jsp:getProperty name="calculator" property="num2"/> = <jsp:getProperty name="calculator" property="result"/> <hr/> <hr/> 錯誤信息: <% Exception exp = (Exception)pageContext.getAttribute("msg"); if(exp != null){ out.write(exp.getMessage()); } %> <hr/> </body>
2. 編寫一個計算器的業務邏輯類Calculator.java
public class Calculator { // 指定屬性 private double num1 = 0.0; private char option = '+'; private double num2 = 0.0; private double result = 0.0; // 提供一個計算的方式 public void calculate(){ switch (this.option) { case '+': this.result = this.num1 + this.num2; break; case '-': this.result = this.num1 - this.num2; break; case '*': this.result = this.num1 * this.num2; break; case '/': if(this.num2 == 0){ throw new RuntimeException("被除數不能為0"); } this.result = this.num1 / this.num2; break; } // 對于計算的計算結果進行處理(四舍五入) BigDecimal big = new BigDecimal(this.result); // 操作 big = big.setScale(3, BigDecimal.ROUND_HALF_UP); // 取出操作好的數據 this.result = big.doubleValue(); }}以上的代碼在JSP中直接出現了業務邏輯,因此不便于美工人員的后期維護,可見以上的MVC模式是不推薦使用的。
新聞熱點
疑難解答