ASP.NET基础笔记
MSDN:
1、IIS7.0的ASP.NET应用程序的生命周期 ASP.NET页面的生命周期
一、基础知识
1、一个ASP.NET Web网站包含如下:
Default.aspx文件为ASP.NET Web窗体文件,该文件作为网站的默认主页,可以包含Web控件
Default.aspx.cs文件为网页运行时要编译的源代码文件
Web.config文件为Web配置文件
Global.asax文件记录需要初始化的变量,全局文件
2、新建网站时选择的Web位置
*文件系统网站:用户选择在本地计算机上某个文件夹中存储页面和其他文件
*HTTP网站:将用户的文件存储在本地IIS根目录的子文件夹中,通常是(\Inetpub\Wwwroot\)
*FTP网站:将文件存储在远程服务器上,用户可以使用文件传输协议(FTP)通过Internet访问该服务器
3、一个完整的AS.NET页面文档由指令、文档声明类型、代码声明、服务器代码、文本和XHTML标记等部分组成
*指令
ASP.NET页面通常包含一些指令,允许用户指定页面的属性和配置信息,对页面进行设置,当然对于指令指定的设置是不会出现在浏览器端的,它只是指交给浏览器来处理
.aspx文件和.cs文件的相互关联是由aspx文件的@page指令连接的
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="true" Inherits="WebApplication1.WebForm1" %>
由<% %>修饰的都是交给服务器处理的部分,该指令说明编程语言是C#,指定包含与页关联的类的已编译文件的名称是WebForm1.aspx.cs,AutoEventWireup
指示控件的事件是否自动匹配 (Autowire),Inherits="WebApplication1.WebForm1"定义供页继承的代码隐藏类。
*文档类型声明
<!DOCTYPE HTML>
DOCTYPE为文档类型声明,指定本文档遵从的DTD标准,同是指定文档中的XHTML版本,可以和哪些验证工具一起使用等信息,文档声明是每个页面文档所必须的
没有文档类型声明时浏览器采用默认的方式,即W3C推荐的HTML4.0来处理此HTML文档。
*代码声明
页面的代码声明位于<script>...</script>标记中,包含ASP.NET页面的所有应用逻辑和全局变量声明、子例程和函数。
*服务器代码
包含在服务器端运行的代码,页面的代码开始标记包含 runat="server"属性,ASP.NET将此标记标识为服务器控件,并使其可以用于服务器代码
*文本和XHTML标记
页面的文本部分由XHTML标记来实现
4、特殊文件夹
App_Data:保存应用程序使用的数据库
App_Code:存储所有应当作为应用程序的一部分动态编译的类文件,这些类文件自动链接到应用程序,而不需要在应用程序中添加任何显示指令或声明来创建依赖项。
包括的都有-自定义控件、辅助类、build提供程序、业务类、自定义提供程序和HTTP处理程序等。
Bin:包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程序集。
App_Thems:为站点上每个页面提供统一外观和操作方式的一种新方法,通过skin文件、CSS文件哎in和站点上服务器控件使用的图像来实现主题的功能。
App_GlobalResources:资源文件,可以在这个文件夹中添加程序集资源文件.resx,它会动态编译成为解决方案的一部分
二、页面管理
1、页面代码模式
ASP.NET的页面包含两个部分:一部分是可视化元素,包含标签、服务器控件以及一些静态文本等;另一部分是页面的逻辑,包含事件处理句柄和其他程序代码
ASP.NET提供两种模式来组织页面元素和代码:
*单一文件模式:页面的标签和代码在同一个.aspx文件中
*后台代码模式:将可视化元素和程序代码风别放置在不同的文件中,实现代码分离模式
2、页面往返机制
ASP.NET页面作为代码在服务器上运行的,如果要是页面的按钮或者其他内容得到处理,并将该信息提交到服务器。每次页面提交时,都会在服务器端运行其代码,然后 把运行的结果呈现给用户。
(1)用户通过客户端浏览器请求页面,页面第一次运行,执行初步处理
(2)执行的结果以标记的形式呈现给浏览器,浏览器对标记进行解释并显示
(3)用户输入信息,或者选择执行选项,如果是重定向到另一个页面,那么该页面不会被进一步处理
(4)页面发送到Web服务器,在ASP.NET中称为“回发”,也就是说页面发送回其自身
(5)服务器将执行后的页面以HTML或XHTML标记的形式发送到客户端的浏览器
只要用户访问同一个页面,该循环就会继续,有时候需要代码仅在首次请求页面的时候执行,而不是每次回发是都执行,这时候可以使用Page对象的IsPostBack属性来避免对往返行程执行不必要的处理
3、页面生存周期
ASP.NET页面在运行时将经历一个生命周期,在生命周期中,该页面将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。 浏览器从Web服务请求页面时,浏览器和服务器相连的时间仅够处理请求。Web服务器将页面呈现到浏览器之后,连接即终止。如果浏览器对同一Web服务器发出另一个请求,则即使是对同一个页面发出的,请求仍会作为新请求来处理。
三、常用内置对象
Response对象:Response对象掌管ASP.NET的Input功能,实际是在执行System.Web命名空间中的HttpResponse类,CLR会根据用户的请求信息建立一个Response对象,
Response对象将用于回应客户端浏览器,告诉浏览器回应内存的报头、服务器端的状态信息以及输出指定的内容。
主要功能: 传输数据-<%Response.Write(string);%>
跳转网页-Response.Redirt(string url);
输出文件
传递参数-Response.Redirt("index.aspx?username="zhangsan");
Request对象:Request对象接收客户端通过表单或者URL地址串发送来的变量,同时也接收其他客户端环境变量。 ASP.NET是使用表单(Form)来实现用户数据提交的, Get方法:使用Request.QueryString方法来取得传递的数据,用户要提交的数据信息往往是作为查询字符串加在URL的后面传给接收程序,对大小有限制一般是2KB左右。 Post方法:对数据大小和长度没有什么限制,由于地址栏中不显示相关的查询字符串,那么使用Post方法就十分适合用来传递保密信息,例如用户的账户和密码
Application对象:由于在整个应用程序生存周期中,Application对象都是有效的,所以在不同的页面中都可以对它进行存取,就像使用全局变量一样方便。它可以在多个
请求、连接 之间共享公共信息,也可以在哥哥请求连接之间充当信息传递的管道。需要注意的是,首先这个状态变量是建立在内存中的,其次这个状态变量是可以被网站的所有
页面访问的,不必考虑 用户的不同,但是这样就可能造成多个用户在同一时间对Application中的信息进行修改,解决的方法是加锁。
Session对象:用于存储特定的信息,Application对象存储的是共享信息,而Session存储的信息是局部的,是随用户的不同而不同的,Session是有生命周期的,默认是20分钟。
Session对象存储在两个地方,分别是客户端和服务器端,客户端只负责保存相应的网站的SessionID,而其他的Session信息保存在服务器端,这也就是Session安全的原因,在客户端只存储SessionID,这个SessionID只能被当前请求的网站的客户所使用,其他人则是不可见的;而Session的其他信息是保存在服务器端的,而且永远也不发送给客户端
Web.Config中
<sessionState
mode="Inproc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0;Trusted_Connection=yes"
cookies="false"
timeout=""
/>
1、将其中的代码段“cookieless="false"改为“cookieless=true”客户端就不再使用Cookie存储Session信息,而是将其通过URL存储,在地址栏中就看到了SessionID,设置mode="InProc",这种存储模式就是在服务器端将Session信息存储在IIS进程中,IIS关闭、重启后,这些信息都会丢失,但是这种模式的性能最高,因为所有的Session都存储在IIS的进程中,所以IIS能够很快的访问它们。还有Session可以存储在外存和SQL Server中
Server对象:该对象提供对服务器上的方法和属性的访问,
一个重要的功能就是对字符进行URL和HTML的编码和解码
string str=Server.HtmlEncode("<B>HTML 内容</B>");
str=Server.HtmlDecode(str);
Response.Write(str);
ViewState对象:视图状态对象,保存往返过程之间的页面信息以及控件值的方法.可存储自定义对象,但是需要序列化该对象。
Cookie对象:存储数据-存储与内存中的临时数据和存储与硬盘中的永久数据,硬盘中的位置是C:\Users\DefaultAppPool\AppData\Roaming\Microsoft\Windows\Cookies,值得一提的是Cookie与网站关联,而不是与特定的页面关联,因此无论用户请求站点中的哪一个页面,浏览器和服务器都将交换Cookie信息,用户访问不同的站点是,各个站点都可能会向用户的浏览器发送一个Cookie,浏览器分别存储所有的Cookie。
ASP.NET基础笔记的更多相关文章
- C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用
C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备) https://blog.csdn.net/u013519551/article/details/51220841 1. . ...
- php代码审计基础笔记
出处: 九零SEC连接:http://forum.90sec.org/forum.php?mod=viewthread&tid=8059 --------------------------- ...
- C#基础笔记---浅谈XML读取以及简单的ORM实现
背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方 ...
- HTML5基础——笔记
HTML5基础——笔记 近几年来,互联网+.大数据.云计算‘物联网‘虚拟现实‘人工智能.机器学习.移动互联网等IT相关新名词.新概念层出不穷,相关产业发展如火如荼.互联网+移动互联网已经深入到人民日常 ...
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- MYSQL基础笔记(六)- 数据类型一
数据类型(列类型) 所谓数据烈性,就是对数据进行统一的分类.从系统角度出发时为了能够使用统一的方式进行管理,更好的利用有限的空间. SQL中讲数据类型分成三大类:1.数值类型,2.字符串类型和时间日期 ...
- MYSQL基础笔记(五)- 练习作业:站点统计练习
作业:站点统计 1.将用户的访问信息记录到文件中,独占一行,记录IP地址 <?php //站点统计 header('Content-type:text/html;charset=utf-8'); ...
- MYSQL基础笔记(四)-数据基本操作
数据操作 新增数据:两种方案. 1.方案一,给全表字段插入数据,不需要指定字段列表,要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致.凡是非数值数据,到需要使用引号(建议使用单引号)包裹. i ...
- MYSQL基础笔记(三)-表操作基础
数据表的操作 表与字段是密不可分的. 新增数据表 Create table [if not exists] 表名( 字段名 数据类型, 字段名 数据类型, 字段n 数据类型 --最后一行不需要加逗号 ...
随机推荐
- 大陆地区OpenStack项目Core现状(截至2016年1月28日,转载自陈沙克日志)
陈沙克 经常有朋友问,大陆地区大概有多少位OpenStack项目的Core.这个问题,现在其实不太好回答,如果需要准确统计的话.下面仅仅是一个大概估计,有遗漏的,希望朋友指出,我来补全. 文档修改历史 ...
- 关于BitmapFactory解析流的问题a
今天碰到了一个超级恶心的问题,BitmapFactory.decodeStream(bis,null,options)一直是返回NULL 问题是这样子的: InputStream is= respon ...
- 【C#基础】static 关键字用法小结
静态变量 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用. 有时候,我们希望 ...
- 错误处理php
一 HP关闭脚本错误提示的方法: 打开PHP安装目录下的php.ini文件 找到display_errors = On 修改为 display_errors = off 注意:如果你已经把PHP.in ...
- 【linux】Ubuntu 14.04 smba服务器的配置
SMB(Server Messages Block,信息服务块)是为了在ubuntu虚拟机与windows之间共享文件. 具体配置过程如下: (1)安装SMB应用 sudo apt-get in ...
- 前端工程筹建NodeJs+gulp+bower
1.安装nodejs nodejs 官网下载安装文件 安装完成之后,在命令窗口执行,(显示nodejs版本) 和(显示npm版本)可以使用这两个命令查看是否安装成功: node -v npm -v 2 ...
- Completely change MACE timestamps?
Hi, One of my friends Sandy asked me about the possibility of completely change MACE timestamps. As ...
- JSF Action 与ActionListener的区别
JSF Action 与ActionListener的区别 标签: 杂谈 事件 检验 参数 事件产生 页面跳转 Action 有 无参数,不传入当前控件,有返回值 当铵钮被单击 ...
- Android事件
1.Java package com.fish.helloworld; import android.app.Activity; import android.graphics.Color; impo ...
- SQL 常用方法
EXCEPT :返回两个结果集的差(即从左查询中返回右查询没有找到的所有非重复值). INTERSECT :返回 两个结果集的交集(即两个查询都返回的所有非重复值). UNION :返回两个结果集的并 ...