2010年春节

2010年的春节过的相当跌宕起伏,从归途的曲折离奇到节后的匆忙回归,浓郁的年味,在年龄增长到这阶段的时刻突然变得有如鸡肋。连春晚的舞台上都广告蔓延。可能并不是这个社会的大同,而是这个时代的变迁……

过节回家跟儿时的朋友搓搓麻将,聊聊天,唏嘘感叹一番。偶尔,朋友刚出生几个月的儿子哭闹几声,也许我们儿时的年味,下一代人永远也无法感受了,就如同我们体会不了父母那辈人一样……

回去相机也没怎么露脸,不知为什么,突然失去了兴致,贴上一张我小外甥女的照片,她的2010年的春节,也许等她到我这个年龄的时候能从照片中的旋转木马中体会出来……

 外甥女童年的木马

ASP.NET页面传值

在实际项目中经常会遇到一些页面间传递参数的问题,我经常使用的是Cookie的方法,加密传递,但实际中根据不同的情况可以有不同方法,总结几个备用。

1.QueryString变量传递

QueryString是一种简单而且使用频率比较多的一种传值方式,它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。

使用方法:

发送页面—send.aspx               Response.Redirect( “receive.aspx?param1=hello&param2=hi “)
接收页面—receive.aspx         string   str   =   Request.QueryString["param1"];     string   str1   =  Request.QueryString["param2];

2.Cookie对象变量(Cookie存放在客户端)

在同一域名下将值保存在Cookie中传递,建议将Cookie信息加密传递,以达到一定的安全性要求。

使用方法:

设置Cookie:   HttpCookie cookie_name = new HttpCookie(”name”);  cookie_name.Value = VALUE(建议使用加密值);  Reponse.AppendCookie(cookie_name);
获取Cookie:   string name= Request.Cookie["name"].Value.ToString();

3.Session变量(session存放在服务器端)

session值存放在服务器端,可能会存在一些服务器性能和安全问题,实际项目中不是太多使用这种方法。

使用方法:

设置Session:  Session["name"] =”hello”;
获取Session:  string name = Session["name"].ToString();

4.Application 对象变量

Application对象的作用范围是整个全局,也就是说对所有用户都有效。此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。

使用方法: 

设置Application :  Application["name"] = =”hello”;
获取Application :  string   name = Application["name"].ToString();

5.PostBackUrl()方法

该方法应用于两个有直接联系的两个页面间传递,如上一步,下一步页面间传递参数值。

使用方法:

current.aspx
<asp:Button ID=Button1 Runat=server Text=PostToAnotherPage PostBackUrl=~/next.aspx />
next.aspx  
if (PreviousPage != null)
{
    TextBox textBox1 = (TextBox)PreviousPage.FindControl(TextBox1);
    Response.write(textBox1.Text );
}

6.Server.Transfer方法

该方法是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。
下面这段代码演示在需要很多个参数的时候使用,如果参数比较少就没必要使用这个方法了.
如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作。

使用方法:

(1)定义一个类,用该类放置所有查询参数

public class QueryParams
{
    private   string   firstName;
    private   string   lastname;
    private   int    age;

    public string Firstname
    {
        get return this.firstname; }
        set this.firstname = value; } 

    }
    public string LastName 
   
{
        get return this.lastname; }
        set this.lastname = value; } 
    }

    public string Age
    {
       
get return this.age; }
       
set this.age = value; }

    }
 
}

(2)接口定义

public interface IQueryParams
{
    QueryParams Parameters get;}
}

(3)查询页面继承IQueryParams接口(QueryPage.aspx)

QueryPage.aspx
<form id=form1 runat=server>
   
<div>
        <asp:TextBox ID=txtFirstName runat=server></asp:TextBox>
       
<asp:TextBox ID=txtLastName runat=server></asp:TextBox>
       
<asp:TextBox ID=txtAge runat=server></asp:TextBox>
       
<asp:Button ID=btnEnter runat=
server Text=Button OnClick=btnEnter_Click />
   
</div>
</form>

QueryPage.aspx.cs
public partial class QueryPage : System.Web.UI.Page, IQueryParams 
{
     
private QueryParams queryParams;
     
public   QueryParams   Parameters 
   

       
get 
       
{  return   queryParams; } 
    }
 
     
public   void   btnEnter_Click(object   sender,   System.EventArgs   e) 
   

       
//赋值 
       
queryParams   =   new   QueryParams();
        queryParams.FirstnName 
= this.txtFirstName.Text;
        queryParams.Lastname 
= this.txtLastName.Text;
        queryParams.Age 
= this.txtAge.Text;
        Server.Transfer( 
ResultPage.aspx ); 
    }
   
protected void Page_Load(object sender, EventArgs e)
   
{  }
}

   

(4)接收页面(ResultPage.aspx)

ResultPage.aspx.cs
public partial class ResultPage : System.Web.UI.Page
{
   
protected void Page_Load(object sender, EventArgs e)
   
{
        QueryParams queryParams 
= new QueryParams();
        IQueryParams queryInterface;
       
//实现该接口的页面 
       
 if (Context.Handler is IQueryParams)
       
{
            queryInterface 
= (IQueryParams)Context.Handler;
            queryParams 
= queryInterface.Parameters;
        }
        Response.Write(FirstName: );

        Response.Write(queryParams.FirstName);
        Response.Write(
 <br/ >Lastname: );
        Response.Write(queryParams.LastName); 
        Response.Write(
 <br/ >Age: );
        Response.Write(queryParams.Age); 
    }

}

参考资料:http://www.cnblogs.com/applelure/archive/2008/05/04/1182202.html

百度,域名被劫持?

公元2010年1月12号,百度貌似被劫持了,mark一下。

不是幸灾乐祸,不是冷眼旁观,只是觉得应该深思一下。

最近一系列网站被和谐,难道百度也被和谐了?

baidu的域名被解析到一个荷兰的ip上去了:188.95.49.6,是什么问题呢?

截止当前时间没有恢复,但愿不是baidu技术的漏洞,等待官方的答疑……

2010-大雪

2010年1月3号,大雪

第一次看到这么晶莹剔透的雪

第一次看到如此规整的雪花的形态

第一次在大雪里走了那么长时间……

 正阳门的城墙

风雪中的艳丽

2009照片墙

2009,本命年,太多想说的,太多的说不出来……

憧憬是一个美好的带来希望的词汇,2010,变的好起来……

picwall2009