51Aspx 源码服务专家 社区资讯
技术文章

第1章 ASP.NET Web应用程序基础

1.1 Web 应用程序简介 

1.1.1 Web 应用程序概述 

随着互联网技术的不断发展,各式网络程序开发体系结构应运而生,运用最多的网络应用程序开发体系结构可以分为两种 

  • 基于客户端和服务器端的 C/S 结构
  • 基于浏览器和服务器的 B/S 结构

C/S 体系结构:Client/Server 的缩写,即客户端 / 服务器端结构

B/S 体系结构:Browser/Server 的缩写,即浏览器 / 服务器结构 

1.1.2 Web 应用程序的工作原理 

Web 应用程序大致可以分为两种,即静态网站和动态网站。早期的 Web 应用主要是静态页面的浏览,即静态网站 

随着互联网技术的发展,更多的内容需根据用户的请求动态生成页面信息,即动态网站 

1.2 HTTP协议 

1.2.1 URL简介 

  • URL 是 Uniform ResourceLocator 的缩写,表示统一资源定位器,它是专为标识网络上的资源位置而设定的一种编码地址方式 
  • URL 通常由 4 个部分组成,包括应用层协议、主机 IP 地址或域名、协议端口号以及资源所在的路径和文件名  

应用层协议 :// 主机 IP 地址或域名 / 资源所在路径 / 文件名 

1.2.2 HTTP 协议概述 

HTTP 协议(HyperText Transfer Protocol,超级文本传输协议)是关于如何在网络上传输超级文本及 HTML 文档的协议 

Web 浏览器通过 URL 与 Web 服务器建立网络连接后,按照 HTTP 协议的规定向 Web 服务器发送请求信息,Web 服务器接收到浏览器的请求后,再按照 HTTP 协议的要求将结果发送给 Web 浏览器 

1.2.3 HTTP 协议处理流程 

浏览器发出一个 HTTP 请求,服务器能够返回一个响应,并且通过一个 HTTP 请求只能对应一个响应,每个过程都是独立的 

一次完整的请求响应过程 

  • 客户端和 Web 服务器建立连接 
  • 客户端发送 HTTP 请求
  • 服务器端接受客户端的请求,生成 HTTP 响应并发送给客户端
  • 服务器端关闭连接。客户端接收服务器端的响应,恢复页面

说明:服务器端关闭连接后,不再存储连接信息,所以 HTTP 协议被称为无状态协议。 

1.2.4 HTTP 请求方式 

HTTP 请求常用两种请求方式

  • GET 请求方式:GET 为表单的默认提交方式 
  • POST 请求方式:客户程序可通过此方式发送大量信息给服务器

GET 和 POST 的请求方式的区别

  • GET请求方式仅能传送文本给服务器;POST请求方式可以传送二进制数据如音频、视频等 
  • GET请求方式提交的数据会暴露在地址栏,不安全;POST请求方式提交的数据则不会暴露在地址栏,安全性高
  • GET请求方式提交的数据不能超过 2KB,POST请求方式则无此限制 
  • 表单通过method属性来指定使用哪种请求方式,默认为GET请求方式 

1.3 ASP.NET简介与Web Forms的创建 

1.3.1 ASP.NET 简介 

ASP.NET 是微软 .NET 体系提供的 Web 开发框架,它可以使开发人员用尽可能少的代码生成企业级 Web 应用程序所需要的各种服务 

ASP.NET 支持 3 种开发模式

  • Web  Pages
  • Web  Forms
  • MVC 

1.3.2 创建Web  Forms应用程序 

使用Visual Studio 2017 创建ASP.NET站点应用程序

  • 启动 Visual Studio 2017 后,在主界面选择“新建(N)” “项目(P)...”
  • 选择项目模板及类型
  • 点击“确定”按钮,进入应用程序选择窗体,选择 Web 窗体应用程序 
  • 使用快捷键“Ctrl+F5”编译并执行站点程序
  • 运行结果 

站点结构分析: 

  • .aspx 是 Web Forms 窗体页面的后缀
  • App_Data文件夹是 ASP.NET提供程序存储自身数据的默认位置
  • App_Start 文件夹是应用程序静态配置文件
  • Content 文件夹用于存放样式表等资源文件
  • fonts 文件夹用于存放项目中需要使用到的字体
  • Scripts 文件夹用于存放站点所用到的 JavaScript 脚本文件

注意:Default.aspx 是项目默认首页,也可以使用 Index.aspx 代替 

页面文件结构分析 

  • 页面文件由两部分组成:一部分是以“文件名 .aspx”方式命名的页面源文件,另一部分是以“文件名 .aspx.cs”方式命名的页面类文件
  • Default.aspx代码
<%@Page//page指令Title="Home Page" Language="C#"//编程语言 MasterPageFile="~/Site.Master"
AutoEventWireup="true"//是否启用页面自动事件回传 CodeFile="Default.aspx.cs"//页面对应类文件 Inherits="_Default" %>//页面对应类的类名
<asp:Content runat="server" ID="FeaturedContent" ContentPlaceHolderID="FeaturedContent">
  ……
</asp:Content>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
  ……
</asp:Content>

Default.aspx.cs代码 

public  partial  class  _Default : Page//继承自Page类
{
  protected  void  Page_Load(object  sender,EventArgs  e)
      {
      }
}

Page 类提供 .aspx文件的基本行为,Page的父类TemplateControl类定义了页面(或控件)的基本功能 

TemplateControl类的父类Control类定义了 ASP.NET 服务器端元素(包括页面、控件)共享的属性、方法和事件 

在浏览器中运行 ASP.NET 页面

Visual Studio2017通过启动 IIS Express(简易版的 Internet 信息服务器)来运行站点程序,在浏览器中即可看到 Default.aspx 页面的执行结果 

1.4 ASP.NET 基本控件 

1.4.1 ASP.NET 基本控件的使用 

ASP.NET 沿用Windows Forms编程中的事件驱动概念,使用类似于Windows Forms中的控件,其属性和事件也与Windows  Forms中控件的属性方法类似 

使用 Label、TextBox 和 Button 3 种控件实现页面数据的输入和显示功能 

  • 在 Visual Studio 2017 中创建一个空的 Web 应用程序
  • 在该程序中新建一个 Web 窗体页面,并且取名为 Login
  • 切换回“设计”视图,并展开工具箱

从 工 具 箱 中 分 别 拖 放 Label、TextBox 和 Button 控 件 到 Login.aspx 页 面 的“form”内,并按控件命名规则,将这 3 个控件分别命名为"lblMessage" "txtUserName"和"btnSure“ 

双击 Login.aspx 页面上的"确定"按钮,首先为按钮注册 Click(点击)事件,同时打开 Login.aspx对应的类文件 Login.aspx.cs,并在该类文件中自动创建按钮 Click 事件的处理方法 

在 btnSure_Click 方法中编写如下代码

用鼠标右键点击 Default.aspx,选择“在浏览器中查看” 

protected void btnSure_Click(object sender, EventArgs e)
{
  this.lblMessage.Text ="你的用户名为"+this.txtUserName.Text;
}

总结:

  1. 浏览器通过 URL 服务器建立网络连接后,按 HTTP 协议的规定向服务器发送请求信息,服务器接收到浏览器的请求后,再按照 HTTP 协议的要求将结果发送给浏览器 
  2. GET请求是默认请求方式,仅能传送文本,提交数据不能超过2KB,提交的数据会暴露在地址栏 
  3. POST请求无数据大小限制,可以传送二进制数据,提交的数据不会显示在地址栏 
  4. ASP.NET是微软.NET框架提供的一个统一的Web开发模型
  5. ASP.NET沿用了WinForms编程中的事件驱动概念,提供了很多类似于Winforms中使用到的控件 
  6. 通过文本框的text属性可以获取文本框中的文本内容