ASP.NET网页设计ASP.NET利用UrlReWriter完成伪静态履历...
也许唯一可以让世人留恋Java的理由就剩下它的王牌——跨平台。UrlRewriter是微软封装好了的一个URL重写组件。利用它可让我勤俭良多自已开辟的工夫。 好了,入手下手报告我的使用履历,这只是很菜鸟的履历,妙手就不必看了。第一步,请今后下载此组件。解压,把UrlRewriter.dllcopy到你的项目bin目次下。
第二步,在Web.config中到场:
<?xmlversion="1.0"encoding="gb2312"?>
<configuration>
<configSections>
<sectionname="RewriterConfig"type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter"/>
</configSections>
第二步,到场重写的划定规矩节点:
如:
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/Sell/(.*).html</LookFor>
<SendTo>~/Search/Search_Sell.aspx?id={GetProperty(Content)}</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Sell/Search_Sell.aspx</LookFor>
<SendTo>~/Search/Search_Sell.aspx</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Buy/(.*).html</LookFor>
<SendTo>~/Search/Search_Buy.aspx?id={GetProperty(Content)}</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Buys/(.*).html</LookFor>
<SendTo>~/Buys/Show.aspx?id={GetProperty(Content)}</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
这个就要依据你的必要了,假如你对正则表达式不熟,那末没举措,要末依附你的高智商往找个中纪律,稍稍改一下就可以为你所用了。呵呵。假如其实弄不清,那就本人GOOGLE一下正则表达式吧。(自己入手下手是参考他人的设置猜的,居然用对了,呵呵。厥后仍是看了一下相干材料,发明这东东很有效。)
第三步,到场模块设置(写在<system.web>内里):
如:
<httpHandlers>
<addverb="*"path="*.aspx"type="URLRewriter.RewriterFactoryHandler,URLRewriter"/>
</httpHandlers>
(这里暗示利用HTTP程序来处置重写)
好了,到了如今我们能够试一下看。
因而输出:http://127.0.0.1:8080/Sell/1.aspx呈现了,呵呵。可是假如所它改成:http://127.0.0.1:8080/Sell/1.html
晕,发明不可。汗。。。
呵呵,缘故原由是没把HTML的剖析用asp.net 的ISAPI来剖析。
举措是。。。
第四步,在IIS你的站点属性主目次设置映谢到场一个和aspx页面的设置不异的扩大名项。注重“确认文件是不是存在”不要勾选,不然会呈现找不到文件。
如今再来碰运气。甚么?#¥%#¥%#,仍是不可。呵呵。不要急,我们回过火再来看看,本来在web.config中我们没有设置.html也利用模块此剖析。
第五步,在模块设置中到场:
<httpHandlers>
<addverb="*"path="*.aspx"type="URLRewriter.RewriterFactoryHandler,URLRewriter"/>
<addverb="*"path="*.html"type="URLRewriter.RewriterFactoryHandler,URLRewriter"/>
</httpHandlers>
如今总能够了吧,呵呵。终究看到了,镇静吧。不要急,这还只是最复杂的。假如你的页面有回传。好比说放了DATAGRID,有分页的,你点到下一页就发明,晕倒,又出成绩了。
这下怎样办呢,这个实在微软件的网站上就有说到,我在这里简述一下了。
第六步,到场窗体回传坚持的组件:
在本来你下载的项目里找到ActionlessForm.dll放到你的项目bin目次下。
然后在你的这个页面中到场:
<%@RegisterTagPrefix="skm"Namespace="ActionlessForm"Assembly="ActionlessForm"%>
再把你的<Form...>改成:
<skm:Formid="你的表单名"method="post"runat="server">
.....
</skm:Form>
ThatsAll.如今你能够万事大吉了。统统如你所愿。
最初,恭祝列位统统顺遂。
我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
页:
[1]