也想快乐的生活

好好扮演自己的角色,做自己该做的事

孟月天ID:xiaoxiaohai123
144670次访问,排名506好友2人,关注者14
软件开发
xiaoxiaohai123的文章
原创 148 篇
翻译 0 篇
转载 599 篇
评论 66 篇
最近评论
qpzkzp:Wow gold
xiaoxiaohai123:在Servlet 中读取请求头

在Servlet中读取HTTP头是非常方便的,只需要调用一下HttpServletRequest的getHeader方法即可。如果客户请求中提供了指定的头信息,getHeader返回对应的字符串;否则,返回null。部分头信息经常要用到,它们有专用的访问方法:getCookies方法返回Cookie头的内容,经解析后存放在Coo……
xiaoxiaohai123:HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并不是必需的,但Content-Length除外。对于POST请求来说Content-Length必须出现。 下面是一些最常见的请求头    Accept:浏览器可接受的MIME类型。    Accept-Charset:浏览器可接受的……
chinawes:为什么用服务器端的Image控件会出错?
xiaoxiaohai123:magic_quotes_sybase

如果打开的话,将会使用单引号对单引号进行转义而非反斜线。此选项会完全覆盖 magic_quotes_gpc。如果同时打开两个选项的话,单引号将会被转义成 ''。而双引号、反斜线 和 NULL 字符将不会进行转义。
文章分类
收藏
相册
技术链接
『 天道酬勤 』 www.LiTianPing.com
cool_rain_man的专栏
ericfine
frist we try
tvmark的专栏
VictorWu
wonderfullyh的专栏
zhanbos
吴现峰的对日软件开发专栏
孟子E章
宝玉的blog
小卢
屋顶上的木帷幕
开心就好的代码人生
心动空间
思归呓语
技术无止境
杂放
梅花学
此故为何
清清月儿
清清月儿 .NET万花筒
翱翔.Net Blog
老猫的理想
蝈蝈俊.net
邹建
闪亮的blog
阿山NET
技术论坛
andylin02
DFCG官方论坛
Donet论坛
GameRes交流论坛
itpub论坛
专注.NET技术
中天在线论坛
看雪学院
禁制社区
技术网站
.Net 框架快速入门
asp.net
vs2005.com
w3schools
数据库开发文档
无忧脚本
无忧视窗
月光软件
第九频道
驱动开发网
我得链接
博客
源码
源码网
源码首选
破釜沉舟
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 URL重写问题收藏

新一篇: JS (Javascript)取当前日期、时间的代码 | 旧一篇: CSS的各种浏览器兼容一栏表

在网上看到,很多朋友在asp.net中做urlrewrite,用的是HttpHandle+Server.Transfer的方法。其实这种方法是错误的。第一,HttpHandle是实现不了urlrewrite的;第二Server.Transfer是标准的重定向,根本不是urlrewrite。

    其实,实现urlrewrite不用自己HttpHandle,也不用自己实现HttpModule,用几行代码就可以轻松实现。

    我这里介绍的是在虚拟主机上,虚拟主机不同于自己的服务器,你是没有权限去修改iis,也没有权限去安装iis rewrite之类的iis插件。但是我们仍然可以轻松完成需要的功能。

    具体做法如下:打开global.asax.cs,定位到protected void Application_BeginRequest(Object sender, EventArgs e)。从方法名我想也能猜到它是做什么的。输入如下代码:

        protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            string oldUrl = HttpContext.Current.Request.RawUrl ;

            string pattern = @"^(.+)default/(\d+)\.aspx(\?.*)*$";
            string replace = "$1default.aspx?id=$2";

            if(Regex.IsMatch(oldUrl, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled))
            {
                string newUrl = Regex.Replace(oldUrl, pattern, replace, RegexOptions.Compiled | RegexOptions.IgnoreCase);
                this.Context.RewritePath(newUrl);
            }
        }
有了上边这段代码,我访问一个类似:.../default/123.aspx 的网址,当然这个网址在我的电脑上不存在,它就会被定向到:.../default.aspx?id=123。www.xker.com()

    当然,利用功能强大的正则表达式,你可以任意按照自己的需要来重写url,这一切都是在服务器端默默的进行,在客户端是不会有任何察觉的。由于是在虚拟主机上,我们只能重定向.aspx文件,如果是自己的服务器,只要把后缀名在iis中注册一下,就可以实现任意后缀名的处理。比如你可以注册一个*.myweb这样的类型,这样别人访问default/456.myweb时,你可以把它重定向到default.aspx?id=456。总之一句话,只要你能想到,.net就可以帮你实现,并且这一切不需要多少的代码。

发表于 @ 2008年04月29日 17:51:33|评论(loading...)|编辑

新一篇: JS (Javascript)取当前日期、时间的代码 | 旧一篇: CSS的各种浏览器兼容一栏表

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © xiaoxiaohai