zoukankan      html  css  js  c++  java
  • Rewriter 伪静态 提交 地址变回动态地址

    using System;
    using System.Web;
    using System.Web.UI;
    using System.IO;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Configuration;
    
    namespace BLL
    {
        /// <summary>
        /// PageBase 的摘要说明。
        /// </summary>
        public class PageBase : Page
        {
            private static object obj = new object();
            //// <summary>
            ///  重写默认的HtmlTextWriter方法,修改form标记中的value属性,使其值为重写的URL而不是真实URL。www.SvnHost.cn
            /// </summary>
            /// <param name="writer"></param>
            protected override void Render(HtmlTextWriter writer)
            {
                if (writer is System.Web.UI.Html32TextWriter)
                {
                    writer = new FormFixerHtml32TextWriter(writer.InnerWriter);
                }
                else
                {
                    writer = new FormFixerHtmlTextWriter(writer.InnerWriter);
                }
    
                base.Render(writer);
            }
        }
    
        public class FormFixerHtml32TextWriter : System.Web.UI.Html32TextWriter
        {
            public FormFixerHtml32TextWriter(TextWriter writer)
                : base(writer)
            {
            }
    
            public override void WriteAttribute(string name, string value, bool encode)
            {
                // 如果当前输出的属性为form标记的action属性,则将其值替换为重写后的虚假URL
                if (string.Compare(name, "action", true) == 0)
                {
                    value = HttpContext.Current.Request.RawUrl;
                }
                base.WriteAttribute(name, value, encode);
            }
        }
    
    
        public class FormFixerHtmlTextWriter : System.Web.UI.HtmlTextWriter
        {
            public FormFixerHtmlTextWriter(TextWriter writer)
                : base(writer)
            {
            }
    
            public override void WriteAttribute(string name, string value, bool encode)
            {
                if (string.Compare(name, "action", true) == 0)
                {
                    value = HttpContext.Current.Request.RawUrl;
                }
    
                base.WriteAttribute(name, value, encode);
            }
        }
    }
  • 相关阅读:
    Java中通过Class类获取Class对象的方法详解
    java访问权限表
    JAVA内部类小结
    私有静态成员内部类的一个应用:单例的实现
    JAVA中接口与抽象类
    jQuery添加和删除元素
    使用JQuery进行DOM操作
    类加载过程&对象的创建过程
    Spring JDBC 数据访问
    Spring的 AOP底层用到两种代理机制
  • 原文地址:https://www.cnblogs.com/chencidi/p/2000315.html
Copyright © 2011-2022 走看看