zoukankan      html  css  js  c++  java
  • 【基础知识】ASP.NET[基础二(aspx)]

    1、cs可以调用aspx中的runat=server控件,aspx中也可以访问测试中定义的字段、函数,还可以编写复杂的C#代码,for等所有C#代码都可以写在aspx中(不推荐这样写);

    2、把代码写到aspx页面中

       前面 <%=UserName %>  <%=SayHello(); %>    <%if(UserName == “aaa”){ UserName = “bbb”;}%>  后面

    在当前位置输出表达式的值的时候使用<%=UserName %> ,不可丢掉=,相当于在当前位置调用Response.Write(UserName);

    使用的函数、代码相当于在这个位置调用函数、执行代码。注意aspx中调用cs的只能是非私有成员(非private修饰-in为继承关系)

    <% %>中的代码是运行在服务器的,是C#语法,在服务器运行完成才输出到浏览器,其他部分是运行在浏览器前端的,是html、JavaScript语法。

    前台文件和后台文件在运行的时候根本就不是一个类,是两个分开的类。前台文件类继承于后台类文件。

    3、aspx、cs、dll(程序集)的区别

    程序集(.exe .dll):就是一个项目中所有代码都编译到一个文件里。

    表现层(服务员)---业务层(厨师)---数据层(采购员)

    添加引用:

    表现层(UI):添加业务层(BLL)引用

    业务层(BLL):添加数据层(DAL)引用

    UI、BLL、DAL都要添加实体层(MODEL)。

    Dll:反编译出来会生成两个类:一个是public class FirstForm(后台文件类),另一个是public class firstform_aspx(前台文件类)。

    当网站运行的时候是运行的前台文件类,因为前台文件类继承后台文件类,因此网站运行的时候还是会运行后台文件类。

    Response.Write(this.GetType().Assembly.Location +"<br/>");

    //获得dll文件在资源管理器中的地址

    4、在前台的控件被加上runat=server就会在生成后台页面(父类)的对象(作为父类的变量编译进来)

    5、前台类对象是如何结合后台方法生成整个HTML页面的方法的呢?

    --被请求时,页面控件对象生成。

    控件树负责组织整个页面的内容。(_BuildControlTree()--生成控件树的方法)

    Html页面,childNodes在浏览器的dom树中,其实每个节点都有一个childNodes集合属性,用来保存当前节点的子节点。

    控件树中

    “呈现”---将服务器端控件类对象转成对应的Html代码。

    页面类对象,通过控件树的方式,帮我们封装了整个页面的Html源代码和c#代码。(都封装到页面类对象的控件集合属性中,那么要生成页面的HTML代码的时候,只需要循环遍历整个控件树,并调用每个控件的_Render_方法获得每个控件的HTML代码,就可以拼成一个完整的页面HTML代码了。)

    在page中添加Trace=”true”可以在页面中打印出页面的详细信息

    6、服务器是如何通过浏览器的请求生成 html代码的?

    1>浏览器和服务器交互是通过Socket

    2>浏览器和服务器交互的语法是:Http协议

    3>浏览器要和服务器交互的目的:获取服务器的资源(html,图片,js,css)

    4>服务器要做的事情就是想尽办法,满足浏览器的需求。所以一旦浏览器的请求的是动态页面的时候,服务器就要创建页面类对象,并生成里面的方法,最后将生成的Html代码发回给浏览器。

    7、编写登陆页面

    1》为什么在cs文件中可以直接Response.Write(“123123”);输出信息,而不用context.Response.......

    因为context上下文信息已经封装到Page类了。而cs又继承于Page类。

    服务器中存在一个缓存取,页面信息的内容在输出到浏览器之前先存在缓存区中。

    8、Request中的其他成员:

    Request.UrlReferrer:请求的来源(*就是你从哪个页面过来的)【应用:防盗链】

    Request.UserHostAddress:通过和浏览器通信的套接字的RemoteEndPoint(远程节点)拿到浏览器的IP地址

    Request.MatPath(virtulPath):将虚拟的路径转换成网站物理路径

    9、Response其他成员:

    响应缓存输出:为了提高服务器的性能,ASP.Net向浏览器Write的时候默认并不会每Write一次都会立即输出到浏览器,而是会缓存数据,到合适的时机或者结束才会将缓存区中的数据一起发送给浏览器。

    Response对象的主要成员:

    Response.Flush():将浏览器的缓存发送给浏览器

    Response.Clear():清空浏览器的缓存

    Response.ContentEncoding:输出流的编码

    .....

    10、Server属性

  • 相关阅读:
    CAP 与数据一致性
    C++的构造函数为何不能为虚函数
    构造函数和析构函数中可以调用调用虚函数吗
    HTTP状态码
    C++ 单例模式实现
    【转】十大经典排序算法
    C++ short/int/long/long long 等数据类型大小
    块/文件/对象三种存储的优缺点
    罗振宇《时间的朋友》2019-2020
    Google Hacking
  • 原文地址:https://www.cnblogs.com/haoxilu/p/3547367.html
Copyright © 2011-2022 走看看