|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我也不知道,我原来理解的,NET就是C++编程,只是与JAVA相对,呵呵。以为.ET就是高级C++编程。在asp.net2.0中的urlMappings却是十分好用,惋惜暂不撑持正则表达式,不外,幸亏假如用IHttpModule的话
不论甚么样的哀求城市先经由IHttpModule如许就为URL重写供应了一个好时机:
上面是我写的一个IHttpModule:
usingSystem;
usingSystem.Web;
publicclassReWriteModule:IHttpModule
{
publicReWriteModule()
{
}
publicoverridestringToString()
{
returnthis.GetType().ToString();
}
voidIHttpModule.Dispose()
{
}
privatestaticSystem.Xml.XmlDocumentruleDoc=null;
privatestaticSystem.Xml.XmlDocumentGetRuleConfig(System.Web.HttpContextapp)
{
if(ruleDoc==null)
{
ruleDoc=newSystem.Xml.XmlDocument();
ruleDoc.Load(app.Server.MapPath("~/rule.xml"));
}
returnruleDoc;
}
publicstaticstringGetUrl(System.Web.HttpContextcxt,stringpath)
{
System.Xml.XmlDocumentdoc=GetRuleConfig(cxt);
System.Xml.XmlNodeListlst=doc.GetElementsByTagName("RewriterRule");
stringpat="";
foreach(System.Xml.XmlNodendinlst)
{
System.Xml.XmlNodeListsub=nd.ChildNodes[0].ChildNodes;
foreach(System.Xml.XmlNodechkinsub)
{
pat="^"+chk.InnerText+"$";
System.Text.RegularExpressions.Regexreg=newSystem.Text.RegularExpressions.Regex(pat,System.Text.RegularExpressions.RegexOptions.Compiled|System.Text.RegularExpressions.RegexOptions.IgnoreCase);
if(reg.IsMatch(path))
{
returnreg.Replace(path,nd.ChildNodes[1].InnerText);
}
}
}
returnnull;
}
共2页:上一页1[2]下一页
效率会有不少的变化。而实际上java是基于堆栈机器来设计,这和我们常见的基于寄存器的本地机器是差异比较大的。总体来说,这是一种虚拟机的设计思路。 |
|