zoukankan      html  css  js  c++  java
  • 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);
            }
  • 相关阅读:
    cf1100 F. Ivan and Burgers
    cf 1033 D. Divisors
    LeetCode 17. 电话号码的字母组合
    LeetCode 491. 递增的子序列
    LeetCode 459.重复的子字符串
    LeetCode 504. 七进制数
    LeetCode 3.无重复字符的最长子串
    LeetCode 16.06. 最小差
    LeetCode 77. 组合
    LeetCode 611. 有效三角形个数
  • 原文地址:https://www.cnblogs.com/mango1997/p/14175158.html
Copyright © 2011-2022 走看看