您的位置:首页 > 编程语言 > C#

c#网页开发学习(一)

2013-03-14 18:51 239 查看
.aspx:页面文件,里面是html代码,在.net中打开显示为而面显示的形状(被称为设计器)。可以直接在里面进行编辑。
.cs:代码文件,比如双击button,就会进入该文件自动生成单击函数。Page_Load也在其中生成。
【一,基本知识】

Active Server Page(ASP):一种【服务器端】(server-side)脚本环境。
静态页面:就是一张页面,只用来显示。

动态页面:有交互功能。

1,在客服端动:HTML代码内部包含着能通过浏览器解释并执行的代码(例如JavaScript脚本)。

缺点:1,不好完成复杂功能;2,浏览器的不同导致解释方式不同,相同代码不一定以同样方式执行;3,可以“查看源文
件”,而很多代码是不希望被看到。

2,在服务器端动:服务器解释执行页面中的指令(例如ASP)。(即web服务器处理指令后,生成html,再返回给页面进行显示)
所适用的Web服务器只限于IIS

【IIS的作用】

首先,IIS接受用户的客户端浏览器的页面请求信息,定位ASPX页面后,把请求信息交给ASP.NET模块来处理。ASP.NET模块分析ASPX
文件,执行其中的服务器端指令,生成纯HTML文档,并返回给IIS,最后IIS再将HTML返回到客户端浏览器。

=======================

一定要把ASP.NET开发的网页文件保存为.aspx后缀。这非常重要,因为IIS在定位网页文件后,只有后缀为.aspx的文件才会交给
ASP.NET模块去处理。
【二,基本结构】

ASP.NET本身并非一种编程语言,而是一种创建动态页面的技术,用于把编程语言(Visual Basic.NET、C#等)代码段嵌入到页面的
HTML中。二者混合在一起,就构成了ASPX页面。【如何将两者进行结合】

1,使用<%...%>嵌入代码
a,在浏览器中单击“源文件”命令,将能看到代码被转化为客户端的HTML代码。

b,使用<%--...--%>注释代码,区别于:<!--注释-->:这是HTML代码中的注释方式

2, 使用<Script>...</Script>嵌入代码

a,<Script>标记有两个特殊的属性:Language和Runat=“Server”

b,Language:该属性用于指定<Script>...</Script>之间代码所使用的编程语言,默认为Visual Basic.NET。另外,这里
指定的语言必须与ASPX页首行使用<%@ Page Language="..."%>

c,Runat:Runat=“Server”属性用于指定代码运行的位置是在服务器端。

d,<Script>…<Script>常常用于定义各种变量或函数。在<%...%>中可以调用Script中定义的函数,如:

在script中定义函数

<script language="C#" runat="Server">

String func(string day){...}

</script>

在<%%>中可如此调用:<%... string str = func(..); Response.Write(str);...%>
3,使用<%@ CodeFile=…%>绑定代码

a,ASP.NET提出了代码分离的思想,即把代码文件(C#代码)和页面显示文件(HTML代码)分离在不同的文档中,各自独立
完成Web页面的逻辑功能和显示功能;然后通过<%@ CodeFile=…%>将两者“绑定”在一起,达到把C#代码嵌入在HTML中的效果。

b,文件HelloWorld.aspx定义了页面的结构,包括页面的外观、包含的控件等

c,页面的功能实现由C#编程语言编写,在对应的.cs文件HelloWorld.aspx.cs中实现。

d,包含HTML代码的ASPX文件和包含C#代码的CS文件的对应关系,通过HelloWorld.aspx首行
中“CodeFile="HelloWorld.aspx.cs"”来确定。
4, 使用<%@ Page...%>设置页面属性

3中的CodeFile就是一个属性,除此还有:

Language=“C#|VB”:设置本页面所采用的编程语言,默认为“C#”。

AutoEventWireup=“True|False”:是否使用ASP.NET约定的的事件命名规则,为控件事件命名。

Inherits=“...”:定义供应用程序类继承的代码隐藏类。

ResponseEdcodeing=“...”:设置ASPX页面编码方式,默认为Unicode。

Trace=“True|False”:设置是否在程序中显示代码直行的跟踪(Trace)信息。

TraceMode=“SortType”:设置跟踪信息的排序方式,默认为根据执行时间排序“SortByTime”。
5, 使用<%@ Import %>引入类库

a, <%@ Import NameSpace="System.Data" %>这样,在本页面中,就可以使用数据库操作的各个类了。

b,ASP.NET默认支持8个空间,即这8个空间中的类不需要使用<%@ Import %>,可以直接使用。

(1)System:包含最基本的类及数据类型。

(2)System.Text:包含各种编码类、字符编码转换类。

(3)System.Collections:包含定义各种集合的类,如列表、队列、数组、哈希表、字典等。

(4)System.Web:包含了Web应用中客户端/服务器间联系的各种类。

(5)System.Web.UI:包含了各种用于Web的服务器控件。

(6)System.Web.UI.HtmlControls:包含了HTML控件。

(7)System.Web.UI.WebControls:包含了Web控件。

(8)System.Threading:提供多线程变成的类。
6, 添加服务器控件 (即:拖工具框到页面上)

“Runat="Server"”是Server控件非常重要的属性,当ASP.NET网页执行时,.NET会检查页面上的标签有
无“Runat="Server"”属性。如果没有,就会被直接发送到客户端的浏览器进行解析;如果有,则表示这个控件可以被.NET程序所
控制,需要等到程序执行完毕,再将HTML控件的执行结果发送到客户端浏览器。
7, 用事件响应页面动作(即:在客户端捕获服务器控件事件(如双击),然后做出相应处理。文中未进行深讨)
8,将事件绑定到方法

a, 对于在页上声明的控件,可以通过在控件的标记中设置属性 (attribute/property) 将事件绑定到方法。

b, 在“属性”中,单击事件符号 ,将显示所选控件的事件列表
9, 页面加载事件

通过在“设计”视图中双击页面,便可以自动创建该事件,默认的处理方法名为Page_Load。

【三,ASP.NET核心对象】

1, Page类

Response:向浏览器输出信息。

Request:管理访问者对页面的请求信息。

Server:提供一些与Web服务器相关的信息。

2, 页面的生命周期:请求页面, 开始, 初始化页面, 加载页面, 验证, 回发事件处理, 呈现页面, 卸载

【相应的生命周期中的事件】

事件 说明

Init 当服务器控件初始化时发生;初始化是控件生存期的第一步

InitComplete 在页初始化完成时发生

PreInit 在页初始化开始时发生

Load 当服务器控件加载到Page对象中时发生

LoadComplete 在页生命周期的加载阶段结束时发生

PreLoad 在页Load事件之前发生

PreRender 在页面加载控件对象之后、呈现之前发生。

PreRenderComplete 在呈现页内容之前发生

UnLoad 当服务器控件从内存中卸载时发生

Disposed 当从内存释放服务器控件时发生,这是服务器控件生存期的最后阶段

===================================
3, Request对象:接受和管理用户对页面的请求信息

当用户打开Web浏览器访问.aspx页面时,Web服务器就会收到其HTTP请求。请求信息既包括用户的请求方式(如POST、GET)、参数名、参数值等,又包括客户端的基本信息(如浏览器类型、版本号、用户所用语言以及编码方式等),这些信息将被整合在一起。通过Request对象,便可以访问这些数据。
Response.redirect :将浏览器重定向到另一个 URL。

从客户端得到数据。常用的两种取得数据的方法是Request.Form和Request.QueryString,对应的Form提交时的POST和GET方法。

GET方法将提交的数据构造称为URL的一部分传递给服务器,如常见的网址http://www.php.net/cal.php?id=1934中的“?id=1934”部分就是GET方法提交的数据。POST方法不会则象GET那样把提交的数据暴露在浏览器的地址栏中。
4,共享数据 (需实际操作一下,加深熟习)

a,利用Application共享数据
当需要在整个程序的级别共享信息时,可以使用Application对象。例如,需要设置一个计数器来统计访问系统的所有人数;或者在程序开始和结束时记录时间,以计算系统的运行时间,这些都可以使用Application对象来实现。Application 对象是HttpApplictionState类的实例,它的生命周期起始于系统开始运行时,终止于系统关闭。
其属性和方法如下:

AllKeys
获取Application中的键的集合
Contents
获取对Application对象中的数据
Count
获取Application集合中的对象数
Item
获取对Application集合中的对象的访问
Add
将新的对象添加到Application集合中
Clear
从Application集合中移除所有对象
Lock
锁定对Application变量的访问,以保证各个用户的访问不发生冲突
UnLock
取消锁定对Application变量的访问
OnStart
当Application对象的生命周期开始时,Application_Start事件会被启动
OnEnd
当Application对象的生命周期结束时Application_End事件会被启动
b,使用Global.asax文件:

Global.asax文件与Application对象具有紧密的联系,它的主要功能就是:设置一些在程序级别使用的变量以及实现Application对象的OnStart和OnEnd等事件

c,利用Session共享数据
对于多用户使用的系统来说,有时候需要更细致的数据共享机制:每个用户都可以共享自己的所有数据,而其他用户则无法共享。要实现这种会话级别的共享,需要使用Session对象。

说明:Session意为“会话”,指从用户进入系统到关闭浏览器离开系统的这段交往时间。对于该用户来说,在Session中注册的变量可以保留其值,并可在各个页面中使用。由于这种特点,Session常用于用户在页面之间参数传递、用户身份认证、记录程序状态等。
常用方法:
Abandon 结束Session

Remove 删除Session中的对象

OnStart 当Session对象的生命周期开始时,Session_Start事件会被启动

OnEnd 当Session对象的生命周期结束时Session_End事件会被启动
同Application不同的是,如果在另外一个客户端的浏览器中输入P2.aspx地址,则不会显示“value1”,这是因为系统认为另一个客户端为其他用户,而Session只支持用户内部的数据共享。

d,利用Session验证用户
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: