使用MVC实现计算器功能

一:View  cal.jsp

 1 <%@page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 7 <title>采用三目运算符获取运算符</title>
 8 </head>
 9 <body>
10     <form action="CalServlet" method="post" >
11     操作数1:<input type="text" name="num1" value="${requestScope.newCal.num1}"><br>
12     运算: <input type="radio" name="op" value="+"   ${requestScope.newCal.op=="+"? "checked": " "}>+
13           <input type="radio" name="op" value="-"   ${requestScope.newCal.op=="-"? "checked" : " "}>-
14           <input type="radio" name="op" value="*"   ${requestScope.newCal.op=="*"? "checked" : " "}>*
15           <input type="radio" name="op" value="/"   ${requestScope.newCal.op=="/"? "checked" : " "}>/<br>
16     操作数2:<input type="text" name="num2" value="${requestScope.newCal.num2}"><br>
17     <input type="submit" value="计算" ><br>
18     结果:<input type="text" value="${requestScope.newResult}">
19     </form>
20 </body>
21 </html>

二:Model  Calculator.java

 1 package nuc.sw.cal.bean;
 2
 3 public class Calculator {
 4       private float num1;
 5       private String op;
 6       private float num2;
 7     public float getNum1() {
 8         return num1;
 9     }
10     public void setNum1(float num1) {
11         this.num1 = num1;
12     }
13     public String getOp() {
14         return op;
15     }
16     public void setOp(String op) {
17         this.op = op;
18     }
19     public float getNum2() {
20         return num2;
21     }
22     public void setNum2(float num2) {
23         this.num2 = num2;
24     }
25
26 }

三:CalServlet.java

 1 package nuc.sw.cal.servlet;
 2
 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.http.HttpServlet;
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8
 9 import nuc.sw.cal.bean.Calculator;
10
11 /**
12  * Servlet implementation class CalServlet
13  */
14 public class CalServlet extends HttpServlet {
15     private static final long serialVersionUID = 1L;
16
17     /**
18      * @see HttpServlet#HttpServlet()
19      */
20     public CalServlet() {
21         super();
22         // TODO Auto-generated constructor stub
23     }
24
25     /**
26      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
27      */
28     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
29         // TODO Auto-generated method stub
30         response.getWriter().append("Served at: ").append(request.getContextPath());
31     }
32
33     /**
34      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
35      */
36     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
37         // TODO Auto-generated method stub
38
39         //form中method若由get改变为post,只需在doPost里调用doGet方法doGet(request, response);就可以,不需要重新写方法。
40         //第一次请求为Get  之后为Post
41
42         //接受表单提交的数据,并将数据封装在bean中
43         Calculator cal=new Calculator();
44
45         cal.setNum1(Float.parseFloat(request.getParameter("num1")));
46         cal.setOp(request.getParameter("op"));
47         cal.setNum2(Float.parseFloat(request.getParameter("num2")));
48
49         float result=0;
50         switch(cal.getOp().charAt(0)){
51         //根据运算符做相应的操作
52          case ‘+‘:
53             result=cal.getNum1()+cal.getNum2();
54             break;
55          case ‘-‘:
56             result=cal.getNum1()-cal.getNum2();
57             break;
58          case ‘*‘:
59             result=cal.getNum1()*cal.getNum2();
60             break;
61          case ‘/‘:
62             result=cal.getNum1()/cal.getNum2();
63         }
64
65         //将对象和结果保存到request域中
66         //之后的模型中时常会用到传递 整个对象
67         request.setAttribute("newCal",cal);
68         request.setAttribute("newResult",result);
69         //以服务器端跳转页面
70         request.getRequestDispatcher("cal.jsp").forward(request, response);
71
72     /*
73     1.服务器端跳转              作用域为request  有返回结果而且地址栏改变,变为现页面            请求转发
74       request.getRequestDispatcher("cal.jsp").forward(request, response);
75     2.客户端跳转(2次请求)      作用域为session  无返回结果而且地址栏不变,仍是前一个页面  请求重定向
76       request.sendRedirect("cal.jsp");
77      */
78     }
79
80 }

四:项目建立结果及运行结果:

时间: 2024-11-08 13:20:57

使用MVC实现计算器功能的相关文章

通过键盘接收数值和字符,实现计算器功能。

import java.util.Scanner; /** * @author 蓝色以太 * 通过键盘接收数值和字符,实现计算器功能. */ public class Calculator { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入第一个数值:"); double num1=sc.nextDouble(); System.out

Shell 实现简单计算器功能

Shell 实现简单计算器功能,脚本如下: [[email protected] scripts]# cat jisuan.sh #!/bin/bash print_usage(){     printf $"USAGE:$0 NUM1 {+|-|*|/} NUM2\n"     exit 1 } #判断传入的参数是不是3个 if [ $# -ne 3 ]   then     print_usage fi firstnum=$1 secondnum=$3 op=$2 #对传入的参数进

第一节初识MVC实现计算器

第一节初识MVC实现计算器 /* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab filetype=css: */ /*! * Base CSS for pdf2htmlEX * Copyright 2012,2013 Lu Wang * https://github.com/coolwanglu/pdf2htmlEX/blob/master/share/LICENSE */ /* Part 1: Web Page Lay

完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能

#!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能'''try: a=int(raw_input("please input a number:"))except ValueError: print("第一个运算数字输入非数字") try: b=int(raw_input("please input another number:"))except Val

JavaScript实现计算器功能

截图 : cal.js Js代码   var Class = {} ; Class.calculation = function(){ var calculation = {} ; calculation.result = 0 ; calculation.calculate = function(num1,num2){} ; calculation.getResult = function(){ return this.result ; } ; return calculation ; } ;

使用JS完成一个简单的计算器功能

使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除. 提示:获取元素的值设置和获取方法为:例:赋值:document.getElementById("id").value = 1: 取值:var = document.getElementById("id").value: 任务 第一步: 创建构建运算函数count(). 第二步: 获取两个输入框中的值和获取选择框的值. 提示:document.getElement

MVC会员注销功能Cookie的应用

我们实现了<MVC应用程序实现会员登录功能>http://www.cnblogs.com/insus/p/3466512.html 有登录就会有注销功能.此次Insus.NET练习一个MVC应用程序注销功能. 打开MemberController.cs,添加一个JsonResult(): 在Views/Member/Default.cshtml视图中,添加一个form,并写一个铵钮: 现在我们可以写铵钮的jQuery注销事件了: 无数据Post,#15行的data设为null,由于在控制器处理

MVC技术的功能强大的报表创建和设计控件

Stimulsoft Reports.Web for MVC是一款采用MVC技术的功能强大的报表创建和设计控件,控件提供了完整的报表创建.编辑和显示功能,支持典型的classic ASP.NET MVC 和 ASP.NET MVC Razor,同样也支持所有从2.0开始的MVC框架,该控件开发出来的项目并不需要在客户机上安装.NET框架.ActiveX控件以及任何插件. 具体功能: 是否可以直接在浏览器中编辑和创建报表? 是的,Stimulsoft Reports.Web for MVC包含了完

android实现计算器功能

设计一个简单的计算器. 第一个Activity的界面. 第二个Activity显示算式和计算结果. 第一个Activity代码: import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; impor