1 / 28

第 7 章 网站应用架构和配置( 3 )

第 7 章 网站应用架构和配置( 3 ). 1. 7. 内容回顾. Application 对象的理解 Application 对象的自定义属性 使用 Application 事件 对 Server 对象的理解. 内容提要. 对 Session 的理解 利用 Session 的自定义属性保存信息 Cookie 是怎样工作的 向浏览器输出 Cookie G lobal.asax 配置文件 ASP.NET 运行配置文件. Session 对象.

dixie
Download Presentation

第 7 章 网站应用架构和配置( 3 )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第7章网站应用架构和配置(3) 1 7

  2. 内容回顾 • Application对象的理解 • Application对象的自定义属性 • 使用Application事件 • 对Server对象的理解

  3. 内容提要 • 对Session的理解 • 利用Session的自定义属性保存信息 • Cookie是怎样工作的 • 向浏览器输出Cookie • Global.asax配置文件 • ASP.NET运行配置文件

  4. Session对象 • 什么是Sessions?Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间,每个访问者都会单独获得一个Session。 • Sessions可以用来储存访问者的一些喜好,例如:访问者是喜好绿色背景还是蓝色?访问者是否对分屏方式怀有敌意。以及访问者是否宁可浏览纯文本的站点,这些信息可以依据Sessions来跟踪。

  5. 对Session的理解 • Session自动为每一位用户分配一个ID 源程序:7-16.aspx <% @ Page Language="VB" %> <HTML> <BODY> <br>你的自动编号为:<%=Session.SessionID%> </BODY> </HTML>

  6. Session的自定义属性保存信息 源程序:7-17.aspx <% @ Page Language="VB" %> <HTML> <HEAD><TITLE>Session示例</TITLE></HEAD> <BODY> <% Session("Greeting")="欢迎!" Response.Write(Session("Greeting")) %> </BODY> </HTML>

  7. Session事件 • 和其他对象不同的是,Session对象中有事件(Event)。 • 一共两种:Session_OnStart事件,当一个Session开始时被触发。还有Session_OnEnd事件,当一个Session结束时被触发。 • 在一个脚本中你可以和其中一个并且只能和其中一个事件关联。我们在Global.asax文件中讲解。

  8. 利用Session 实现密码验证 源程序:session1.aspx <% @ Page Language="VB" %> <HTML> <HEAD><TITLE>用户名</TITLE></HEAD> <BODY> <% Session("name1")="ShiZhiGuo" Session("Mycompany")="jennyJiangli" %> </BODY> </HTML> • 当用户注册时,就将其信息保存到Session中,然后再在每个页面中检查这样的话可以防止非法用户浏览网页。

  9. 检查用户是否合法 源程序:session2.aspx <% @ Page Language="VB" %> <HTML> <HEAD><TITLE>用户名</TITLE></HEAD> <BODY> <% if (Session("name1")="ShiZhiGuo") then Response.Write("你是一位合法用户") else Response.Write ("不合法用户") End If %> </BODY> </HTML>

  10. 利用Session 实现购物车 源程序:session3.aspx <% @ Page Language="VB" %> <HTML> <HEAD><TITLE>用户名</TITLE></HEAD> <BODY> <% if(Request("B1")="提交") then Session("s1")=Request("c1") Session("s2")=Request("c2") Session("s3")=Request("c3") End if %> 各种肉大甩卖,一律十块: <form method="POST" action="session3.aspx"> <p></p> <p><input type="checkbox" name="c1" value="猪肉">猪肉</p> <p><input type="checkbox" name="c2" value="牛肉">牛肉</p> <p><input type="checkbox" name="c3" value="羊肉">羊肉</p> <p><input type="submit" value="提交" name="B1"> <input type="reset" value="全部重写" name="B2"> <a href="session4.aspx">买点别的</a> <a href="session5.aspx">查看购物车</a> </p> </form> </BODY>

  11. 利用Session 实现购物车 源程序:session4.aspx <% @ Page Language="VB" %> <HTML> <HEAD><TITLE>用户名</TITLE></HEAD> <BODY> <% if(Request("x1") ="提交") then Session("s4")=Request("b1") Session("s5")=Request("b2") Session("s6")=Request("b3") End If %> 各种球大甩卖,一律八块: <form method="POST" action="session4.aspx"> <p></p> <p><input type="checkbox" name="b1" value="篮球">篮球</p> <p><input type="checkbox" name="b2" value="足球">足球</p> <p><input type="checkbox" name="b3" value="排球">排球</p> <p><input type="submit" value="提交" name="x1"> <input type="reset" value="全部重写" name="B2"> <a href="session3.aspx">买点别的</a> <a href="session5.aspx">查看购物车</a> </p> </form> </BODY> </HTML>

  12. 利用Session 实现购物车 源程序:session5.aspx <% @ Page Language="VB" %> <HTML> <HEAD><TITLE>用户名</TITLE></HEAD> <BODY> 你选择的结果是: <div align="center"> <center> <% Response.Write(Session("s1") & "<br>") Response.Write(Session("s2") & "<br>") Response.Write(Session("s3") & "<br>") Response.Write(Session("s4") & "<br>") Response.Write(Session("s5") & "<br>") Response.Write(Session("s6") & "<br>") %> </center> </div>

  13. 界面显示

  14. Cookie集合 • Cookies将通过HTTP Headers来从服务端返回到浏览器上。 • 服务端首先在响应中利用Set-Cookie header来创建一个Cookie,浏览器后面的请求的cookie header中就会返回这个Cookie来完成浏览器的认证。

  15. 向浏览器输出Cookie 源程序:7-18.aspx <% @ Page Language="VB" %> <% dim MyCookie as new HttpCookie("user") MyCookie.Value = "春天真舒服!" Response.Cookies.Add(MyCookie) %> 写入Cookies

  16. 从浏览器读取Cookie 源程序:7-19.asp <% @ Page Language="VB" debug="true"%> <% dim mycook=Request.Cookies("user").Value Response.Write(mycook) Response.Write("<br>") %> 读出Cookies

  17. Global.asax配置文件 • Global.asax 文件(也叫做 ASP.NET 应用程序文件)是一个可选的文件,该文件包含响应 ASP.NET 或 HTTP 模块引发的应用程序级别事件的代码。 • Global.asax 文件驻留在基于 ASP.NET 的应用程序的根目录中。 • 在运行时,分析 Global.asax 文件并将其编译到一个动态生成的 .NET 框架类,该类是从 HttpApplication 基类派生的。配置 Global.asax 文件自身,以便自动拒绝对该文件的任何直接 URL 请求;外部用户不能下载或查看在其中编写的代码。

  18. 利用Global.asax文件实现动态在线人数统计 • 当网站被第一个人访问时就会自动调用Global.asax 文件,但是需要注意的是:Global.asax文件必须放在网站的根目录下。 案例名称:在线人数统计主文件 源程序:countonline.aspx <% @ Page Language="VB" %> <%Response.Write( "现在有" & Application("whoson") & "人在线")%>

  19. 人数统计Global.asax文件 案例名称:在线人数统计Global.asax文件 源程序:global.asax <Script language="VB" runat="server"> Sub Session_OnStart() Application.Lock() Application("whoson")=Convert.ToInt32(Application("whoson"))+1 Application.UnLock() End Sub Sub Session_OnEnd() Application.Lock() Application("whoson")=Convert.ToInt32(Application("whoson"))-1 Application.UnLock() End Sub Sub Application_OnStart() Application.Lock() Application("whosOn")=0 Application.UnLock() End Sub </script>

  20. ASP.NET运行配置文件 • 利用基于XML的配置文件,可以很容易地定制ASP.NET。通过在文本编辑器中编辑文件,这些文件可以用来配置ASP.NET中的任何组件。 • 两种类型的配置文件: • 机器的配置文件machine.config——用以机器范围内的设置 • 应用程序配置文件web.config——用以应用程序特定的设置 • 一般machine.config文件可以从下面的位置找到: • %SystemRoot%\Microsoft.NET\Framework\V版本号\CONFIG\machine.config

  21. 配置文件特点 • 初始化页面时,会先读取machine.config中的信息。如果读完了,ASP.NET就会进入下一个层次的级中,读取存储在web应用程序根目录中的web.config文件。 • 这些文件提供了其他的配置信息,来扩充或覆盖继承自machine.config的设置。 • 然后,ASP.NET会继续进入下一级,读取存储在应用程序的根目录下的子目录中的web.config文件。这些文件可以用来扩充或覆盖在machine.config中或者在web.config根文件中给出的信息。

  22. 配置文件结构 • 这部分的配置文件包含了通常的应用程序配置的设置,比如超时、请求最大长度以及在重定向页面时候是否使用完全限制的URL,都包含在<httpRuntime>标记中,配置的语法为: • <httpRuntime executionTimeout="180" maxRequestLength="8192" • 在ASP.NET取消请求之前,executionTimeout控制资源执行的时间,以秒为单位,90秒是默认值。maxRequestLength指定请求的最大长度,4MB是默认值。如果请求内容大于4M就需要增加这个值。

  23. 页面配置 • 页面设置可以控制ASP.NET页面的默认行为,比如在发送它之前是否要缓冲输出,或者是否可以在应用程序的页面使用会话状态。信息保存在配置文件的<pages>元素中。 • 语法为: • <pages buffer="true" enableSessionState="true"/> • buffer表明代码执行的处理模式。当它设置为true的时候,会在呈现页面中任何HTML数据之前执行所有的代码。enableSessionState表明是否可以使用服务器的会话变量。默认为true,就是可以使用

  24. 利用ASP.NET读取配置文件 • 将上面的配置文件,保存成一个文件,命名为web.config,和下面的readconfig.aspx保存到同一个目录中。 案例名称:配置文件 源程序:web.config <configuration> <appSettings> <add key="DSN" value="server=xueweimin;uid=sa;pwd=;database=pubs"/> </appSettings> </configuration>

  25. 读取配置文件 案例名称:读取配置文件 源程序:readconfig.aspx <% @ Page Language="VB" %> <% dim strData=ConfigurationSettings.AppSettings("DSN") Response.Write(strData) %>

  26. 习 题 • 1、_______,也叫做ASP.NET应用程序文件,在网站的根目录中,该文件是可选的,可以不定义该文件。 • 2、ASP.NET提供两种类型的配置文件:、______________——用以机器范围内的设置,,______________——用以应用程序特定的设置 • Global.asax文件 机器的配置文件machine.config 应用程序配置文件web.config

  27. 选择题 • 1、下面哪些语句可以写在global.asax文件中( AB ) • A Application_OnStart B Application_OnEnd • C Response.Write() D <body>标记 • 2、下面的说法中,正确的是( ABCD ) • A Global.asax文件中必须用<SCRIPT>标记来引用事件,不能用“<% %>”符号引用 • B初始化页面时,首先读取machine.config中的信息,然后读取存储在web应用程序根目录中的web.config文件,接着ASP.NET继续进入下一级,读取存储在应用程序根目录下的子目录中的web.config文件。 • C在ASP.NET取消请求之前,executionTimeout控制资源执行的时间,以秒为单位,90秒是默认值。 • D enableSessionState表明是否可以使用服务器的会话变量。默认为true,就是可以使用

  28. 本章总结 • 对Session的理解 • 利用Session的自定义属性保存信息 • Cookie是怎样工作的 • 向浏览器输出Cookie • Global.asax配置文件 • ASP.NET运行配置文件

More Related