URLRewriter原始碼分析

2022-02-05 04:40:32 字數 1765 閱讀 7696

public class rewriterconfigserializersectionhandler : iconfigurationsectionhandler

#endregion}  

另外就是這個類了,web請求流程明白的人們,應該都知道,請求先到httpmodule在到httphandle,然後在返回到httpmodule。

在handle裡面就是伺服器對使用者請求進行處理了,生成頁面原始碼啊,等等,所以,我們要在他到達httphandle之前進行修改url。

重寫httpmodule要繼承ihttpmodule介面,同樣要實現裡面的init方法了。

/// /// 位址重寫抽象函式

///

///}

下面這個是繼承了上面的那個類,所以就不用我說了,當上面的走進那個委託的時候就進子類了這個rewrite方法了。

我們在web。config中配置的匹配原則有多個rewriterrule

類似:~/about-(\d+).html

~\about.aspx?id=$1

~/about-(\d+).html

~\about.aspx?id=$1

,所以,我們為了方便讀取管理,建立了rewriterrulecollection類

public class modulerewriter : basemodulerewriter}}}

在rewriter原始碼中這個類叫做rewriterconfiguration,我感覺改成這個更容易讓人理解,從節點中你就看,你就明白了。

但是在原始碼中你可以看到類中加了乙個[xmlroot("rewriterconfig")] 屬性,這個意思就是把這個名字加到這個類的xml根部,在這裡就是說的

configurationmanager.getsection("rewriterconfigss")),他返回的值是

~/about-(\d+).html

~\about.aspx?id=$1

~/about-(\d+).html

~\about.aspx?id=$1

你看看缺少什麼,對,缺少我們的根,(rewriterconfiguration)httpcontext.current.cache["rewriterconfig"],這句話,就是為什麼這個

原始碼中的這個類rewriterconfiguration可以的原因了。

[serializable()]

public class rewriterconfigss

/// /// 該方法從web.config中讀取規則集合,並使用了cache以避免頻繁io操作

///

///

public static rewriterconfigss getconfig()  }

[serializable()]

public class rewriterrulecollection : collectionbase

/// /// 獲取或設定項

///

public rewriterrule this[int index]

set

}}

這是個人的學習程度,如果其中有什麼錯誤的地方請指出來,謝謝! 

URLRewriter元件及原始碼

微軟推出的一款重寫url的乙個元件,以及元件源 用法如下 原理 當iis接收到請求之後,判斷請求頁面的字尾名,然後通過iis配置中的對映中設定的,哪種字尾的檔案是由哪個處理程式處理的規則交由相應的程式來處理該請求完成操作。所以我們要在iis裡設定對映 讓 html 的檔案交由 net 的處理程式 即...

Cartographer原始碼篇 原始碼分析 1

在安裝編譯cartographer 1.0.0的時候,我們可以看到 主要包括cartorgarpher ros cartographer ceres sover三個部分。其中,ceres solver用於非線性優化,求解最小二乘問題 cartographer ros為ros平台的封裝,獲取感測器資料...

AbstractListView原始碼分析3

normal list that does not indicate choices public static final int choice mode none 0 the list allows up to one choice public static final int choice ...