jsp 를 사용 하여 javabean 을 호출 하여 초 간단 웹 계산기 예제 구현

7430 단어 jspjavabean



다음은 코드:
Calculator.java

package com.amos.model;

import java.math.BigDecimal;

/**
* @ClassName: Calculator
* @Description:
* @author: amosli
* @email:[email protected]
* @date Mar 20, 2014 1:04:59 AM 
*/
public class Calculator {
    private String firstnum="0";
    private String secondnum="0";
    private char operator='+';
    private String result;

    public String getResult() {
        return result;
    }

    public char getOperator() {
        return operator;
    }

    public void setOperator(char operator) {
        this.operator = operator;
    }

    public void setResult(String result) {
        this.result = result;
    }

    public String getFirstnum() {
        return firstnum;
    }

    public void setFirstnum(String firstnum) {
        this.firstnum = firstnum.trim();
    }

    public String getSecondnum() {
        return secondnum;
    }

    public void setSecondnum(String secondnum) {
        this.secondnum = secondnum.trim();
    }

    public void calculate() {
        BigDecimal a = new BigDecimal(this.firstnum);
        BigDecimal b = new BigDecimal(this.secondnum);
        switch (this.operator) {
        case '+':
            this.result = a.add(b).toString();
            break;
        case '-':
            this.result = a.subtract(b).toString();
            break;
        case '*':
            this.result = a.multiply(b).toString();
            break;
        case '/':
            if (b.doubleValue()==0) {
                throw new RuntimeException(" ");
            }
            this.result = a.divide(b,10,BigDecimal.ROUND_HALF_DOWN).toString();
            break;
        default:
            break;
        }
    }
}

calculator.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jsp </title>
</head>
<body>
    <jsp:useBean id="calcBean" class="com.amos.model.Calculator"></jsp:useBean>
    <jsp:setProperty property="*" name="calcBean" />
    <%
        calcBean.calculate();
    %>
    <hr>
    :
    <jsp:getProperty property="firstnum" name="calcBean" />
    <jsp:getProperty property="operator" name="calcBean" />
    <jsp:getProperty property="secondnum" name="calcBean" />
    =<jsp:getProperty property="result" name="calcBean" />
    <hr>
    <form action="/jsp/calculator.jsp" method="post">
        <table style="text-align: center;">
            <tr>
                <td colspan="2"> </td>
            </tr>
            <tr>
                <td> </td>
                <td><input type="text" name="firstnum" /></td>
            </tr>
            <tr>
                <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="secondnum" /></td>
            </tr>
            <tr>
                <td>
                    <button name="calc" type="submit"> </button>
                </td>
            </tr>
        </table>
    </form>
</body>
</html>
코드 소개
1)여기 서 정밀도 연산 을 하려 면 double+double 을 사용 하면 왜곡 되 기 쉽다.예 를 들 어 a=0.1,b=0.02,a+b=?

0.1+0.02=0.12000000000000001
컴퓨터 밑바닥 은 0 과 1 만 알 고 더 블 은 64 비트 정밀도 이기 때문에 계산 할 때 왜곡 되 기 쉽다.
연산 을 할 때 BigDecimal 또는 BigInteger 류 를 사용 하여 연산 하 는 것 을 권장 하 며,기 존의 add,substract 등 방법 을 사용 하면 가감 등 을 실현 할 수 있 습 니 다.
2)jsp 는 주로 jsp:useBean 을 실례 화 대상 으로 하고 jsp:setProperty 와 jsp:getProperty 를 설정 하고 값 을 취한 다.
3)오류 페이지 내용 에 대한 설정:
웹.xml 에 다음 내용 을 추가 하여 exception 을 캡 처 합 니 다.

<error-page>
      <exception-type>java.lang.Exception</exception-type>
      <location>/error/error.jsp</location>
  </error-page>
error.jsp 페이지 에 오류 정 보 를 표시 합 니 다:

sorry, !!
    <%out.print(exception.getMessage()); %>
추가:JSP 는 두 가지 개발 모델 이 있 습 니 다.
SUN 사 는 JSP 기술 을 출시 한 후 두 가지 웹 애플 리 케 이 션 의 개발 모델 도 추천 했다.하 나 는 JSP+JavaBean 모델 이 고 하 나 는 Servlet+JSP+JavaBean 모델 이다.
1)JSP+JavaBean 모델 은 간단 한 개발 에 적합 하고 업무 논리 가 복잡 하지 않 은 웹 응용 프로그램 을 개발 하기에 적합 합 니 다.이런 모델 에서 JavaBean 은 업무 데 이 터 를 밀봉 하 는 데 사 용 됩 니 다.JSP 는 사용자 의 요청 을 처리 하고 데 이 터 를 표시 합 니 다.
2)Servlet+JSP+자바 빈(MVC)모델 은 복잡 한 웹 애플 리 케 이 션 개발 에 적합 합 니 다.이러한 모델 에서 servlet 은 사용자 요청 을 처리 하고 jsp 는 데이터 디 스 플레이 를 담당 하 며 자바 빈 은 데 이 터 를 밀봉 합 니 다.Servlet+JSP,자바 빈 모드 프로그램 은 각 모듈 간 의 차원 이 뚜렷 하고 웹 개발 은 이 모델 을 사용 하 는 것 을 추천 합 니 다.
본 사례 에서 채택 한 것 은 바로 첫 번 째 개발 모델 이다.
PS:여기 서 여러분 께 이 사이트 의 온라인 계산기 두 가 지 를 추천 합 니 다.모두 js 로 이 루어 지고 기능 이 강해 서 여러분 들 이 자 바스 크 립 트 수학 연산 과 웹 디자인 을 깊이 이해 하 는 데 도움 이 될 것 이 라 고 믿 습 니 다.
온라인 표준 계산기:
온라인 과학 계산기

좋은 웹페이지 즐겨찾기