ASP.NET第五章 --案例

第五章

一、

1.打开Visual Studio

2.新建ASP.NET项目 Demo

3.创建web窗体,名字叫index1

4.打开Global.asax.cs

cs 复制代码
protected void Session_Start(object sender, EventArgs e)

{

         Response.Write("开始一个新的会话!Session_Start <br />");

     }



protected void Application_BeginRequest(object sender,EventArgs e)

     {

         Response.Write("开始执行!Application_BeginRequest <br />");

      }
  1. 打开index1.asax.cs
cs 复制代码
protected void Page_Load(object sender, EventArgs e)

{

    Response.Write("开始执行!Page_Load <br />");

}

6.执行index1

刷新一下

会话就没了,因为现在是第二个了

二、

  1. 打开Global.asax.cs
cs 复制代码
// 应用程序开始时,执行此事件

        protected void Application_Start(object sender, EventArgs e)

        {

            // 清零

            // 1.上锁

            Application.Lock();

            // 2.对我们当前人数进行初始化 0

            Application["UserNum"] = 0;  // 对象级

            // 3.解锁

            Application.UnLock();

        }



        // 会话开始时执行此事件

        protected void Session_Start(object sender, EventArgs e)

        {

            Response.Write("开始一个新的会话!Session_Start <br />");

            // 增加在线人数

            // 1.上锁

            Application.Lock();

            // 2.让当前会话人数+1,并且赋值到一个新的变量中

            // Convert.ToInt32() 强制数据类型转换

            Application["UserNum"] = Convert.ToInt32(Application["UserNum"]) + 1;

            // 3.解锁

            Application.UnLock();

        }



        // 会话结束时,执行此事件

        protected void Session_End(object sender, EventArgs e)

        {

            Response.Write("结束会话!Session_End <br />");

            // 减少在线人数

            // 1.上锁

            Application.Lock();

            // 2.让当前会话人数-1,并且赋值到一个新的变量中

            // Convert.ToInt32() 强制数据类型转换

            Application["UserNum"] = Convert.ToInt32(Application["UserNum"]) - 1;

            // 3.解锁

            Application.UnLock();

        }

2.添加一个新的web窗体,名字叫app

3.在app.asax.cs里面接收一下全局变量

cs 复制代码
// 页面加载事件

        protected void Page_Load(object sender, EventArgs e)

        {

            // 显示当前在线人数

            Response.Write("欢迎登录,您是第" + Application["UserNum"] + "位用户");

        }

4.Ctrl+F5打开看一下

换浏览器再开一下

三、

  1. 添加一个新的web窗体,名字叫index2

2.验证用户名密码首先要先写个简单的登录页面

html 复制代码
<body>

    <form id="form1" runat="server">

        <div>

            您的姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox>

            <br />

            您的密码:<asp:TextBox ID="txtPwd" runat="server"></asp:TextBox>

        </div>

        <asp:Button ID="btn" runat="server" Text="提交" />

    </form>

</body>

3.打开设计页面,双击提交按钮

cs 复制代码
// 提交按钮的点击事件

        protected void btn_Click(object sender, EventArgs e)

        {

            // 1.获取控件中姓名和密码的值

            string strName = txtName.Text;

            string strPwd = txtPwd.Text;



            // 2.把用户名存入Session中,密码通过Url的方式传递

            // 3.判断,如果用户名为"张三",并且(与)密码为"123456",那就让他执行第二步

            // 逻辑运算符:"&&与" "||或" "!非"

            if (strName == "张三" && strPwd == "123456")

            {

                // 4.用户名存入Session中

                // Session["UserName"] 键

                Session["UserName"] = strName;

                // 5.密码通过Url的方式传递  带着密码的值跳转到index3.aspx页面

                Response.Redirect("index3.aspx?pwd=" + strPwd);

            }

            else

            {

                Response.Write("输入的用户名或密码不正确!");

            }

        }
  1. 添加一个新的web窗体,名字叫index3

5.Ctrl+F5打开试一下

输入用户名密码正确,点击提交,跳转到index3页面,并在url上显示密码

输入用户名密码不正确,在当前页面提示

6.打开index3.aspx.cs

cs 复制代码
// 页面加载事件

        protected void Page_Load(object sender, EventArgs e)

        {

            // 1.接收index2.aspx页面传输过来的值

            // 2.判断,当前Session的姓名不为空

            if (Session["UserName"] != null)

            {

                // 3.显示用户名和密码

                // QueryString 查找虚拟路径中变量的集合

                Response.Write("欢迎:" + Session["UserName"] + ",您的密码:" + Request.QueryString["pwd"]);

            }

        }

7.在index2.aspx中打开,输入正确用户名密码,点击提交

相关推荐
candyTong1 小时前
Claude Code Agent Teams:多 Agent 协作的生命周期与实现机制
后端·架构
Mahir082 小时前
Redis 与 MySQL 数据同步:一致性保证的完整解决方案
数据库·redis·mysql·缓存·面试·数据一致性
2301_769340672 小时前
如何在 Vuetify 中可靠捕获 Chip 关闭事件(包括键盘触发).txt
jvm·数据库·python
AC赳赳老秦2 小时前
供应链专员提效:OpenClaw自动跟踪物流信息、更新库存数据,异常自动提醒
java·大数据·服务器·数据库·人工智能·自动化·openclaw
灵犀学长3 小时前
基于 Spring ThreadPoolTaskScheduler + CronTrigger 实现的动态定时任务调度系统
java·数据库·spring
北秋,3 小时前
PostgreSQL(Postgres)数据库基础用法 + 数字型 + 字符型 完整联合注入实战
数据库·postgresql·开源
m0_596749094 小时前
JavaScript中手动实现一个new操作符的底层逻辑
jvm·数据库·python
多加点辣也没关系4 小时前
Redis 的安装(详细教程)
数据库·redis·缓存
数据库小学妹4 小时前
数据库连接池避坑指南:告别“连接超时”与“资源耗尽”,让系统跑得更快!
数据库·redis·sql·mysql·缓存·dba
dishugj5 小时前
HANA 数据库备份与恢复
数据库·oracle