c#网页开发学习(一)

.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验证用户

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值