用JSP做计算器(一)

基本知识复习:

1 PageContext对象和Page对象
  1)request
  2)response
  3)session
  4)application
  5)config
取得jsp映射在web.xml文件中的信息
  6)out
  7)exception
  8)page:表示当前jsp页面,只能在jsp标签只出错,表示当前域对象,在代码中,表示当前域对象只能用PageContext
  9)pageContext
    a)PageContext域对象仅限于当前jsp页面中,出了该jsp页面,原PageContext域对象销毁,如果取不到值,返回null
    b)PageContext域对象可以将对应的值保存在指定的四个域对象之一
pageContext.setAttribute("name","丝丝",PageContext.REQUEST_SCOPE);
    c)PageContext域对象可以将对应的值从指定的四个域对象之一取出
<%=pageContext.getAttribute("name",PageContext.APPLICATION_SCOPE) %>
    d)PageContext.findAttribute("name")
它会以name为key,依次去四个域对象中查询对应的值,找到即止,如果找不到,返回null

2 JSP内置标签(美化+业务逻辑)
  1)为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容
  2)JSP内置标签
a)(动,执行) 和 <%@ include file/>(静,翻译)
N张jsp生成N个servlet
       总的jsp生成的结构良好
类似于函数调用
true先将当前jsp页面的输出输到浏览器后,再加入包含的页面/false(将原新内容同时输到浏览器)(默认)
动态包含,在需要包含时,才去调用执行
        b)
转发到page所指向的jsp页面
 
3 JSP出错演示
  1)语法错误
  2)语法无错,但翻译成Servlet后出错
  3)逻辑错误
 
4 JSP中JavaBean标签
  a)表示创建或查找对应的JavaBean对象
    如果在域对象中有对应的JavaBean对应,那么该只会负责查询JavaBean对应,而不会创建
  b)
    该标签可以将String到8种基本类型的转换
  c)

5 JSP开发模式 (MVC模型)
  (1)JSP(V)+JSP(C)+JavaBean(M)

       适合义务逻辑简单的项目(很少用)
  (2)JSP(V)+Servlet(C)+JavaBean(M)

       适合业务逻辑相对复杂的项目

计算器JavaBean,本项目采用JSP(V)+JSP(C)+JavaBean(M)的模式

 public class calBeanEX {  
    private double firstNum;  
    private double secondNum;  
    private double result;  
    private char operator;  
    public calBeanEX()  
    {}  
    public double getFirstNum() {  
        return firstNum;  
    }  
    public void setFirstNum(double firstNum) {  
        this.firstNum = firstNum;  
    }  
    public double getSecondNum() {  
        return secondNum;  
    }  
    public void setSecondNum(double secondNum) {  
        this.secondNum = secondNum;  
    }  
    public double getResult() {  
        return result;  
    }  
    public void setResult(double result) {  
        this.result = result;  
    }  
    public char getOperator() {  
        return operator;  
    }  
    public void setOperator(char operator) {  
        this.operator = operator;  
    }  
    public void cal()  
    {  
        switch(this.operator)  
        {  
        case '-':this.result=this.firstNum-this.secondNum;break;  
        case '+':this.result=this.firstNum+this.secondNum;break;  
        case '*':this.result=this.firstNum*this.secondNum;break;  
        case '/':this.result=this.firstNum/this.secondNum;break;  
        }  
    }  
}  
JSP代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
<%@ page import="cn.itcast.web.*" %>  
<%@ page errorPage="error.jsp" %>  
  
  
  
    
      
    计算器  
      
      
          
      
      
      
  
    
    
    
    
    
    
    
    <%  
  cb.cal();  
   %>    
  <%--   
    
    
  =  
   --%>  
   
简单计算器
第一个参数
运算符
第二个参数
结果: =
运行结果:
用JSP做计算器(一)_第1张图片

运算结果小数点后保留一位,利用BigDecimal类:

修改getResult()方法:

public double getResult() {  
        //小数点后保留一位,BigDecimal.ROUND_HALF_UP(向上进一)  
        BigDecimal bd=new BigDecimal(this.result).setScale(1,BigDecimal.ROUND_HALF_UP);  
        //返回bd转换为double类型  
        return bd.doubleValue();  
    }  
修改后运行:

用JSP做计算器(一)_第2张图片

你可能感兴趣的:(JSP)