NET程序设计 实验五 ASP.NET内置对象

计算机学院实验报告 课程名称 .NET程序设计 实验名称 实验五 ASP.NET内置对象

一.实验目的:
1.理解ASP.NET内置对象的作用。
2.掌握Response内置对象的方法及属性。
3.掌握Request对象的用法。
4.掌握Session对象的用法。
5.熟悉Cookie对象的用法。
二.实验内容:
(一).运用Response对象和Request对象实现用户登录
当用户进入系统时候,首先要输入用户名和密码进行身份验证。如果用户名和密码都正确,才可以进入系统。在应用程序中通过用户登录后使用Response对象转到主页面,然后管理员才能进行相应的操作。下面联系建立一个用户登录模块,用户登录成功后转到程序主页面。具体步骤如下:
(1)打开Visual Studio 2008创建一个网站,在Default.aspx页面上创建用户输入自己的用户名、密码和验证码,其验证码在Label控件上显示,然后单击【登录】按钮提交数据,该页面效果如图5-1所示。
在这里插入图片描述

图5-1 登录页面效果图
(2)在该页面的后台代码编写窗口,首先创建一个RandomNum(int n)方法,该方法生成随即验证码,然后在页面的Page_Load事件中调用该方法,该步骤主要程序代码如下:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            labCode.Text = RandomNum(4);
            Session["CheckNum"] = 0;
        }
    }
public string RandomNum(int n) //
    {
        //定义一个包括数字、大写英文字母和小写英文字母的字符串
        string strchar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
        //将strchar字符串转化为数组
        //String.Split 方法返回包含此实例中的子字符串(由指定Char数组的元素分隔)的 String 数组。
        string[] VcArray = strchar.Split(',');
        string VNum = "";
        //记录上次随机数值,尽量避免产生几个一样的随机数           
        int temp = -1;
        //采用一个简单的算法以保证生成随机数的不同
        Random rand = new Random();
        for (int i = 1; i < n + 1; i++)
        {
            if (temp != -1)
            {
                //unchecked 关键字用于取消整型算术运算和转换的溢出检查。
                //DateTime.Ticks 属性获取表示此实例的日期和时间的刻度数。
                rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks));
            }
            //Random.Next 方法返回一个小于所指定最大值的非负随机数。
            int t = rand.Next(61);
            if (temp != -1 && temp == t)
            {
                return RandomNum(n);
            }
            temp = t;
            VNum += VcArray[t];
        }
        return VNum;//返回生成的随机数
    }

(3)下面处理【登录】按钮单击事件处理程序,在该事件中首先验证用户是否输入了用户名和密码,然后验证输入的验证码是否匹配,最后使用Response对象转到应用程序的主页面,代码如下:

protected void btnLogin_Click(object sender, EventArgs e)
{
        if (this.txtAdminName.Text.Trim() == "" || this.txtAdminPwd.Text.Trim() == "")
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('用户名和密码不能为空')</script>");
            return;
        }
        if (txtAdminCode.Text != labCode.Text)
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('验证码不匹配请重新填写')</script>");
            return;
        }
        if (txtAdminName.Text == "admin" && txtAdminPwd.Text == "admin")
        {
            Response.Redirect("Creat.aspx?userName=" + txtAdminName.Text + "");
        }
        else
        {
            Session["CheckNum"] = Int32.Parse(Session["CheckNum"].ToString()) + 1;
            int i = Int32.Parse(Session["CheckNum"].ToString());
            if (i > 1)
            {
                Response.Redirect("Default2.aspx");
               
            }
            else
            {
                this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('你输入的用户和密码不匹配请重新输入')</script>");
            }
        }
}

图5-2 页面效果图
在这里插入图片描述

(4)创建应用程序主页面,在该页面的Page_Load事件中,首先验证传值是否为空,如果
不为空在页面上显示用户相关信息,否则转到用户登录页面,该页面效果如图5-2所示,页面Page_Load事件处理程序代码如下:

protected void Page_Load(object sender, EventArgs e)
{
     if (!Page.IsPostBack)
     {
         if (Request.QueryString["userName"] != null)
         {
             Label1.Text = "  &nbsp;&nbsp;欢迎你:" + Request.QueryString["userName"] + "<br/>";
             Label1.Text += " &nbsp;&nbsp; 当前时间是:<br/>  &nbsp;&nbsp;" + DateTime.Now.ToString();
         }
          else
          {
              Response.Redirect("Default.aspx");
          }
       }
    }

(二).利用Session对象实现购物车
在电子商务网站中,购物车市一个最常见的功能,它记录用户的消费过程,使用户在购买商品的过程中更加方便、快捷。下面使用Session对象来建立一个简单的购物车示例,来熟悉Session对象的具体应用。该示例开发步骤如下。
(1)打开Visual Studio 2008创建一个网站,设计Default.aspx页面,在该页面上显示家用电器商品,用户可以在该页面购买自己需要的家用电器商品,只需要单击【添加到购物车】按钮就可以购买家用电器商品,在该页面还可以通过超链接区购买别的商品、查看购物车信息。该页面效果如图5-3所示。
在这里插入图片描述

图 5-3 购买家用电器页面效果图
(2)创建Default2.aspx页面。该页面与Default.aspx页面相似,显示衣服信息,如上衣、羽绒服等。也可以通过单击【添加到购物车】按钮就可以提交购买信息,通过超链接去提交购买信息,通过超链接去购买别的商品、查看购物信息等,具体效果如图5-4所示。
在这里插入图片描述

                       图5-4 购买衣服页面效果图

(3)在Default.aspx和Default2.aspx页面中,使用Session对象保存用户购买信息,这些操作都是在【添加到购物车】按钮单击事件处理程序中处理,部分代码如下:

protected void Button1_Click(object sender, EventArgs e)
{     Session["yr"] = "羽绒服,价格:600";
     if (Session["yr"] != null)
     {
         this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('添加商品成功')</script>");
     }
}
protected void Button2_Click(object sender, EventArgs e)
{
     Session["nz"] = "男装上衣,价格:300";
     if (Session["nz"] != null)
     {
         this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('添加商品成功')</script>");
     }
}

(4)创建Default.aspx页面。该页面用于显示用户的购买信息。这些信息都显示在Default3.aspx页面上的Label1控件上,显示信息代码如下:

protected void Page_Load(object sender, EventArgs e)
{
     if (!Page.IsPostBack)
     {
            Label1.Text = "你选择的商品有:<br />";
            Label1.Text += Session["yj"] + "<br />";
            Label1.Text += Session["pp"] + "<br />";
            Label1.Text += Session["nz"] + "<br />";
            Label1.Text += Session["yr"] + "<br />";
            Session.Clear();
     }
}
使用购物车的效果如图5-5所示。

在这里插入图片描述

                              图 5-5 显示购物信息

(三).运用Cookie对象
本实验首先在页面载入时,在Page_Load事件响应处理程序中,判断这个“Radio”Cookie是否存在。如果不存在,则创建一个”Radio”Cookie,并设置“篮球”为Cookie的默认值。如果存在,则取出该Cookie值,然后,根据该Cookie值设置选项。
(1)在Visual Studio 2008,执行【文件】|【新建】|【网站】命令,创建一个网站。在Default.aspx页面上添加控件,并使用Table表格布局,并设置控件相关属性,设计好页面,页面效果如图5-7所示。
在这里插入图片描述

图 5-7 页面设计效果图
(2)在页面的空白处双击,进入后台代码编码编写窗口,在该窗口中把下面代码添加到Page_Load事件处理程序中。

protected void Page_Load(object sender, EventArgs e)
{
        if (!Page.IsPostBack)
        {
            HttpCookie cookie = Request.Cookies["radio"];
            if (cookie == null)
            {
                cookie = new HttpCookie("radio");
                cookie.Values.Add("radio", "篮球");
cookie.Expires = DateTime.Now.AddDays(1);
                Response.AppendCookie(cookie);
                
            }
            else
            {
                switch (cookie.Values["radio"])
                { 
                    case "篮球":
                        radio1.Checked = true;
                        break;
                    case "足球":
                        radio2.Checked = true;
                        break;
                    case "唱歌":
                        radio3.Checked = true;
                        break;
                    case "舞蹈":
                        radio4.Checked = true;
                        break;
                }
            }            
        }
 }

(3)在上述代码中,首先使用if语句来判断页面是否是第一次加载或者访问。当该条件为True时,用Request.Coolies[“radio”]来取得“radio”的Cookie。然后判断Cookie值是否存在。当该条件为false时,就创建一个“radio”Cookie,并使用cookie.Values.Add为其添加一个默认值。
(4)在设计界面中,双击【选择】按钮,进入【选择】按钮单击事件处理程序编写处,编写代码如下:

protected void Button1_Click(object sender, EventArgs e)
    {
        HttpCookie cookie = Request.Cookies["radio"];
        if (radio1.Checked)
        {
            cookie.Values.Set("radio", "篮球");
        }
        if (radio2.Checked)
        {
            cookie.Values.Set("radio", "足球");
        }
        if (radio3.Checked)
        {
            cookie.Values.Set("radio", "唱歌");
        }
        if (radio4.Checked)
        {
            cookie.Values.Set("radip", "舞蹈");
        }
cookie.Expires = DateTime.Now.AddDays(1);
        Response.AppendCookie(cookie);
        Label1.Text = "运用Cookie保存值为<font color=#ff000>" + Request.Cookies["radio"].Values[0] + "</font>";
}

(5)上述代码的作用是为了重新设置“radio”Cookie的值。因为在步骤(2)的代码中设置了“radio”Cookie的默认值为“篮球”,在页面中不做选择的情况下,单击“选择”按钮,会在页面中显示出“篮球”。而重新选择后,就可以改变这个默认值,在页面中也就显示出不同的信息。
(6)运行程序,在页面上重新选择选项“唱歌”。然后单击【选择】按钮,页面效果如图5-8所示。
在这里插入图片描述

                        图5-8 页面效果图

三、实验结果

四、实验总结

代码资源下载链接:https://download.csdn.net/download/XIARIANNUAN/13137642

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值