Web-----》》》 一般处理程序 ashx

一般处理程序

后缀:

前台页面:.ashx

后台页面:.ashx.cs

打开方式:右键程序集--在浏览器中查看--输入url(如http://localhost:6560/firstAshx.ashx) firstAshx.ashx是一般处理程序的名称

ashx处理机制(流程):

浏览器发送请求给服务器中的IIS,IIS接收到请求就会到处理映射池中找到对应的类文件交给ASPNet.Isapid(中间处理程序)  中间处理程序再把类文件交给asp.fromwork框架,再根据ashx找到前台页面类,然后就根据前台页面类的指令集中的找到后台页面类,最后会调用后台页面类的ProcessRequest方法,执行里面的代码后返回给服务器

指令集:对我们程序员没有实际意义,编译器看到我们的这串指令集的时候,会根据CodeBehind找到我们对应的后台代码

<%@ WebHandler Language="C#" CodeBehind="firstAshx.ashx.cs" Class="一般处理程序.firstAshx" %>

一般处理程序的后台页面实现了IHttpHandler接口

在一般处理程序中的PR方法中输出图片的代码"text/html"

context.Response.ContentType = "text/html"; //输出的是html代码 也可以直接不要这句默认也是输出html代码    //输出文本是text/plain

context.Response.Write("<img src=‘img/1.jpg‘>");

要把数据显示在浏览器中:context.Response.Write(“输入要显示的东东就ok”);

get 和post 传值

get传值的四种方式:get提交的数据会显示在url中 不安全

1.url传值,手动修改url:在路径中用(问号) ?隔开  参数与参数隔开用&连接

2.用超连接如:

<a href=”getData.ashx?Id=2&name=小明”>超连接传值</a>

3.通过js方法传值

<input type=button onclick=”go()”value=”js传值”>

<script type=”text/javascript”>

function go(){

Window.location=”getData.ashx?Id=2&name=小明”;

}

</script>

4.form表单传值  (这种很重要)

<form action=”getData.ashx”metthod=”get”>

<intput type=”text”name=”id” value=”2”>

<intput type=”text”name=”name” value=”小明”>

<input type=”submit”value=”<form>”>

</form>

注意:

1.提交的数据一定要在form表单中

2.标签的值必需要有name属性

3.Form表单中必须要有submit按钮 或提交方法

post传值:url不会显示传输的数据了,更安全

只有一种方式 form表单

和前面的form表单差不多,就是把method=”post“ 传值方式改成post

context.Request.Handler  可以取到报文头中的内容

//得到当前的请求方式  请求方式 默认是大写

String method=Context.Reqiest.HttpMethod;

String id=context.Requesst.QueryString[“id”];//获取传值过来的值  只能接收get请求发送过来的值

String id=context.Requesst.QueryString[“name”];

//获取post传值过来的值  要用Form属性

String method=Context.Reqiest.HttpMethod;

String id=context.Requesst.Form[“id”];

String method=Context.Reqiest.HttpMethod;

String id=context.Requesst.Form[“name”];

也可以用context.Requesst[“id”];接收get和post值  不需要上面用的QueryString和Form属性 但是性能没有那么高

找到模板页所对应的路径

String path=context.Server.mapPath(“/get/templ.html”);

//读取模板里面的内容

String str=system.IO.File.ReadAllText(path);

//生成连接字符串

system.text.StringBuilder sb=new System.Text.StringBuilder(200);

//把模板页里面的占位符提换

Str=str.Replace(“$(trs)”.sb.ToString());

//输出内容  响应

context.Response.Write(str);

Redirect:重定向到另外一个页面

服务器发送命令让浏览器跳转

Redirect()这个方法会做三个事情:

1.调用Clear方法 清空response.write()里面的数据

2.修改状态码为302  并且设置location

3.调用end方法 结束请求

时间: 2024-12-27 16:11:55

Web-----》》》 一般处理程序 ashx的相关文章

jQuery获取一般处理程序(ashx)的JSON数据

昨天有在开发的软件生产线生产流程,RFID扫描IC卡的数据,当中有用到jQuery获取一般处理程序(ashx)的JSON数据.今有把它写成一个小例子,望需要的网友能参考. 在网站中,创建一个一般应用程序ashx: 命名空间: using System.Data; using System.Collections.Generic; using System.Web.Script.Serialization; 输出的内容类型: context.Response.ContentType = "appl

Ajax 调用(传值)一般处理程序(.ashx)

问题:在一般处理程序(.ashx)中累加[index='b']的值 难点:前台获取JSON值后台解析 解决: //#region 把index=b的值存在JSON对象中 function AjaxGetSum() { var arr = []; $("input[index='b']").each(function () { var arrObject = {}; var tempVal = $(this).val(); if (!$.gstr.isEmpty(tempVal)) {

ASP.NET -- 一般处理程序ashx

ASP.NET  --   一般处理程序ashx 如果在一个html页面向服务器端请求数据,可用ashx作为后台页面处理数据.ashx适合用作数据后台处理,相当于WebForm中的aspx.cs文件或aspx.vb文件. 入门案例:html页面向ashx页面请求数据,ashx作为后台页面返回数据. 前端html页面: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" co

一般处理程序ashx的好处

[免去了普通.aspx页面的控件解析以及页面处理的过程].这个是主要的.运行起来比.aspx快很多. .ashx 这个文件特别适合于生成动态图片,生成动态文本等内容. HttpHandler和ASP.NET窗体比较,最大的好处就是轻量. HttpHandler主要处理http请求,ASP.NET窗体除了处理http请求之外还要负责生成html页面,另外为了支持服务器空间添加了很多回调的逻辑. 各有各的好处,要灵活应用,例如你要返回一段json数据,HttpHandler就更佳. ASP.NET窗

一般处理程序ashx结合gdi+处理图片

1 新建一般处理程序  .ashx public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain";context.Response.Write("Hello World"); } 2. 引入命名空间  using System.Drawing; 3.因为是操作图片所以把context.Response.ContentType = "

ASP.NET MVC 项目中 一般处理程序ashx 获取Session

1-在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写. 而在ashx中,Session都要使用context.Session,读写方法是这样的: context.Session["xxx"]="aaa"和aaa=context.Session["xxx"].ToString() 2-在ash

vs中一般处理程序*.ashx是可以处理多件事的

这两天跟着辉哥做项目. 由于我那个项目几乎就是用各种重复的语句堆起来的, 维护起来非常麻烦, 所以我要用他的项目继续写下去. 接着碰到一个问题,就是我问辉哥,是不是一个*.ashx只可以处理一个事, 辉哥说不是的,你可以用ajax穿进去数据的时候在第一个键值那设置相同的键但是不同的值. 我当时想了很久也不明白,然后我到了第二天才想明白. 例如: 我Web页面这么写: <script type="text/javascript"> $("#button1"

C# web项目添加*.ashx文件后报错处理

说明:我是菜鸟,博文水平有限,仅作学习过程中的备忘笔记 1.截图信息: ————————————————————————————————————————————————————————————————— 2.处理: 添加后的代码结构为 这里看Upload1.ashx文件,默认添加后,会有Upload1.ashx.cs文件,应为这个导致了页面错误:我们需要修改Upload.ashx页面,但此时,只能打开 Upload1.ashx.cs文件.解决的方法是,先复制Upload1.ashx.cs里的内容

C#、asp.net中的一般处理程序.ashx文件重命名问题

这里简单说一下.net中,对一般处理程序文件xxx.ashx重命名的问题 事发原因,我在对aaa.ashx文件重命名为bbb.ashx时,页面中写好的ajax调用bbb.ashx时,调用不到了,找了一下,在bbb.ashx文件的目录下有2个文件:bbb.ashx.bbb.ashx.cs 打开bbb.ashx,发现 <%@ WebHandler Language="C#" CodeBehind="bbb.ashx.cs" Class="PengYuan