今天学习了在一般处理程序中写一个计算器

今天看了看前面的javascript以及学习的jquery,感觉刚开始学习时间就赶得比较紧,练习是做啦,基础的知识都是知道的,但是在写一些小小的程序时间还是陌生,感觉练习的还是很不够的,其实怎么说那,想好好的学习还是把他们使用到项目中练习就会学习的更快些吧,然后我又做啦一个增删改查的一般处理程序,但是还没有总结好,现在就简单的先总结一个小小的计算器使用html和ashx来实现一下其功能,如下所示:

一.html样式

<script>
       //@Script;
    </script>
<body>
    <form action="001.ashx" method="post">
        <table>
            <tr><td>第一个数字:</td> <td><input type="text" name="txtnum1" value="" id="num1"/></td></tr>
            <tr><td>计算符号: </td><td>
                    <select name="select">
                        <option value="+">+</option>
                        <option value="-">-</option>
                        <option value="*">*</option>
                        <option value="/">/</option>
                    </select></td></tr>
            <tr><td> 第二个数字: </td><td><input type="text" name="txtnum2" value="" id="num2"/></td></tr>
            <tr><td colspan="2"> <input type="submit" name="submit" value="等于" /></td></tr>
            <tr><td> 结果:</td><td><input type="text" name="resoult" value="0"  id="num"/></td></tr>
        </table>
    </form>
</body>

写上面的html主要是在这里想说一下使用form表单提交数据两个属性,action指的是操作的我们要指向的ashx页面的地址,而method指的是我们提交程序的方式,在这里我们仅仅学习了post和get两种提交方式,在这里get提交数据主要传参数在url地址栏内,而post的提交方式可以通过firebug来查看其传参,这里就提及到安全性的问题,get方式提交相对来说并没有post安全。

二.ashx程序

public class _001 : IHttpHandler {

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/html";
        string method = context.Request.HttpMethod;    //判断请求的方式,在第一次请求时间为get请求,在submit提交后的请求为post请求,则method为post请求
        if (method == "GET")
        {
            string path = context.Request.MapPath("0001.html");   //html页面文档
            string html = File.ReadAllText(path);       //读取文件路径
            context.Response.Write(html);
        }
        else
        {
            string num1 = context.Request.Form["txtnum1"];         //获取文本框的值
            string num2 = context.Request.Form["txtnum2"];
            string select = context.Request.Form["select"];         //select中获取其值是通过获取其name而得到value
            int resoult = 0;
            if (!string.IsNullOrEmpty(num1) && !string.IsNullOrEmpty(num2))
            {
                switch (select)
                {
                    case "+": resoult = int.Parse(num1) + int.Parse(num2);
                        break;
                    case "-": resoult = int.Parse(num1) - int.Parse(num2);
                        break;
                    case "*": resoult = int.Parse(num1) * int.Parse(num2);
                        break;
                    default: if(!num2.Equals(0))
                        {
                            resoult = int.Parse(num1) / int.Parse(num2);
                        }
                        break;
                }
                string path = context.Request.MapPath("0001.html");
                string html = File.ReadAllText(path);
                //把js写到ashx中替换,也可以在html中写js,然后@一个变量再在ashx中替换
                html += html.Replace("@num",resoult.ToString());
                html += html.Replace("@num1", num1.ToString());
                html += html.Replace("@num2", num2.ToString());

                //html = html.Replace("@Script;", "window.onload=function(){ document.getElementById(‘num‘).value =" + resoult + "; document.getElementById(‘num1‘).value =" + num1 + ";document.getElementById(‘num2‘).value =" + num2 + "; };");

                //html = html.Replace("0", resoult.ToString());     //第一种可以直接替换字符串
                context.Response.Write(html);
            }
        }
    }

    public bool IsReusable {
        get {
            return false;
        }
    }
}

在这里使用的一段javascript代码主要是想实现党页面重新请求时间我们的第一个数和第二个数能够仍然在文本框中显示,在一般处理程序中并不像winform中一样,因为每次点击按钮一个即提交页面就进行一个刷新并提交数据,因此,我们如果不进行处理,那么当我们点击按钮使其呈现结果的时间我们的第一个文本框和第二文本框都为空,仅存在结果的文本框中呈现结果,如果我们要想像winfom中那样,就需要使用js改变。如上所示。
            好啦,今天就写到这里吧,嘿嘿,明天再继续总结我的增删改查一般处理程序。

时间: 2024-10-05 17:45:40

今天学习了在一般处理程序中写一个计算器的相关文章

用VBA写一个计算器

着急的 玩家 可以 跳过“============”部分 ======================================可以跳过的 部分   开始====================================================== 之所以 要有今天这样一篇博客是因为. 之前领导让找几组数据.从excel表格里面. 要求是 主号码 一致,副号码 一致,名称为 XXX 的 项目发生变化的数据 需要被找到. 这样的 项目 有 11个. 我找的真的是眼要花. 变动前

如何写一个计算器

考虑这样一个问题,给定一个字符串,"1+1+(3+4)-2*3+8/2",如何将它转化为如下形式, "1+1=2" "3+4=7" "2+7=9" "2*3=6" "9-6=3" "8/2=4" "3+4=7" 换句话说,就是如何将字符串按照四则运算计算出来,如何写一个计算器.拿java来举例,并且为了简单,我们只考虑个位数.这个过程大概分为这几个

用PHP写一个计算器

本篇文章介绍了使用PHP+HTML+Javascript技术编写一个计算器的方法,希望对各位学习PHP开发的同学有帮助! 用PHP写一个计算器 <body> <?php if (!empty($_POST)) { $op=$_POST['point']; $sum1 = $_POST['sum1']; $sum2 = $_POST['sum2']; $sum = 0; if ($sum1 != '' && is_numeric($sum1) && $sum

利用面向对象写一个计算器

本文参考了程杰的<大话设计模式>,使用C#语言利用面向对象的模式来写一个计算器. 如果是我本人来写计算器,也就加减乘除的话,估计我会全部写进控制台里面,写4个if语句出来......或者我会利用switch,但是这样的效果都不好,有更好的方法,就是如下所示的代码啦: 先定义一个Operation类,主要实现运算框架: class Operation { public double Number1 { get; set;} public double Number2 { get; set; }

Python中写一个乒乓球类的游戏

最近开始学Python,感觉挺好玩的,既有脚本语言的灵活性,又有丰富的类库与面向对象的特点,开发起来很方便. 游戏的规则和乒乓球一样,如果妙蛙种子掉地上了就算输,你可以用蓝色的跷跷板弹它,使他不落到地面上. Game Over后可按任意键继续游戏或选择退出. 代码如下: 1 import sys, pygame 2 from random import * 3 from pygame.locals import * 4 from pygame.font import * 5 class MyPl

在React中写一个Animation组件,为组件进入和离开加上动画/过度

问题 在单页面应用中,我们经常需要给路由的切换或者元素的挂载和卸载加上过渡效果,为这么一个小功能引入第三方框架,实在有点小纠结.不如自己封装. 思路 原理 以进入时opacity: 0 --> opacity: 1 ,退出时opacity: 0 --> opacity: 1为例 元素挂载时 挂载元素dom 设置动画opacity: 0 --> opacity: 1 元素卸载时 设置动画opacity: 0 --> opacity: 1 动画结束后卸载dom 组件设计 为了使得组件简

JavaWeb学习(三) : 如何在 Eclipse 中创建一个Web 项目并成功运行?

前置条件 : 1.确保已安装 Eclipse.Tomcat 服务器安装包 2.jdk.环境变量都已配置成功. 3.注意在安装 Eclipse 时一定要选择第二个有 Web 项目的进行安装, 不然安装成功后还需要下载很多的插件,增加了不必要的麻烦. 创建步骤 : 1.将本地 Tomcat 服务器添加 进去: 首先打开 Window -- preference 搜索 server 双击 Runtime Environments 点击 Add,找到对应的你下载的 TomCat 服务器,进行添加,我的

Ruby中写一个判断成绩分类的脚本

需求为:从键盘输入分数,以此来判断,0-59为不及格,打印"您没有及格,请下次努力!",60-79为及格,打印"您的成绩及格,请更加努力!",80-100为成绩良,打印"您的成绩为优秀,请再接再厉!",如果输入为0-100以外的分数,请打印"您的成绩为优秀,请再接再厉!" 如果采用ruby方式,代码比较精简,如下所示: #!/usr/bin/ruby print "请输入您的分数: " grade = ge

.net 在数据访问层中写一个DBhelper优化类

复习了在学校的时候做的WinForm端的一个学生信息管理系统,用的三层架构,看了一下里面的数据优化类 这个类是用来把对数据库的操作封装成静态方法,增删改查的时候直接调用这个类,减少项目里代码的冗余和方便以后修改. Dbhelper类代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System