[转]使用web.config中的httpHandlers
来源:互联网 发布:西门子触摸屏编程手册 编辑:程序博客网 时间:2024/06/06 15:50
本文转自:http://www.youguanbumen.net/84.html
昨天写了个文章尽量用自己的话讲述了URLRewriter.dll组件的基本使用,组件本身使用起来比较方便,通过简单的配置边可以进行URL重写并且实现用于装逼或者加强SEO的伪静态。但是为了了解配置文件各个节点的作用还是小费了一番功夫的,归根结底还是基础不扎实惹的祸。这篇文章尽量用自己的语言简单讲述一下httpHandlers节点的使用^_^回看前一篇文章我们的第2个步骤讲述web.config配置的最后一小步,我们做了如下配置:
web.config配置
1
2
3
4
5
6
7
<
configuration
>
<
system.web
>
<
httpHandlers
>
<
add
verb
=
"*"
path
=
"*.html"
type
=
"URLRewriter.RewriterFactoryHandler, URLRewriter"
/>
</
httpHandlers
>
</
system.web
>
</
configuration
>
首先提一个需求:“对于通过GET方式向任何扩展名为.tiu的请求,使用一个名为TiuHttpHandler的类来进行处理,请求后返回‘Hello Tiu’的字样”。基于这个需求我们需要在web.config的httpHandlers中添加一个add节点,如下:
从最外层到add节点的配置,主要看add节点的配置
1
2
3
4
5
6
7
<
configuration
>
<
system.web
>
<
httpHandlers
>
<
add
verb
=
"GET"
path
=
"*.tiu"
type
=
"WebApplication.TiuHttpHandler,WebApplication"
/>
</
httpHandlers
>
</
system.web
>
</
configuration
>
接下来就是实现类了,用来处理Http请求,必须要继承IHttpHandler这个接口(是不是觉得在哪里见过呢,创建一般处理程序看看就知道了)。创建TiuHttpHandler类,代码很简单,如下:
TiuHttpHandler类代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace
WebApplication
{
public
class
TiuHttpHandler:IHttpHandler
{
public
void
ProcessRequest(HttpContext context)
{
var currentResponse = context.Response;
var outPutStr =
string
.Format(
"Hello Tiu"
);
currentResponse.Write(outPutStr);
}
public
bool
IsReusable
{
get
{
return
false
; }
}
}
}
完成以上的代码我们可以开始测试了,在网站根目录下面添加个Default.aspx页面,拖几个HyperLink控件上去,页面的关键代码如下:
Default.aspx页面代码
1
2
3
4
5
6
7
8
<
div
>
<
ul
>
<
li
><
asp:HyperLink
ID
=
"HyperLink4"
NavigateUrl
=
"serafin.tiu"
runat
=
"server"
Text
=
"serafin.tiu"
/></
li
>
<
li
><
asp:HyperLink
ID
=
"HyperLink1"
NavigateUrl
=
"~/serafin.tiu"
runat
=
"server"
Text
=
"~/serafin.tiu"
/></
li
>
<
li
><
asp:HyperLink
ID
=
"HyperLink2"
NavigateUrl
=
"~/channel1/serafin.tiu"
runat
=
"server"
Text
=
"~/channel1/serafin.tiu"
/></
li
>
<
li
><
asp:HyperLink
ID
=
"HyperLink3"
NavigateUrl
=
"~/channel2/serafin.tiu"
runat
=
"server"
Text
=
"~/channel2/serafin.tiu"
/></
li
>
</
ul
>
</
div
>
打开Default.aspx页面看到四个超链接,分别点击会发现都看新打开的浏览器窗口显示了“Hello Tiu”的字样,说明都被我们创建的TiuHttpHandler类给处理了。当然实际使用的时候我们往往会在ProcessRequest(HttpContext context)方法中书写或者简单或者复杂的逻辑代码来进行不同的处理,例如对URL进行分析然后调用不同的业务方法显示不同结果之类的。
注意!部署到iis上面的话记得要做写配置,道理和前一篇文章一样,详见这篇文章后面的图片!
本文的源代码,需要的话下载看下^_^
一般什么情况下会这样做呢,由于经验比较少所以我也说不全...网站图片防盗链的情况下、对于不需要显示html仅仅用于处理请求的情况下之类,但多数情况下使用一般处理程序已经可以解决问题了,文件没讲得深入主要是我自己也用的比较少,旨在了解web.config的httpHandlers到底是个啥,一般怎么用^_^,详细资料可以查看MSND(看官方资料才是王道)
0 0
- [转]使用web.config中的httpHandlers
- [转]使用web.config中的httpHandlers
- web.config 关于HttpHandlers 和HttpModules的使用实例【转】
- web.config中的HttpContext, HttpModules 和 HttpHandlers
- web.config中的HttpContext, HttpModules 和 HttpHandlers
- 使用httpHandlers
- 在配置文件web.config中配置httpHandlers节点是的一些说明
- (转)编码web.config中的信息
- [转]web.config中的session配置详解
- web.config中的HttpHandler
- web.config中的HttpHandler
- web.config中的数据库连接
- web.config中的HttpHandler
- web.config中的HttpHandler
- httpHandlers使用和问题
- httpHandlers使用和问题
- httpHandlers使用和问题
- Web.config文件使用
- 网络:NSOutputStream的使用
- Spring切入点表达式常用写法
- JIRA环境搭建
- Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis
- linux系统启动报错:[contains a file system with errors, check forced]的解决方法参考
- [转]使用web.config中的httpHandlers
- Maven报错:Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml
- 使用volley读取压缩文件的内容(zip、gz)
- 语法错误 : 缺少“;”(在“类型”的前面)
- MacBook如何用Parallels Desktop安装windows7/8
- angular 学习网址推荐(持续更新中)
- 网络:使用多线程下载文件
- 关于C/C++中的inline
- rescue the princess 省赛四1