【IHttpHandler】在ASP.Net2.0中使用UrlRewritingNet实现链接重写

本文介绍在ASP.NET 2.0中如何使用UrlRewritingNet.UrlRewriter.dll实现链接重写,包括配置Web.Config文件,设置httpModules,及具体规则示例,如日期和股票代码的URL映射。

很多时候我们需要链接转向(Url Rewriting),例如二级域名转向、文章访问链接等场合。
让我们看两个例子:
1 你现在看到的当前作者的博客园的域名:
http://jx270.cnblogs.com/ 实际上是 http://www.cnblogs.com/jx270 的一种链接重写(Url Rewriting)。
2 codeproject上的文章,我们获取的地址都是以文章主要关键字做的网页名称:
http://www.codeproject.com/cs/webservices/wsdlparser.asp 
个人觉得实际的文章链接可能是如下格式(纯属猜想)
http://www.codeproject.com/news.asp?id=123456  
那么如何在Asp.net2.0中如何实现链接重写呢?
可以采用UrlRewritingNet.UrlRewriter.dll来轻松实现
UrlRewritingNet.UrlRewriter.dll 可从其官方网站下载:http://www.urlrewriting.net
我们要做的就是进行Web.Config文件的设置

 

0 设置之前需要添加引用:UrlRewritingNet.UrlRewriter.dll

1 <configSections>间添加:
  <configSections>
  <section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/>
</configSections>

 

2   添加httpModules
<httpModules>
      <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/>
  </httpModules>


3 添加链接重写的设置
<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
  <rewrites>
   <add name="Rewrite1" virtualUrl="^http\://(.*)/UrlRewritingTest/test.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/default.aspx" rewrite="Domain" ignoreCase="true"/>
   <add name="Rewrite2" virtualUrl="^http\://(.*)/UrlRewritingTest/test1.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/info.aspx?year=2007&amp;month=3&amp;day=9" rewrite="Domain" ignoreCase="true"/>
  </rewrites>
</urlrewritingnet>

完整的一个Web.Config文件


     
<?xml version="1.0"?>
<configuration>
    <configSections>
        <section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/>
    </configSections>
    <urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
        <rewrites>
            <add name="Rewrite1" virtualUrl="^http\://(.*)/UrlRewritingTest/test.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/default.aspx" rewrite="Domain" ignoreCase="true"/>
            <add name="Rewrite2" virtualUrl="^http\://(.*)/UrlRewritingTest/test1.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/info.aspx?year=2007&amp;month=3&amp;day=9" rewrite="Domain" ignoreCase="true"/>
            <add name="Rewrite3" virtualUrl="^http\://(.*)/UrlRewritingTest/test(\d{4})(\d{2})(\d{2}).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/info.aspx?year=$2&amp;month=$3&amp;day=$4" rewrite="Domain" ignoreCase="true"/>
            <add name="Rewrite4" virtualUrl="^http\://(.*)/UrlRewritingTest/(\d{4})/(\d{2})/(\d{2})/info.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/info.aspx?year=$2&amp;month=$3&amp;day=$4" rewrite="Domain" ignoreCase="true"/>
      <add name="Rewrite5" virtualUrl="^http\://(.*)/UrlRewritingTest/stock(\d{6}).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/stockinfo.aspx?code=$2" rewrite="Domain" ignoreCase="true"/>
        </rewrites>
    </urlrewritingnet>
    <appSettings/>
    <system.web>
        <httpModules>
            <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/>
        </httpModules>
        <compilation debug="true"/>
  </system.web>
</configuration>

 

示例程序
我们做了一个按查询字符串的输入显示对应日期的页面info.aspx


     
    protected void Page_Load(object sender, EventArgs e)
    {
        string strYear = Request.QueryString["year"].ToString();
        string strMonth = Request.QueryString["month"].ToString();
        string strDay = Request.QueryString["day"].ToString();
        Response.Write(string.Format("你输入的日期是{0}年{1}月{2}日",strYear,strMonth,strDay));
    }

 

常规访问方式:http://localhost/UrlRewritingTest/info.aspx?year=2007&month=03&day=08

页面重写方式1:http://localhost/UrlRewritingTest/test20070308.aspx
UrlRewriting1.JPG
页面重写方式2:http://localhost/UrlRewritingTest/2007/03/08/info.aspx
UrlRewriting2.JPG
大家可以看到实际的访问效果是一致的。


示例文件中还有一个股票信息查看的例子:
http://localhost/UrlRewritingTest/stock600616.aspx = http://localhost/UrlRewritingTest/stockinfo.aspx?code=600616


示例程序下载:/Files/heekui/UrlRewritingTest.rar

 

posted on 2015-01-09 00:05  v.e.n.u.s 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/jx270/p/4212241.html

【源码免费下载链接】:https://renmaiwang.cn/s/os2te 大整数乘法是计算机科学中的一个重要领域,特别是在算法设计和数学计算中有着广泛应用。它涉及到处理超过标准整型变量范围的数值运算。在C++编程语言中,处理大整数通常需要自定义数据结构和算法,因为内置的`int`、`long long`等类型无法满足大整数的存储和计算需求。以下是对这个主题的详细阐述:1. **大整数数据结构**: 在C++中,实现大整数通常采用数组或链表来存储每一位数字。例如,可以使用一个动态分配的数组,每个元素表示一个位上的数字,从低位到高位排列。这种数据结构允许我们方便地进行加减乘除等操作。2. **乘法算法**: - **暴力乘法**:最直观的方法是类似于小学的竖式乘法,但效率较低,时间复杂度为O(n^2)。 - **Karatsuba算法**:由Alexander Karatsuba提出,将两个n位数的乘法转化为三个较小的乘法,时间复杂度为O(n^1.585)。 - **Toom-Cook算法**:比Karatsuba更通用,通过多项式插值和分解进行计算,有不同的变体,如Toom-3、Toom-4等。 - **快速傅里叶变换(FFT)**:当处理的大整数可以看作是多项式系数时,可以利用FFT进行高效的乘法,时间复杂度为O(n log n)。FFT在数论和密码学中尤其重要。3. **算法实现**: 实现这些算法时,需要考虑如何处理进位、溢出等问题,以及如何优化代码以提高效率。例如,使用位操作可以加速某些步骤,同时要确保代码的正确性和可读性。4. **源代码分析**: "大整数乘法全解"的源代码应包含了上述算法的实现,可能还包括了测试用例和性能比较。通过阅读源码,我们可以学习如何将理论算法转化为实际的程序,并理解各种优化技巧。5. **加说明**: 通常,源代码附带的说明会解释
内容概要:本文详细介绍了一个基于Java与Vue技术栈的向量数据库语义检索与相似文档查重系统的设计与实现。系统通过集成BERT等深度学习模型将文本转化为高维语义向量,利用Milvus等向量数据库实现高效存储与近似最近邻检索,结合前后端分离架构完成从文档上传、向量化处理、查重分析到结果可视化的完整流程。项目涵盖需求分析、系统架构设计、数据库建模、API接口规范、前后端代码实现及部署运维等多个方面,并提供了完整的代码示例和模块说明,支持多格式文档解析、智能分段、自适应查重阈值、高亮比对报告生成等功能,具备高扩展性、安全性和多场景适用能力。; 适合人群:具备一定Java和Vue开发基础的软件工程师、系统架构师以及从事自然语言处理、知识管理、内容安全等相关领域的技术人员,尤其适合高校、科研机构、企业IT部门中参与智能文档管理系统开发的专业人员。; 使用场景及目标:①应用于学术论文查重、企业知识产权保护、网络内容监控、政务档案管理等需要高精度语义比对的场景;②实现深层语义理解下的文档查重,解决传统关键词匹配无法识别语义改写的问题;③构建可扩展、高可用的智能语义检索平台,服务于多行业数字化转型需求。; 阅读建议:建议读者结合提供的完整代码结构与数据库设计进行实践操作,重点关注文本向量化、向量数据库集成、前后端协同逻辑及安全权限控制等核心模块。在学习过程中应逐步部署运行系统,调试关键接口,深入理解语义检索与查重机制的工作原理,并可根据实际业务需求进行功能扩展与模型优化。
【源码免费下载链接】:https://renmaiwang.cn/s/qdq3k 机器人控制柜是机器人的心脑神经中枢,主要负责协调机器人各项动作。其功能按钮及其连接口分别设计如下:* 电源开关:通过该开关可实现对整个控制柜供电状态的切换* 急停按钮:在紧急状况下按下此键将使机器人系统立即停止运行* 启动电机按钮:此操作需在手动模式下完成,以启动机器人的动力系统* 多工态调节器:提供三种运行模式选择,包括基础手动、标准自动及高级自动状态* 操作示教口:通过此端子可实现对机器人动作的实时监控与指导* USB接口:支持外设连接功能,例如用于数据采集的U盘设备接入* 网络通信端口:配置有以太网适配器,确保机器人与外部系统的数据交互 机器人的运行模式共有两种形态,即手动控制和自动调节。在手动模式下,操作者需将"手动/自动"钥匙旋至手动位置,并保持示教器侧面伺服使能键按压状态,即可对机器人进行实时指令输入;而当切换为自动模式时,则应将该钥匙旋转至自动位置并激活电机上电按钮,随后系统将启动预设的自动化运行流程 机器人开机前必须完成一系列准备工作:首先确认作业区域内的载物台已就位并放置好网兜;其次确保输送线系统处于正常运转状态;再次开启控制柜总电源开关;最后切换至所需运行模式并观察初始工作指示灯以确认系统准备状况。待机器人进入自动运行模式后,可实时查看输入输出端口信号强度来判断系统的稳定性和故障原因。 本机参数设置模块提供多样化的配置选项:包括码垛层数目设定、产品规格参数选择以及货物尺寸数据输入等功能。这些设置项可通过预装的示教器菜单系统进行操作调整,用户可根据实际需求灵活修改并保存相关参数值 为确保机器人系统的稳定性和可靠性,在日常使用过程中需特别注意以下几点:首先,当系统出现异常报警信息时应立即停止运行并检查根本原因后再重新启动;其次在切换至自动运行模式前必须确保系统处于原点状态,并可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值