国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - 理解HttpHandler,并為所有*.jpg圖片生成一段文字于圖片上

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

2019-09-29 11:34asp.net開發網 ASP.NET教程

HttpHandler就是最終相應HTTP請求,生成HTTP響應的處理器,他們的實例由asp.net運行時創建,,并生存在asp.net的運行時環境中,如果asp.net運行時是處理請求的工廠,HttpHandler是處理請求的工人

接口IHttpHandler的定義如下: 

復制代碼代碼如下:


interface IHttpHandler 

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


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

主要代碼: 

復制代碼代碼如下:


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節點中天下如下節點 
<httpHandlers> 
<add verb="*" path="Handler1.aspx" type="MyHttpHandler.Class1,MyHttpHandler"/> 
<!-- 
配置文件中的選項說明: 

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

· Path指明對相應的文件進行處理,"*.aspx"表示對發給所有ASPX頁面的請求進行處理。可以指明路徑,如"/test/*.aspx",表明只對test目錄下的ASPX文件進行處理。 

· Type屬性中,逗號前的字符串指明HttpHandler的實現類的類名,后面的字符串指明Dll文件的名稱。 

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

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

7-運行Handler1.aspx,頁面顯示:
理解HttpHandler,并為所有*.jpg圖片生成一段文字于圖片上
下面我們利用HttpHandler將一段文字生成于圖片中 
添加一個類,默認為Class.cs 

復制代碼代碼如下:


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: 在此處添加構造函數邏輯 
// 

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(); 


新建一個.aspx頁面,添加一個HyperLink控件,再在其.cs文件中添加一段代碼傳值 

復制代碼代碼如下:


protected void Page_Load(object sender, EventArgs e) 

HyperLink1.NavigateUrl = "img.jpg?writetext=" + HttpUtility.UrlEncode("大蝸牛"); 


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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产欧美精品一区二区三区 | 午夜激情免费看 | 久草在线免费资源 | 国产精品成av人在线视午夜片 | 在线a视频网站 | 午夜色福利 | 久久天堂电影 | 欧美日韩精品一区二区三区蜜桃 | 国产一区二区精品在线观看 | 在线中文 | www.国产视频 | 天天干天天操天天射 | 国产a区 | 免费日韩 | 成人毛片在线 | 亚洲欧美中文日韩在线v日本 | 亚洲精品乱码久久久久久久 | 夜夜操av | 超碰91在线| 日韩成人影院 | 精品久久久久久久久久久久久久 | 日韩大片免费看 | 久久婷婷丁香 | 国内外成人激情免费视频 | 欧美精品综合 | 亚洲激情网站 | 日韩一区二区三区在线观看 | 国产乱淫精品一区二区三区毛片 | 欧美日韩三区 | 久久久久久综合 | 在线视频一区二区三区 | 国产成人综合一区二区三区 | 亚洲男性天堂 | 午夜精品一区二区三区在线观看 | 久久久久久久一区 | 午夜天堂精品久久久久 | 久久精品中文字幕大胸 | 日韩在线观看视频一区二区三区 | 国产99久久精品 | 日本高清无卡码一区二区久久 | 麻豆产精国品免费 |