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