ASP.NET----模块和处理程序
1.HttpModule和HttpHandler
(1) 事实上我们每请求一个 aspx 页面都经历了同样的过程 , 只不过我们没有察觉而已 (2) 一个请求可以经过多个 Module 但是最终只能被一个 Handler 处理2.HttpHandler的使用
在web应用程序项目中添加一般应用程序一般处理程序页面及注释
3.水印的实现(一般有一下三种方法)
(1) 直接编辑每张图片-----------( 需要大量的人力。 ) (2) 编程实现批量编辑图片----------( 节省人力,效率高,但原始图片丢失了。 ) (3) 在显示图片时,动态添加数字水印效果---------( 使用 HttpHandler )4.使用HttpHandler方式是实现水印
前台界面







后台代码实现
public void ProcessRequest(HttpContext context){//获取图片路径string imgs="~/ProductImgs/";//获取要添加数字水印的图片string file = context.Request.MapPath(imgs + context.Request.QueryString["id"] + ".jpg");//string file = context.Request.PhysicalPath;Image img = null;//判断图片的物理地址是否存在if (File.Exists(file)){//加载图片img = Image.FromFile(file);//定义画布Graphics grap = Graphics.FromImage(img);//合成水印图片grap.DrawString("水印",new Font("微软雅黑",20),Brushes.Red,img.Width-50,img.Height-30);//释放水印grap.Dispose();}else{}//定义输出类型context.Response.ContentType = "image/jpeg";//保存图片到输出流img.Save(context.Response.OutputStream,ImageFormat.Jpeg);//释放画布img.Dispose();//输出结束context.Response.End();}
5.全局Handler方式实现水印
5.1实现思路分析
(1) 修改配置信息,将所有对 .JPG 内容的访问转到 HttpHandler 处理程序 (2) 获得访问请求,得到用户访问的图片路径; (3) 根据请求的路径,查找相对应的 DVD 封面图片; (4) 将网站标识“绘制”在 DVD 封面图片的左下角; (5) 修改程序的输出类型,并将组合出的新图片输出。5.2实现及代码




public void ProcessRequest(HttpContext context){//获取图片路径string imgs="~/ProductImgs/";//获取要添加数字水印的图片//string file = context.Request.MapPath(imgs + context.Request.QueryString["id"] + ".jpg");string file = context.Request.PhysicalPath;Image img = null;//判断图片的物理地址是否存在if (File.Exists(file)){//加载图片img = Image.FromFile(file);//定义画布Graphics grap = Graphics.FromImage(img);//合成水印图片grap.DrawString("水印",new Font("微软雅黑",20),Brushes.Red,img.Width-50,img.Height-30);//释放水印grap.Dispose();}else{}//定义输出类型context.Response.ContentType = "image/jpeg";//保存图片到输出流img.Save(context.Response.OutputStream,ImageFormat.Jpeg);//释放画布img.Dispose();//输出结束context.Response.End();}
修改Web.config文件的httpHandlers
6.在IIS配置处理程序
(1)在IIS上使用该方式要做其他处理
(2) 开发服务器仅提供最简单的Web服务器功能,它不对请求的内容做任何处理,而是直接将所有的请求转交给ASP.NET处理; (3) IIS 功能比较完善,可以独立处理一些访问请求,比如 .html 、 .jpg 等的访问不会提交给 ASP.NET 来处理本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
