最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

理解HttpHandler,并為所有*.jpg圖片生成一段文字于圖片上

 更新時(shí)間:2012年03月12日 16:51:04   作者:  
HttpHandler就是最終相應(yīng)HTTP請求,生成HTTP響應(yīng)的處理器,他們的實(shí)例由asp.net運(yùn)行時(shí)創(chuàng)建,,并生存在asp.net的運(yùn)行時(shí)環(huán)境中,如果asp.net運(yùn)行時(shí)是處理請求的工廠,HttpHandler是處理請求的工人
接口IHttpHandler的定義如下:
復(fù)制代碼 代碼如下:

interface IHttpHandler
{
void ProcessRequest(HttpContext ctx);
bool IsReuseable { get; }

1新建一網(wǎng)站,名為MyHttpHandlerTest
2右擊添加,選擇類庫,取名為MyHttpHandler
3-在上一步新建的類庫上右鍵添加System.Web引用

主要代碼:
復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.SessionState;
namespace MyHttpHandler
{
public class Class1:IHttpHandler,IRequiresSessionState
{
#region IHttpHandler成員
public bool IsReusable
{
get { return true; }
}

public void ProcessRequest(HttpContext context)
{
context.Response.Write("handler處理");
}
#endregion
}
}

4-在MyHttpHandler類庫上右鍵,生成,取名為MyHttpHandler

5-在web.config中的system.web節(jié)點(diǎn)中天下如下節(jié)點(diǎn)
<httpHandlers>
<add verb="*" path="Handler1.aspx" type="MyHttpHandler.Class1,MyHttpHandler"/>
<!--
配置文件中的選項(xiàng)說明:

· verb可以是"GET"或"POST",表示對(duì)GET或POST的請求進(jìn)行處理。"*"表示對(duì)所有請求進(jìn)行處理。

· Path指明對(duì)相應(yīng)的文件進(jìn)行處理,"*.aspx"表示對(duì)發(fā)給所有ASPX頁面的請求進(jìn)行處理??梢灾该髀窂剑?/test/*.aspx",表明只對(duì)test目錄下的ASPX文件進(jìn)行處理。

· Type屬性中,逗號(hào)前的字符串指明HttpHandler的實(shí)現(xiàn)類的類名,后面的字符串指明Dll文件的名稱。

格式如:type="自定義HttpHandler的實(shí)現(xiàn)類的全名,自定義HttpHandler的實(shí)現(xiàn)類的命名空間(即Dll名)"

或 type="自定義HttpHandler的實(shí)現(xiàn)類的全名"
-->
</httpHandlers>
6-在MyHttpHandlerTest右鍵添加引用,選擇項(xiàng)目找到剛才編譯后的.dll文件

7-運(yùn)行Handler1.aspx,頁面顯示:

下面我們利用HttpHandler將一段文字生成于圖片中
添加一個(gè)類,默認(rèn)為Class.cs
復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.SessionState;
using System.Drawing;
/// <summary>
/// Class1 的摘要說明
/// </summary>
public class Class1:IHttpHandler
{
public Class1()
{
//
// TODO: 在此處添加構(gòu)造函數(shù)邏輯
//
}
public bool IsReusable
{
get { return true; }
}
private static Image OldImage = null;
private static Image GetOldImage(HttpContext context)
{
if (OldImage == null)
{
OldImage = Image.FromFile(context.Server.MapPath("~/Images/Old.jpg"));
}
return OldImage.Clone() as Image;
}
public void ProcessRequest(HttpContext context)
{
Image newimage = GetOldImage(context);
Graphics gh = Graphics.FromImage(newimage);
Font font = new Font("Monaco", 24.0f, FontStyle.Regular);
string writetext = HttpUtility.UrlEncode(context.Request.QueryString["writetext"]);
gh.DrawString(HttpUtility.UrlDecode(writetext), font, new SolidBrush(Color.LightBlue), 20.0f, newimage.Height - font.Height - 30);
newimage.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
gh.Dispose();
newimage.Dispose();
}
}

新建一個(gè).aspx頁面,添加一個(gè)HyperLink控件,再在其.cs文件中添加一段代碼傳值
復(fù)制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
HyperLink1.NavigateUrl = "img.jpg?writetext=" + HttpUtility.UrlEncode("大蝸牛");
}

另外還需在web.config文件中將httpHandlers節(jié)點(diǎn)中改為如下
<add verb="*" path="*.jpg" type="Class1"/>
表明對(duì)所有的.jpg格式的文件才會(huì)處理
參考《道不遠(yuǎn)人 深入解析asp.net 2.0控件開發(fā)》

相關(guān)文章

  • ASP.NET頁面間數(shù)據(jù)傳遞的幾種方法介紹

    ASP.NET頁面間數(shù)據(jù)傳遞的幾種方法介紹

    在ASP.NET中,頁面間數(shù)據(jù)傳遞的方法有很多。下面為大家總結(jié)一下,頁面間數(shù)據(jù)傳遞的方法,來看作者的分析。
    2013-05-05
  • ASP.NET如何獲取兩個(gè)日期之間的天數(shù)

    ASP.NET如何獲取兩個(gè)日期之間的天數(shù)

    這篇文章主要介紹了ASP.NET獲取兩個(gè)日期之間的天數(shù)方法,需要的朋友可以參考下
    2014-03-03
  • .net中 關(guān)于反射的詳細(xì)介紹

    .net中 關(guān)于反射的詳細(xì)介紹

    本篇文章小編將為大家介紹,.net中 關(guān)于反射的詳細(xì)介紹 ,有需要的朋友可以參考一下
    2013-04-04
  • 在ASP.NET Core5.0中訪問HttpContext的方法步驟

    在ASP.NET Core5.0中訪問HttpContext的方法步驟

    這篇文章主要介紹了在ASP.NET Core5.0中訪問HttpContext的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • ASP.NET將文件寫到另一服務(wù)器(圖文教程)及注意事項(xiàng)

    ASP.NET將文件寫到另一服務(wù)器(圖文教程)及注意事項(xiàng)

    有時(shí)我們需要將來自于客戶端的文件上傳到WEB服務(wù)器端,并在服務(wù)端將文件存儲(chǔ)到第三方文件服務(wù)器中存儲(chǔ),既然有需求,那就有實(shí)現(xiàn)了,感興趣的你可以了解此文,或許對(duì)你學(xué)習(xí)asp.net 起到很好的作用哦
    2013-01-01
  • 使用SWFUpload實(shí)現(xiàn)無刷新上傳圖片

    使用SWFUpload實(shí)現(xiàn)無刷新上傳圖片

    現(xiàn)在網(wǎng)站不再講究的是功能性,更多的是用戶體驗(yàn)性,在這里上傳圖片就需要用到ajax無刷新上傳圖片,這里面包含的東西不是一點(diǎn)半點(diǎn) 。這里用到的是一個(gè)插件swfupload 實(shí)現(xiàn)無刷新上傳圖片
    2015-06-06
  • asp.net小孔子cms中的數(shù)據(jù)添加修改

    asp.net小孔子cms中的數(shù)據(jù)添加修改

    最近都在看小孔子cms的代碼,其添加與修改數(shù)據(jù)十分方便,做下筆記,代碼主要提取自小孔子cms,去掉了不用的函數(shù)并把相關(guān)代碼寫到一個(gè)文件中
    2008-08-08
  • .NET程序性能監(jiān)控系統(tǒng)Elastic?AMP的使用方法

    .NET程序性能監(jiān)控系統(tǒng)Elastic?AMP的使用方法

    這篇文章介紹了.NET程序性能監(jiān)控系統(tǒng)Elastic?AMP的使用方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • ASP.NET實(shí)現(xiàn)個(gè)人信息注冊頁面并跳轉(zhuǎn)顯示

    ASP.NET實(shí)現(xiàn)個(gè)人信息注冊頁面并跳轉(zhuǎn)顯示

    這篇文章主要介紹了ASP.NET實(shí)現(xiàn)個(gè)人信息注冊頁面并跳轉(zhuǎn)顯示的相關(guān)資料,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2016-11-11
  • IIS上部署Asp.net core Webapi的實(shí)現(xiàn)步驟

    IIS上部署Asp.net core Webapi的實(shí)現(xiàn)步驟

    ASP.NET Core Web API是構(gòu)建RESTful應(yīng)用程序的理想平臺(tái),本文主要介紹了IIS上部署Asp.net core Webapi的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07

最新評(píng)論

辽阳县| 仁怀市| 拜城县| 漠河县| 东台市| 巴塘县| 定南县| 原平市| 奉化市| 宾川县| 阿城市| 青州市| 罗田县| 重庆市| 朝阳区| 昌乐县| 苍梧县| 灵武市| 郁南县| 临泽县| 云南省| 满城县| 镇坪县| 同仁县| 大安市| 岱山县| 鄂尔多斯市| 柳林县| 麻栗坡县| 永胜县| 甘肃省| 旌德县| 遂平县| 津南区| 宁阳县| 石景山区| 同心县| 通山县| 科尔| 高青县| 长宁县|