第二章 用户控件与HttpHandler
1.用户控件
1.1用户控件介绍
(1)是一种自定义的组合控件
(2)封装独立的功能(显示列表等)
(3)方便像页面一样的编辑
(4)可以像系统控件一样拖拽方式使用
(5)后缀名为.ascx
1.2用户控件的作用
(1)母版页提供整个页面级的风格控制和代码重用;
(2)用户控件提供小范围的风格控制和更灵活的代码重
注意事项:用户控件中可以使用其他的用户控件,但不可包含自己
public int StoreID{get;set;}
2.用户控件与page
2.1用户控件与页面的区别
后缀名:用户控件以.ascx为后缀名,而页面后缀名是.aspx
指令:用户控件为@Control,页面是@Page
继承:用户控件继承自System.Web.UI.UserControl,而页面继承自System.Web.UI.Page
访问:用户控件不可直接访问,页面可直接访问
2.2用户控件与母版页区别
功能:母板提供一些列页面的页面框架,用户控件提供页面内容中的细节
母版页:内容页的框架,每个页面只能使用一个母版页
用户控件:为母版页,内容页,普通页甚至其他用户控件提供内容,且可以使用多个用户控件
3.HttpModule和HttpHandler
(1)事实上我们每请求一次aspx页面都经历了同样的过程,只不过我们没有察觉而已
(2)一个请求可以经过多个Module但是最终只能被一个Handler处理
4.全局Handler方式实现数字水印
使用.ashx方式,需要修改所有访问封面图片的路径,太麻烦。能否在不修改任何访问路径的情况下实现图片的数字水印效果?
实现思路分析:
1.修改配置信息,将所有对.JPG内容的访问转到HttpHandler处理程序
2.获得访问请求,得到用户访问的图片路径
3.根据请求的路径,查找相对应的DVD封面图片
4.将网站标识“绘制”在DVD封面图片的左下角
5.修改程序的输出类型,并将组合出的新图片输出
配置全局Handler
verb:谓词GET,POST,FTP等
path:访问路径,此处表示所有针对“Productlmgs/*.jpg”路径的请求都将交给PicCoverHandler类进行处理。
type:指定的处理程序(类)
<httpHandlers>
<add verb="*" path="productimgs/*.jpg" type="PicCoverHandler"/>
</httpHandlers>
5.在IIS配置处理程序
在IIS上使用该方式要做其他处理:
开发服务器仅提供最简单的Web服务器功能,它不对请求的内容做任何处理,而是直接将所有的请求转交给ASP.NET处理;
IIS功能比较完善,可以独立处理一些访问请求,比如.html,.jpg等的访问不会提交给ASP.NET来处理