,,,,,,,,,,, <强> 强>:其实它本质上就是一个类,但是它需要注意几个方面:
,,,,(1)需要实现一个IHttpHandler的接口,这是因为它在asp.net的运行原理中,在创建被请求的页面类时,需要把它转成接口,然后再实现接口里面* * *的过程装备()方法;
,,,,(2)里面还需要实现IsReusable(),的方法,它是表示在服务器上是否可以重用(设置为true 即为可重用,一般默认设置为false)
,
,,,,,,,,,同时我还简单利用一般处理程序,写了一个简单的计算器,希望和大家一同深入体会一下一般处理程序的运用。
,,,, <强> 强>
,,,,,,, <强> 强>
,,,,,,
& lt; !DOCTYPE html> & lt; html xmlns=" http://www.w3.org/1999/xhtml "比; & lt; head> & lt;元http-equiv=? type”内容=" text/html;utf - 8字符集="/比; & lt; title> & lt;/title> & lt;/head> & lt; body> action=" c02index & lt;形式。ashx”方法=" post "比; & lt;输入类型=耙亍眓ame=" hidIsPostBack " value=" https://www.yisu.com/zixun/1 "/比; & lt;输入类型="文本" name=" txtNum1 " value=" https://www.yisu.com/zixun/{num1} "/祝辞& lt;选择id=癝elect1”名称=把∪ 北? & lt;选项选择="选择"祝辞+ & lt;/option> & lt;选项选择="选择"祝辞& lt;/option> & lt;选项选择="选择"祝辞* & lt;/option> & lt;选项选择="选择"祝辞/& lt;/option> & lt;/select> & lt;输入类型="文本" name=" txtNum2 " value=" https://www.yisu.com/zixun/{num2} "/祝辞=& lt;输入类型="文本" name=" txtSum " value=" https://www.yisu.com/zixun/{res} "/祝辞& lt; br/比; & lt;输入类型="提交" value=" https://www.yisu.com/zixun/计算“/比; & lt;/form> & lt;/body> & lt;/html>
,,,, <强> 强>
<强> 强>
使用系统; 使用System.Collections.Generic; 使用来; 使用包含; 名称空间Calulate {///& lt; summary>///c02index的摘要说明///& lt;/summary> 公开课c02index: IHttpHandler { 公共空间过程* * *装备(HttpContext上下文) { context.Response。ContentType=" text/html ";//1。通过虚拟路径获取绝对路径 字符串PhyPath=context.Server.MapPath (“c02index.html”);//2。通过绝对路径获取文件值 字符串strHtml=System.IO.File.ReadAllText (PhyPath);//3 .获取浏览器的发布方式发过来的参数 字符串strNum1=context.Request.Form (“txtNum1”); 字符串strNum2=context.Request.Form (“txtNum2”);//4 .定义返回的变量 int x=0, y=0, z=0;//5 .判断接收的参数 如果(! string.IsNullOrEmpty (context.Request.Form [" hidIsPostBack "])) { 如果(! string.IsNullOrEmpty (strNum1),, ! string.IsNullOrEmpty (strNum2)) { 如果(int)。TryParse (strNum1, x),,int.TryParse (strNum2, y)) { 如果(context.Request。形式(“选取”)==" + ") { z=x + y; } else if (context.Request。形式(“选取”)==?”) { z=x - y; } else if (context.Request。形式(“选取”)==?”) { z=x * y; } else if (context.Request。形式(“选取”)=="/") { 如果(y !=0) { z=x/y; } 其他的 { 抛出新的异常(“除数不能为零”); } } } }//6。替代字符串并接收替代后的返回值 strHtml=strHtml。替换(“{num1}”, x.ToString ())。替换(“{num2}”, y.ToString ())。替换(“{res}”, z.ToString ());//7 .把字符串返回给浏览器 context.Response.Write (strHtml); } } 公共bool IsReusable { 得到 { 返回错误; } } } }
,,,,,,,
,