亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? calcbean.java

?? JSP設計第二版的源碼
?? JAVA
字號:
package com.ora.jsp.beans.calc;

import java.io.*;
import java.math.*;

/**
 * This class implements a simple calculator for a JSP page. 
 * It's a stateless bean, so all state must be carried by hidden 
 * fields in the JSP page, and set before the first getter
 * method is called. In order to set all properties with the
 * <jsp:setProperty name="foo" property="*" /> syntax (i.e. no
 * control over the order of setter calls), all processing to figure
 * out the new values of all properties is performed in the 
 * getCurrentNumber() method.
 * <p>
 * Basically, the bean accumulates digits and the decimal dot
 * in currentNumber until an operation is requested. The accumulated
 * number is then saved as previousNumber, and the next number
 * starts to accumulate in currentNumber. When an operation is
 * requested the second time, it's carried out based on the
 * previousNumber and currentNumber, and the result becomes the
 * new previousNumber.
 * <p>
 * Note! This bean is just used as an example of how to use a JSP 
 * error page to handle exceptions. Even though it appear to work 
 * as a typical calculator, it's not been heavily tested so I make
 * no guarantees that it handles error cases gracefully. Besides,
 * I'm not so sure a web based calculator is such a good idea. An
 * applet would probably be a better choice.
 *
 * @author Hans Bergsten, Gefion software <hans@gefionsoftware.com>
 * @version 1.0
 */
public class CalcBean implements Serializable {
    private static final int NO_OPER = -1;
    private static final int ADD_OPER = 1;
    private static final int SUB_OPER = 2;
    private static final int DIV_OPER = 3;
    private static final int MULT_OPER = 4;
    
    private String newDigit = "";
    private String currentNumber = "";
    private String previousNumber = "";
    private int newOper = NO_OPER;
    private int currentOperation = NO_OPER;
    private boolean reset = false;
    private boolean operClicked = false;
    private boolean clearClicked = false;
    private boolean dotClicked = false;

    /**
     * Sets the new digit entered by the user.
     */
    public void setDigit(String value) {
        newDigit = value.trim();
    }

    /**
     * Sets the decimal separator entered by the user.
     */
    public void setDot(String value) {
        dotClicked = true;
    }
    
    /**
     * Sets the operation (+, -, *, / or =) entered by the user.
     */
    public void setOper(String value) {
        newOper = toOperValue(value.trim());
        operClicked = true;
    }
    
    /**
     * Sets the "cleared" flag, indicating that the
     * user clicked Clear.
     */
    public void setClear(String value) {
        clearClicked = true;
    }

    /**
     * Sets the current number, i.e. the number as it
     * looks before applying the latest digit, dot, etc.
     */
    public void setCurrentNumber(String value) {
        currentNumber = value;
    }

    /**
     * Returns the current number resulting from applying the
     * current user input (new digit, dot or operation).
     */
    public String getCurrentNumber() {
        calcNewNumbers();
        return currentNumber + newDigit;
    }
    
    /**
     * Sets the current operation, i.e. the operation that
     * will be applied the next time an operation is requested.
     */
    public void setCurrentOperation(String value) {
        currentOperation = toOperValue(value);
    }
    
    /**
     * Returns the current operation.
     */
    public String getCurrentOperation() {
        return toOperName(currentOperation);
    }

    /**
     * Sets the previous number, i.e. the number accumulated
     * until the an operation was requested.
     */
    public void setPreviousNumber(String value) {
        previousNumber = value;
    }
    
    /**
     * Returns the previous number.
     */
    public String getPreviousNumber() {
        return previousNumber;
    }

    /**
     * Sets the "reset flag" to clear the current number on
     * the next submit (e.g. after performing an operation).
     */
    public void setReset(boolean value) {
        reset =  value;
    }
    
    /**
     * Returns the "reset flag".
     */
    public boolean getReset() {
        return reset;
    }
    
    /**
     * Processes the current input, i.e. adds digits, performs
     * the requested operation, and saves the accumulated
     * the number, as described in the class comment.
     */
    private void calcNewNumbers() {
        if (dotClicked) {
            if (currentNumber.length() == 0) {
                currentNumber = "0.";
            }
            else if (currentNumber.indexOf(".") == -1) {
                currentNumber += ".";
            }
            dotClicked = false;
            reset = false;
        }
        else if (operClicked) {
            if (previousNumber.length() > 0 && currentNumber.length() > 0) {
                BigDecimal firstNumber = null;
                if (previousNumber.indexOf(".") == -1) {
                    // Make it decimal to get real division
                    firstNumber = new BigDecimal(previousNumber + ".0");
                }
                else {
                    firstNumber = new BigDecimal(previousNumber);
                }
                BigDecimal secondNumber = new BigDecimal(currentNumber);
                BigDecimal result = null;
                switch (currentOperation) {
                    case ADD_OPER:
                        result = firstNumber.add(secondNumber);
                        break;
                    case SUB_OPER:
                        result = firstNumber.subtract(secondNumber);
                        break;
                    case DIV_OPER:
                        result = firstNumber.divide(secondNumber, 
                            BigDecimal.ROUND_HALF_UP);
                        break;
                    case MULT_OPER:
                        result = firstNumber.multiply(secondNumber);
                        break;
                }
                if (result != null) {
                    currentNumber = result.toString();
                }
            }
            previousNumber = currentNumber;
            currentOperation = newOper;
            reset = true;
        }
        else if (clearClicked) {
            currentNumber = "";
            previousNumber = currentNumber;
            currentOperation = NO_OPER;
        }
        else if (reset) {
            currentNumber = "";
            reset = false;
        }
    }
    
    /**
     * Converts an operation int value to the corresponding
     * String representation.
     */
    private String toOperName(int value) {
        String name = "";
        switch (value) {
            case ADD_OPER:
                name = "+";
                break;
            case SUB_OPER:
                name = "-";
                break;
            case DIV_OPER:
                name = "/";
                break;
            case MULT_OPER:
                name = "*";
        }
        return name;
    }
    
    /**
     * Converts an operation String value to the corresponding
     * int representation.
     */
    private int toOperValue(String name) {
        int value = NO_OPER;
        if ("+".equals(name)) {
            value = ADD_OPER;
        }
        else if ("-".equals(name)) {
            value = SUB_OPER;
        }
        else if ("/".equals(name)) {
            value = DIV_OPER;
        }
        else if ("*".equals(name)) {
            value = MULT_OPER;
        }
        return value;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久尤物电影视频在线观看| 色综合久久综合网97色综合| 欧美成人一级视频| 日本不卡一二三| 在线成人午夜影院| 日韩国产欧美在线观看| 91麻豆精品国产自产在线观看一区 | 美女国产一区二区三区| 日韩一二三区不卡| 国产在线精品一区二区不卡了| 欧美sm极限捆绑bd| 国产91丝袜在线18| 亚洲欧美偷拍卡通变态| 欧美在线视频不卡| 久久精品国产99| 国产欧美1区2区3区| 91在线视频播放| 首页亚洲欧美制服丝腿| 精品噜噜噜噜久久久久久久久试看| 国产在线国偷精品免费看| 亚洲国产岛国毛片在线| 色综合中文字幕国产| 日日摸夜夜添夜夜添精品视频| 久久综合国产精品| 99视频精品免费视频| 日韩高清电影一区| 国产精品欧美久久久久无广告 | 91福利社在线观看| 欧美bbbbb| 中文字幕一区二区三区在线播放 | 欧美一区二区视频免费观看| 国产很黄免费观看久久| 亚洲国产日韩一级| 久久久噜噜噜久久人人看 | 欧美日韩免费一区二区三区视频| 久色婷婷小香蕉久久| 中文字幕在线一区二区三区| 在线播放一区二区三区| 成人爱爱电影网址| 男男视频亚洲欧美| 亚洲欧美日韩国产综合| 精品国产免费人成电影在线观看四季| 成人的网站免费观看| 久久精品国产在热久久| 一区二区三区在线观看网站| 26uuu欧美日本| 欧美午夜精品久久久久久孕妇 | 欧美一区二区三区在线观看视频| 国产激情一区二区三区| 日韩在线a电影| 亚洲美女淫视频| 国产剧情一区二区三区| 成人v精品蜜桃久久一区| 国产精品剧情在线亚洲| 日韩一级欧美一级| 91视频.com| 91精品国产色综合久久久蜜香臀| 成人va在线观看| 国产乱理伦片在线观看夜一区| 日日骚欧美日韩| 夜夜揉揉日日人人青青一国产精品| 久久久不卡网国产精品一区| 欧美一级二级三级蜜桃| 欧美三级在线播放| 日本高清不卡在线观看| 成人免费视频app| 国产精品1024| 国内精品免费在线观看| 久久99久久久欧美国产| 免费观看日韩电影| 日韩中文字幕不卡| 丝袜美腿亚洲一区二区图片| 五月婷婷激情综合网| 一区二区三区欧美日| 亚洲色图第一区| 亚洲精品视频在线观看免费| 亚洲天堂免费看| 一区二区三区在线观看视频| 亚洲欧美怡红院| 亚洲天堂av老司机| 亚洲一区国产视频| 午夜精品久久久久久久99水蜜桃| 亚洲国产另类精品专区| 亚洲不卡一区二区三区| 偷拍一区二区三区四区| 免费在线看一区| 国产一区二区在线免费观看| 国产麻豆视频一区| 成人在线视频一区二区| 成人午夜碰碰视频| 一本大道久久a久久精品综合| 91免费视频观看| 欧美系列一区二区| 9191精品国产综合久久久久久| 8v天堂国产在线一区二区| 日韩女优av电影| 日本一区二区免费在线观看视频| 国产精品国产自产拍高清av| 亚洲精品视频一区| 日韩二区三区在线观看| 极品少妇xxxx精品少妇| 成人免费高清在线| 欧美日免费三级在线| 日韩欧美不卡一区| 国产精品久久久久久久久免费相片 | 欧美日韩二区三区| 精品毛片乱码1区2区3区| 久久精品亚洲乱码伦伦中文| 亚洲乱码国产乱码精品精的特点 | 日本久久精品电影| 欧美成人官网二区| 亚洲图片激情小说| 麻豆免费精品视频| 成人av网站在线| 欧美日韩在线直播| 久久日一线二线三线suv| 国产精品久久久久婷婷| 免费在线视频一区| 91欧美一区二区| 精品久久久久久久久久久久包黑料| 国产欧美一区二区精品久导航| 亚洲乱码日产精品bd| 国产一区二区视频在线播放| 91色porny| 亚洲精品一区二区三区在线观看| 国产精品久久久久久户外露出| 石原莉奈在线亚洲二区| 99国产精品久久| 欧美哺乳videos| 一区二区三区国产精华| 国产精品亚洲专一区二区三区| 欧美三区在线观看| 国产精品久久久久久久久晋中 | 国产一区在线不卡| 欧美色图片你懂的| 国产精品美女久久福利网站 | 美女网站在线免费欧美精品| 99精品视频在线观看免费| 欧美大尺度电影在线| 一区二区视频在线| 国产传媒一区在线| 欧美电影免费观看完整版| 一区二区三区视频在线看| bt欧美亚洲午夜电影天堂| 欧美刺激午夜性久久久久久久| 亚洲国产精品一区二区久久恐怖片| 国产精品一二三在| 精品久久久久久久久久久久久久久 | 日韩视频在线你懂得| 一区二区三区日韩欧美精品 | 欧美自拍偷拍一区| 中文字幕亚洲欧美在线不卡| 国产在线精品一区二区夜色| 777久久久精品| 天天影视网天天综合色在线播放| 91欧美一区二区| 亚洲欧美综合另类在线卡通| 国产成人免费在线视频| 久久夜色精品国产噜噜av| 毛片一区二区三区| 欧美一级搡bbbb搡bbbb| 亚洲成a人片在线不卡一二三区| 91免费精品国自产拍在线不卡| 国产精品久久影院| 99精品一区二区| 亚洲乱码精品一二三四区日韩在线| av亚洲精华国产精华| 国产精品每日更新在线播放网址 | 欧美一二三四区在线| 日韩精品免费专区| 91精品婷婷国产综合久久竹菊| 午夜精品久久久| 欧美精品一卡二卡| 青青草国产精品亚洲专区无| 日韩三级电影网址| 狠狠色狠狠色综合系列| 国产性天天综合网| 成人国产精品免费观看| 亚洲女同一区二区| 欧美性大战久久久| 人妖欧美一区二区| 日韩精品中午字幕| 国产精品456| 亚洲天堂久久久久久久| 欧美在线制服丝袜| 午夜影院久久久| 亚洲精品一区二区三区蜜桃下载 | 久久久久久久久久美女| www.亚洲精品| 一区二区三区在线免费视频| 欧美日韩精品系列| 久草这里只有精品视频| 国产亚洲精品bt天堂精选| 成人av在线电影| 亚洲成在线观看| 欧美精品一区二区三区蜜臀| 99综合影院在线| 五月婷婷久久丁香| 国产亚洲精品中文字幕| 在线欧美日韩国产|