WEB服务器.ppt
《WEB服务器.ppt》由会员分享,可在线阅读,更多相关《WEB服务器.ppt(84页珍藏版)》请在课桌文档上搜索。
1、4.IIS 简介,WEB 服务器也称为 WWW 服务器,它是一个软件,主要是提供网上信息浏览服务 建一个网站,需要安装和配置 WEB 服务器,如果想让网站成为 Internet 的一个站点,则还需要一个独立的 IP 地址 IIS(Internet Information Server):微软的WEB服务器 在本机调试“网络”程序,需要安装 IIS,安装 IIS,服务器版的 Windows 操作系统中,它是一个可选的安装组件,在一些非服务器版的Windows 操作系统中也含有 IIS 安装 Visual Studio.NET 前必须在你的机器上先安装 IIS IIS 安装过程中自动配置 WEB
2、服务器,一般不要更改系统默认的配置,以免影响 ASP.NET 的运行。,应了解的 IIS 知识,网站默认工作目录:C:INTERPUBWWWROOT 浏览器访问 http:/localhost 既访问此路径开发网站时网页文件通常都放在这个目录里我们建立的 ASP.NET 应用程序默认情况下也都放在这个文件夹里。实际开发时经常放在别处,但是要进行设置。,Internet 信息服务,控制面板/管理工具/Internet 信息服务,可以打开 IIS 的管理工具,对 IIS 进行管理、配置有时我们希望将应用程序放在别的目录下,为了能找到相应路径,需要建立虚拟目录 在 IIS 管理工具中右键单击“默认w
3、eb站点”,新建/虚拟目录,根据向导选择相应目录即可此时浏览器访问 http:/locaohost/虚拟目录名/文件名 既可访问此站点。,5.一个简单的 ASP.NET 程序演示,创建一个 ASP.NET Web 应用程序 注意应用程序默认的创建位置:http:/localhost/WebApplication1 可以修改项目名称 WebApplication1 如果创建到其他目录下,需要设置虚拟目录项目创建后,出现一个空白 web 窗体,同时在“解决方案管理器”中,有一个Default.aspx 文件,注意窗体下方的“设计”与“源”标签,切换一下看看效果,一个简单的 ASP.NET 程序演示
4、,在“解决方案管理器”中点图标“显示所有文件”,可以看到更多的文件在编写 web 程序时,IDE 生成了下列文件:Default.aspx:HTML文件 Default.aspx.cs、Default.aspx.designer.cs:程序源代码文件。打开文件看看.NET 编译程序只编译程序源代码文件,一个简单的 ASP.NET 程序演示,摆放一个文本框,一个标签,一个按钮添加按钮单击事件处理函数,在事件处理函数内加一行代码:TextBox1.Text=“HELLO!”;编译,运行 在运行的网页上查看原代码,和初始的HTML 文件比较一下,代码分析 HTML 代码,Default.aspxRo
5、w 1:处理该文件所需信息,其中几个关键:language:C#Codebehind:对应的后置文件AutoEventWireup=“false”:由IDE自动生成事件代理Inherits:继承后置文件的类,代码分析HTML 代码,Row 3:文档类型说明Row 5-最后:都是常见的标准 HTML 标记但是对于我们添加到页面的控件,其标记都是 的形式。该标记表明使用的是 ASP 控件其实我们仍然可以在页面中使用标准的 HTML 页面元素。试一下:在工具箱中展开 HTML 项,拖一个文本框到页面中,再看看代码的变化。,代码分析HTML 代码,另外你会发现,ASP 控件中都有一句 runat=“s
6、erver”,表明这些控件是在服务器端执行的。实际上,每一个 ASP.NET 控件都对应一个 HTML 元素(控件),具体对应什么类型的控件取决于浏览器和 web 控件参数的设置当服务器返回页面到客户端时,发送回来的都是 HTML 元素。,代码分析后置代码,名字空间System.Web:管理客户请求和服务器响应的类System.Web.UI:创建 web 应用和控件的所需的类System.Web.UI.WebControls:web 控件System.Web.UI.HtmlControls:HTML控件,代码分析后置代码,执行过程首先发生 init 事件,调用 OnInit 方法OnInit
7、方法调用 InitializeComponent 方法对组件进行初始化然后发生 Load 事件,调用 Page_Load 方法,可在该方法中添加代码,处理装入 Form 时执行的操作注意:每次加载此页都会执行该代码,如果想只在第一次加载时执行代码,需要添加控制代码(后面介绍),ASP.NET 应用程序和网站的区别,新建一个网站项目的时候,有两个选择:新建网站和新建 A Web应用程序。它们都可以用来开发 Web 应用,但是开发时及今后的维护方面有一些差异。简单看,小型应用用网站方式比较简单,大型项目用 Web 应用程序较好。新建网站:完成后可直接发布,发布时生成的DLL文件名是随机的,不与原文
8、件直接对应。使用增量编译模式,文件被修改后,只有这部分才会被增量编译进去。,ASP.NET 应用程序和网站的区别,Web应用程序:有重新生成和发布两项 可在其中添加多个项目,便于团队合作开发模式和 Windows 应用程序类似发布前需要编译后台代码有任何修改,都要重新进行编译,维护较麻烦。,6.Web 控件与 HTML 控件,Web控件是 System.Web.UI.WebControls 名称空间中定义的服务器控件,它们通常在标签中添加例如:HTML控件在 System.Web.UI.HtmlControls名称空间中,它们在常规的 HTML 标签中添加。例如:HTML 控件默认是客户端运行
9、。如果为它也加一句 runat=“server”会怎样?可以看看自动生成的代码是否有变化?,Web 与 HTML 控件的差异,HTML 控件:不具备任何抽象能力。每种控件与 HTML 标记都是一一对应的。Web控件:运行在Web服务器上,允许通过编程控制这些网页元素,故它的目标模型不受 HTML 语法的限制。Web 控件创建了更高级别的抽象,可以没有任何对应的 HTML 标记(如 Calendar 和 DataGrid 控件)。Web 控件还能够在适当的场合起到合并功能的作用(例如用一个 TextBox 控件来代替多个HTML标记),(1)抽象能力,(2)对目标浏览器的适应能力,HTML 控件
10、不会自动检测请求页面的浏览器的能力,也不会修改它们提供的 HTML。在使用这组控件时,你要负责确保页面能同时在高级和低级浏览器上工作。Web 控件能够自动对它们生成的结果进行调整,以确保输出结果在高级浏览器和低级浏览器上的工作同样出色。Web 控件还能够针对不同的浏览器提供不同的行为,从而充分发挥浏览器的潜力。,(3)程序员对生成的 HTML 的控制能力,HTML 控件允许您完全控制所显示的内容以及发送到客户机浏览器的内容。Web 控件提供了更为丰富的对象模型,以及适应多种浏览器的能力。因而,它们没有提供对输出结果的相同程度的控制能力。,在开发 Web 应用程序时,可以根据这两组控件的能力以及
11、您的需求来从中进行选择。还可以选择在同一页上混合使用这两组控件一般来说,Web控件功能更强大,而HTML控件效率更好。同时提供具有一些重复功能的 HTML 控件和 Web 控件是有必要的,它给了程序员更多的选择余地。在初学阶段,我们对 HTML 又不太熟,尽量用 Web 控件,因为它与 WINDOWS 窗体编程的感觉更一致一些。,7、ASP.NET 编程的一些重要问题,网络协议:可分为面向连接的和非连接的面向连接的网络(如电话)是点到点通信最理想的方式优点:建立连接后,可以保持带宽,而且安全性好。缺点是它的复杂性,成本高昂。非面向连接的网络(如信件)的代表是因特网因特网是构建在 TCP/IP
12、协议上的,而 HTTP是基于 TCP/IP 的应用层协议,是非连接的。优点:成本低廉,其规模的可扩展性。缺点:不能保证信息安全送达,7.1 保持页面状态,HTTP 协议的固有特性,给B/S(浏览器/服务器)结构的 WEB 编程带来很大麻烦页面无法保持自已的状态。既每当同一个页面往返一次服务器(比如刷新页面、提交表单、激发事件),服务器不记得同一页面的状态变化。当你输入信息并“提交”,输入信息通过表单的 GET 或 POST 方式传到服务器。当提交完返回这个页面时,输入的信息看不到了,因为同一个页面往返了一次服务器,服务器不记得同一页面的两次状态变化。,解决的办法,过去通过写 Script 代码
13、去维持页面状态变化,利用 Cookies,ASP 的 Session 对象等也可以实现,但很麻烦。如果一个页面有数十个状态要保持,工作量很大。ASP.NET 用简单的方法解决了这个问题,但效率倍受质疑。,WiewState 对象,是 ASP.NET 中用来保存 WEB 控件回传时状态值的一种机制。在 WEB 窗体的设置为 runat=“server”时,这个窗体会被附加一个隐藏的属性 _VIEWSTATE在浏览器上看到的表单隐藏域 hidden 就是WEB 窗体在客户端 HTML 的映射。_VIEWSTATE中存放了控件在 ViewState 中的状态值。,ViewState 是类 Contr
14、ol 中的一个域,其他控件通过继承Control来获得 ViewState 功能。它的类型是 system.Web.UI.StateBag,一个名称/值的对象集合。当请求某个页面时,ASP.NET 把所有控件的状态序列化成一个字符串,然后做为窗体的隐藏属性送到客户端。当客户端把页面回传时,ASP.NET 分析回传的窗体属性,并赋给控件对应的值。,使用 ViewState 的条件,这些条件都是系统默认的:要使用 ViewState,在 ASPX 的 HTML视图中必须有一个服务器端窗体标记。Page 的 EnableViewState 属性值为true控件的 EnableViewState 属性
15、值为 true,应注意的问题,使用 WiewState 保持页面状态不需你写代码。但是 WiewState 使用不当会造成严重的性能问题在复杂的页面里,尤其是涉及到数据库访问时,WiewState 隐藏域 hidden 的数据可能会有几十K甚至上百K,这么大的数据量往返传递,肯定会造成性能问题。对不需要保持状态的控件,应将 EnableViewState 属性值设为 false。,7.2 页面的 post 与 get 提交方式,有post 与 get 两种方式将客户端提交到服务器理论上说,GET 是从服务器上请求数据,POST 是发送数据到服务器。GET 方法是把数据参数队列加到一个URL上,
16、值和表单是一一对应的,但有大小限制。因为这一队列在 URL 里,这样参数就能看到,可以被记录下来或更改。POST 方法可以传递大量数据到服务器,用户在浏览器端看不到这一过程。,应注意的问题,区别:Post 允许传输大量数据,而 Get 传送的数据量会受到限制,但效率却比 Post 方法好。建议:1、get 方式的安全性较 Post 方式差,包含机密信息的话,建议用 Post 数据提交方式;2、做数据查询时,可用 Get 方式;而做数据添加、修改或删除时,建议用 Post 方式;Form 默认的提交方式为 GET,通过属性 method=“post”可以进行修改。,7.3 页面跳转,WEB 页面
17、最大特点是有超连接,可以从一个网页转到另一个网页。ASP.NET 实现超连接的方法很多。常用的有三种:1、使用 HyperLink 控件2、使用按钮的 PostBackUrl 属性3、使用 Response 对象的 Redirect 方法。,HyperLink 控件,超链接,最简单的跳转方式只要将其 NavigateUrl 属性设为目标页面即可。例如:NavigateUrl=/WebForm1.aspx缺点:目标页面无法获取源页面的数据,使用按钮 PostBackUrl 属性,当为一个按钮设置 PostBackUrl 属性,将其指向目标页面,点击按钮时就会跳转该方法目标页面通过 Page.Pr
18、eviousPage对象,可以获得源页面控件目标页面通过 PreviousPage 属性获取数据时,需要在页面(源)添加代码:,Redirect 方法,Response 对象的 Redirect 方法也是常用的简单定向手段。当 Web 服务器接到一个重定向请求后,会将一个响应头送给客户端,这将导致客户端发送一个新的请求到服务器。换句话说,一个重定向请求实际上是两个请求响应:一个是最初的请求响应,另一个是新的重定向请求响应。,Redirect 方法,要注意的是该方法是一个 GET 请求,这就意味着我们不能从源页面中通过重定向命令提交数据。但是我们可以在重定向中使用查询字符串来传递数据。例如下面代
19、码:Response.Redirect(menu.aspx?userName=+UserName.Text);补充例题:WebTest,演示页面跳转及传参,7.4 几个重要的内置对象,从初始的 ASP 开始,就内置了一些对象,主要有:Response、Request、Session、Application、WiewState 等这些对象在 ASP.NET 中都保留下来了,这些对象都是内置对象,不需实例化(new操作符)就可以使用。书中 P300 表 13-4 给出了这些对象的简单说明。,7.4.1 Response 对象,用于向客户端发送信息,常用方法有:1)Response.Write方法:
20、用于将字符、字符串、字符数组写入 HTTP 输出内容流。例如:Response.Write(this is a test.);2)Response.WriteFile方法:用于将指定的文件写入HTTP输出内容流。例如:Response.WriteFile(test.txt);3)Response.Redirect方法:用于将客户端重定向到新的URL。例如:Response.Redirect(test.aspx);,7.4.2 Request 对象,获取请求页面的 HttpRequest 对象。该对象使 服务器能获取客户端在 Web 请求期间发送的 HTTP 信息。例如:Request.Brow
21、ser.Platform:客户端使用的操作系统 Request.Browser.Type:客户端使用的浏览器类型 Request.UserHostAddress:客户端IP地址,7.4.3 Application 对象,是一个应用程序级的对象,它包含的数据可以在整个 Web 站点中被所有用户使用,在网站运行期间持久地保存数据。可以利用 Application 对象可以定义类似于所有用户公用的全局变量。对Application 对象进行操作时,需要先进行锁定,操作完成后再解除锁定。例如:Application.Lock();Applicationcounter=(int)Applicationc
22、ounter+1;Application.UnLock();,7.4.4 Session 对象,用来区分不同的浏览器客户。当不同的浏览器访问服务器时,服务器会分别为其分配一段内存空间用于保存不同用户的数据信息,即每一个客户都有自己的 Session。定义与使用Session的方法:Sessiononline=true;Sessioncounter=(int)Sessioncounter+1;,7.5 Page 事件处理函数,Page 类相当于WINDOWS窗体的Form类,是WEB页面的基类,它的主要事件有:Page_Init:页面初始化引发的事件 Page_Load:加载页面时引发的事件Pa
23、ge_UnLoad:页面从内存中卸载时引发Page_Init 和 Page_Load 事件区别在于:只有后者才能完全加载控件,绑定数据。,Page_Load 事件,每当建立一个 ASP.NET WEB 程序,IDE 都会自动写一个 Page_Load 事件处理函数:protected void Page_Load(object sender,System.EventArgs e)把每次加载页面时都需要执行的一些网页的初始化代码放在这里是最合适的。如一些控件的数据绑定。但是,每次当页面被发送回服务器,Page 就会被重新加载,启动 Page_Load 事件,执行Page_Load 事件处理程序中
24、的所有代码。,如果希望只在网页第一次加载时执行一些代码,我们可以利用 Page 类的 IsPostBack 属性来完成这一功能。在网页第一次加载时,该属性的值是 false。如果网页因回送而被重新加载,IsPostBack属性的值为 true。可在 Page_Load 用以下初始化页面的代码:if(!Page.IsPostBack).,7.6 控件的事件,WEB 控件的属性窗口有闪电(事件)图标,可以在此给 WEB 控件建一个事件处理函数。但是 HTML 控件的属性窗口没有闪电(事件)图标,把它设为服务器执行,则双击控件,可建一个 onclick 事件处理函数,可在此方法中写 javascri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WEB 服务器

链接地址:https://www.desk33.com/p-245774.html