MVC案例------計算器的實現

一: 模型 (javaBean)

    

public class Bean {
	double numOne,numTwo,result;
	
	String operator="+";
	public double getNumOne() {
		return numOne;
	}
	public void setNumOne(double numOne) {
		this.numOne = numOne;
	}
	public double getNumTwo() {
		return numTwo;
	}
	public void setNumTwo(double numTwo) {
		this.numTwo = numTwo;
	}
	public double getResult() {
		return result;
	}
	public void setResult(double result) {
		this.result = result;
	}
	public String getOperator() {
		return operator;
	}
	public void setOperator(String operator) {
		this.operator = operator;
	}
	
	
	
	

}

二: 視圖 (jsp頁面)

    

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<jsp:useBean id="digitBean" class="mybean.data.Bean" scope="session" />
<html>
<body bgcolor="#efddfa">
	<form action="compute" name=form method="post">
		<table>
			<tr> <td> 輸入兩個數:</td>
				<td> <input type=text name="numOne" value=0 size=6></td>
				<td><input type=text name="numTwo" value=0 size=6> </td>
			</tr>
			<tr>
				<td>	請選擇運算符號:</td>
				<td>
					<select name="operator">
						<option value="+">+加
						<option value="-">-減
						<option value="*">*乘
						<option value="/">/除
					</select>
				</td>	
				<td><input type="submit" value="提交" name = "sub"> </td>
			</tr>
				
			 
		</table>
		
	
	</form>   

	運算結果:
	<jsp:getProperty property="numOne" name="digitBean"/>
	<jsp:getProperty property="operator" name="digitBean"/>
	<jsp:getProperty property="numTwo" name="digitBean"/> = 
	<jsp:getProperty property="result" name="digitBean"/>

  </body>
</html>

三: 控制器(servlet)

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import mybean.data.Bean;
public class compute extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
		super.init(config);
	
	}
public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doPost(request,response);
    }

public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        Bean digitBean = null;
        HttpSession session  = request.getSession(true);
        try
        {
            digitBean  = (Bean)session.getAttribute("digitBean");
            if(digitBean==null)
            {
                digitBean  = new Bean();
                session.setAttribute("digitBean", digitBean);
            }
        }
        catch(Exception e)
        {
            digitBean  =  new Bean();
            session.setAttribute("digitBean", digitBean);
        }
        String str1 = request.getParameter("numOne");
        String str2 = request.getParameter("numTwo");
        if(str1==null || str2==null)
            return;
        if(str1.length()==0 || str2.length()==0)
            return;
        double numOne  = Double.parseDouble(str1);
        double numTwo = Double.parseDouble(str2);
        String operator = request.getParameter("operator");
        double result = 0;
        if(operator.equals("+"))
            result = numOne+numTwo;
        else if(operator.equals("-"))
                result = numOne-numTwo;
            else if(operator.equals("*"))
                    result = numOne*numTwo;
                else
                    result = numOne/numTwo;
        digitBean.setNumOne(numOne);
        digitBean.setNumTwo(numTwo);
        digitBean.setOperator(operator);
        digitBean.setResult(result);
        
        response.sendRedirect("index.jsp");
        
        
    }




}















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章