• ASP.NET学习笔记一


    一、静态网站和动态网站
            静态网站:所有的页面内容是固定不变的,无法及时的更新数据。
            动态网站:页面和服务器端进行交互,获得服务端动态生成的数据,在页面中呈现。

    二、ASP.NET
           1..NET:是一个开发平台,核心的框架是.NET Framework
                  ASP.NET是基于.NET Framework框架,开发动态网站的技术。

           2.ASP.NET(Active Server Page).NET是一种动态的网页技术,基于.NET Framework平台,在服务端运行后台代码,动态生成HTML。
           常见的动态网页技术:ASP.NET,JSP,PHP

           3.ASP.NET技术包括两个方向
                  (1)web form
                         控件+事件驱动

                  (2)MVC

    三、C/S和B/S的区别
           1.C/S:Client/Server客户端服务器架构,客户端需要安装软件,业务处理在客户端机器上执行
           2.B/S:Browser/Sever浏览器乳香器架构,客户端只需要有浏览器,业务处理在服务端完成,对于服务器要求比较高

    四、服务器端
           1.硬件:服务器电脑
           2.软件:IIS

           IIS(Internet Information Service):Inter网信息服务,在Windows操作系统下对网站进行管理的软件

    五、新建 一个ASP.NET web应用程序
           1.添加web窗体

                    扩展名为*.aspx的文件:前端页面
                    可以编写html代码,css样式,js/jquery脚本
                    asp.net服务端控件(ID="",runat="server"):运行在服务端的控件,由服务端发回到客户端浏览器时,会将服务端控件转换成 对应的客户端 标签  

                    扩展名为*.aspx.cs的文件:后台代码,可以编写c#代码

    六、B/S中浏览器端与服务器端采用请求/响应模式进行交互
           在浏览器端输入页面地址向服务器IIS请求页面,服务端接收到请求后会进行服务端应用程序的运行,有可能还要去访问数据库服务器,处理完成后,服务端将处理好的结果响应给浏览器端 ,由浏览器去解析呈现

    七、aspx页面的请求过程
           1.首先是来自于客户端浏览器的请求,如:http://localhost:2891/index.aspx,该请求发送给IIS服务器
           2.web服务器IIS接收到请求后,检查请求的页面类型,如果是普通的html页面,IIS直接将该页面从服务端发回到客户端,由浏览器去解析;
           如果请求的是 扩展名为aspx页面,IIS处理不了这个请求,它会将这个请求交给专门的asp.net引擎(aspnet_isapi.dll)处理
           3.asp.net引擎将后台代码交给CLR运行,执行完之后再将aspx和aspx.cs两个文件合并成一个页面类,并且将页面类进行实例化成一个页面对象发回到客户端,此时,发回的页面中只有一些html              标签,css样式,js脚本,由浏览器去解析呈现

    八、自动回传机制
           1.asp.net事件机制不可以处理所有的客户端操作,因为用户操作是在客户端进行,只有浏览器知道,服务端代码不知道,所以必须通知服务端,重新请求页面,才有机会执行到服务端代码。
           2.为控件设置AutoPostBack=true,在客户端自动生成一个名为__doPostBack的脚本函数,在该 函数中提交表单,从而让后台代码有机会执行

    前端代码:

    <form id="form1" runat="server">
            <div>
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                <asp:Button ID="Button1" runat="server" Text="刷新" Onclick="SetTime"/>
                <asp:TextBox ID="TextBox2" runat="server" OnTextChanged="ChangeText"  AutoPostBack="true"></asp:TextBox>
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            </div>
        </form>

    后端代码:

    protected void Page_Load(object sender, EventArgs e)
            {
                TextBox1.Text = DateTime.Now.ToString();
            }
            protected void SetTime(object sender, EventArgs e)
            {
                TextBox1.Text = DateTime.Now.ToString();
            }
    
            protected void ChangeText(object sender, EventArgs e)
            {
                Label1.Text = TextBox2.Text;
            }

    九、客户端和服务端脚本的执行顺序

    页面加载时:先执行服务端脚本,再执行客户端。

    触发事件时:先执行客户端脚本,再执行服务端。

    十、Page类的属性
           1.IsPostBack:页面的请求是首次请求,还是回传请求
                false首次请求,true回传请求(必须将表单重新提交给自己)

    protected void Page_Load(object sender, EventArgs e)
            {
                //保证代码只执行一次,并且是在页面首次请求时执行,即页面初始化代码
                if (!IsPostBack)
                {
                    TextBox1.Text = DateTime.Now.ToString();
                }
            }

           2.Request属性
                  返回一个HttpRequest类型的对象,表示请求期间的数据
              常用属性:
                  Form:获得以post方式请求的数据
                  QueryString:获得以get方式请求的数据

    前端代码:

    <form id="form1" runat="server" method="get">
        <div>
            用户名:<input type="text" name="userName" value="" id="txt" /><br />
            密码:<input type="password" name="pwd" value="" /><br />
            <asp:Button ID="btn" runat="server" Text="登录" OnClick="btn_Click"/>
        </div>
        </form>

    后端代码:

    //通过Request.Form["name"]:以post方式提交表单,获得表单中指定name的元素的值
                //string userName = Request.Form["userName"];
                //string pwd = Request.Form["pwd"];
    
                //通过Request.QueryString["name"]:以get方式提交表单,获得表单中指定name的元素的值
                string userName = Request.QueryString["userName"];
                string pwd = Request.QueryString["pwd"];
                if (userName=="admin" && pwd == "123")
                {
                    Response.Write("<script>alert('登录成功');window.location.href='AdminMain.aspx';</script>");
                }
                else
                {
                    Response.Write("<script>alert('用户名或密码错误');</script>");
                }

           3.Response属性
           返回一个HttpResponse类型的对象,表求服务端发回给客户端的响应对象,封装了响应期间的数据
           常用方法:
                  Write()方法:服务端向客户端的HTTP输出流中输出内容
                  End()方法:停止该页的执行
                  Redirect()方法:页面的重定向

    前端代码:

    <form id="form1" runat="server">
        <div>
    
             用户名:<input type="text" name="userName" value="" id="txt" /><br />
            密码:<input type="password" name="pwd" value="" /><br />
            <asp:Button ID="btnWrite" runat="server" Text="Write方法" OnClick="btnWrite_Click" /> <br />
            <asp:Button ID="btnEnd" runat="server" Text="End方法" OnClick="btnEnd_Click" /><br />
            <asp:Button ID="btnRedirect" runat="server" Text="Redirect方法" OnClick="btnRedirect_Click" />
        </div>
        </form>

    后端代码:

    protected void btnWrite_Click(object sender, EventArgs e)
            {
                Response.Write("普通的文本字符串");
                Response.Write("<input type='button' value='动态按钮' name='btn' id='btn'/>");
                Response.Write("<script>alert('hello');</script>");
            }
    
            protected void btnEnd_Click(object sender, EventArgs e)
            {
                Response.Write("<input type='button' value='动态按钮1' name='btn1' id='btn1'/>");
                Response.End();
                Response.Write("<input type='button' value='动态按钮2' name='btn2' id='btn2'/>");
            }
    
            protected void btnRedirect_Click(object sender, EventArgs e)
            {
                string userName = Request.Form["userName"];
                string pwd = Request.Form["pwd"];
    
                //跳转到AdminMain.aspx页面,并且将需要传递的值以查询字符串传递到管理员页面,adminMain界面可以利用Response.QueryString["name"]的方法获得传递的值
                Response.Redirect("AdminMain.aspx?name="+userName+"&password="+pwd);
            }
  • 相关阅读:
    全网最深分析SpringBoot MVC自动配置失效的原因
    这一次搞懂Spring代理创建及AOP链式调用过程
    这一次搞懂SpringBoot核心原理(自动配置、事件驱动、Condition)
    这一次搞懂Spring Web零xml配置原理以及父子容器关系
    这一次搞懂SpringMVC原理
    这一次搞懂Spring事务是如何传播的
    Redis系列(八):发布与订阅
    【深度思考】JDK8中日期类型该如何使用?
    【Redis面试题】如何使用Redis实现微信步数排行榜?
    Nacos系列(一):Nacos环境安装及Hello World示例
  • 原文地址:https://www.cnblogs.com/mango1997/p/14175158.html
Copyright © 2020-2023  润新知