28
第7第网网网网网网网网网3

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

  • Upload
    dixie

  • View
    134

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

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

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

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

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

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

Session 对象 什么是 Sessions ? Session 其实指的就是访

问者从到达某个特定主页到离开为止的那段时间,每个访问者都会单独获得一个 Session 。

Sessions 可以用来储存访问者的一些喜好,例如:访问者是喜好绿色背景还是蓝色?访问者是否对分屏方式怀有敌意。以及访问者是否宁可浏览纯文本的站点,这些信息可以依据Sessions 来跟踪。

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

对 Session 的理解 Session 自动为每一位用户分配一个 ID

源程序: 7-16.aspx<% @ Page Language="VB" %><HTML><BODY><br> 你的自动编号为: <%=Session.SessionID%></BODY></HTML>

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

Session 的自定义属性保存信息

源程序: 7-17.aspx<% @ Page Language="VB" %><HTML><HEAD><TITLE>Session 示例 </TITLE></HEAD><BODY><%Session("Greeting")=" 欢迎 !"Response.Write(Session("Greeting"))%></BODY></HTML>

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

Session 事件 和其他对象不同的是, Session 对象中有事件

( Event )。

一共两种: Session_OnStart 事件,当一个Session 开始时被触发。还有Session_OnEnd 事件,当一个 Session 结束时被触发。

在一个脚本中你可以和其中一个并且只能和其中一个事件关联。我们在 Global.asax 文件中讲解。

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

利用 Session 实现密码验证

当用户注册时,就将其信息保存到 Session 中,然后再在每个页面中检查这样的话可以防止非法用户浏览网页。

源程序: session1.aspx<% @ Page Language="VB" %><HTML><HEAD><TITLE> 用户名 </TITLE></HEAD><BODY><%Session("name1")="ShiZhiGuo"Session("Mycompany")="jennyJiangli"%></BODY></HTML>

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

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

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

利用 Session 实现购物车 源程序: session3.aspx<% @ Page Language="VB" %><HTML><HEAD><TITLE> 用户名 </TITLE></HEAD><BODY><%if(Request("B1")=" 提交 ") thenSession("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>

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

利用 Session 实现购物车源程序: session4.aspx<% @ Page Language="VB" %><HTML><HEAD><TITLE> 用户名 </TITLE></HEAD><BODY><%if(Request("x1") =" 提交 ") thenSession("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>

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

利用 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>

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

界面显示

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

Cookie 集合 Cookies 将通过 HTTP Headers 来从服

务端返回到浏览器上。

服务端首先在响应中利用 Set-Cookie header 来创建一个 Cookie ,浏览器后面的请求的 cookie header 中就会返回这个 Cookie 来完成浏览器的认证。

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

向浏览器输出 Cookie

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

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

从浏览器读取 Cookie

源程序: 7-19.asp<% @ Page Language="VB" debug="true"%><%dim mycook=Request.Cookies("user").ValueResponse.Write(mycook)Response.Write("<br>")%>读出 Cookies

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

G lobal.asax 配置文件 Global.asax 文件(也叫做 ASP.NET 应用程序文

件)是一个可选的文件,该文件包含响应 ASP.NET 或 HTTP 模块引发的应用程序级别事件的代码。

Global.asax 文件驻留在基于 ASP.NET 的应用程序的根目录中。

在运行时,分析 Global.asax 文件并将其编译到一个动态生成的 .NET 框架类,该类是从 HttpApplication 基类派生的。配置 Global.asax 文件自身,以便自动拒绝对该文件的任何直接 URL 请求;外部用户不能下载或查看在其中编写的代码。

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

利用 Global.asax 文件实现动态在线人数统计 当网站被第一个人访问时就会自动调用

Global.asax 文件,但是需要注意的是:Global.asax 文件必须放在网站的根目录下。

案例名称:在线人数统计主文件源程序: countonline.aspx<% @ Page Language="VB" %><%Response.Write( " 现在有 " & Application("whoson") & "人在线 ")%>

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

人数统计 Global.asax 文件案例名称:在线人数统计 Global.asax 文件源程序: global.asax<Script language="VB" runat="server">Sub Session_OnStart() Application.Lock()

Application("whoson")=Convert.ToInt32(Application("whoson"))+1Application.UnLock()

End Sub Sub Session_OnEnd() Application.Lock()

Application("whoson")=Convert.ToInt32(Application("whoson"))-1Application.UnLock()

End Sub Sub Application_OnStart() Application.Lock()

Application("whosOn")=0Application.UnLock()

End Sub</script>

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

ASP.NET 运行配置文件 利用基于 XML 的配置文件,可以很容易地定制

ASP.NET 。通过在文本编辑器中编辑文件,这些文件可以用来配置 ASP.NET 中的任何组件。

两种类型的配置文件: 机器的配置文件 machine.config—— 用以机器范围内的设置 应用程序配置文件 web.config—— 用以应用程序特定的设置

一般machine.config 文件可以从下面的位置找到:

%SystemRoot%\Microsoft.NET\Framework\V版本号 \CONFIG\machine.config

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

配置文件特点 初始化页面时,会先读取 machine.config 中的信息。

如果读完了, ASP.NET 就会进入下一个层次的级中,读取存储在 web 应用程序根目录中的 web.config 文件。

这些文件提供了其他的配置信息,来扩充或覆盖继承自machine.config 的设置。

然后, ASP.NET 会继续进入下一级,读取存储在应用程序的根目录下的子目录中的 web.config 文件。这些文件可以用来扩充或覆盖在 machine.config 中或者在web.config 根文件中给出的信息。

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

配置文件结构 这部分的配置文件包含了通常的应用程序配置的设

置,比如超时、请求最大长度以及在重定向页面时候是否使用完全限制的 URL ,都包含在<httpRuntime>标记中,配置的语法为:

<httpRuntime executionTimeout="180" maxRequestLength="8192"

在 ASP.NET 取消请求之前, executionTimeout控制资源执行的时间,以秒为单位, 90秒是默认值。maxRequestLength 指定请求的最大长度, 4MB是默认值。如果请求内容大于 4M 就需要增加这个值。

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

页面配置 页面设置可以控制 ASP.NET 页面的默认行为,比如在

发送它之前是否要缓冲输出,或者是否可以在应用程序的页面使用会话状态。信息保存在配置文件的<pages>元素中。

语法为: <pages buffer="true" enableSessionState="true"/>

buffer表明代码执行的处理模式。当它设置为 true 的时候,会在呈现页面中任何 HTML数据之前执行所有的代码。 enableSessionState表明是否可以使用服务器的会话变量。默认为 true ,就是可以使用

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

利用 ASP.NET 读取配置文件

将上面的配置文件,保存成一个文件,命名为 web.config ,和下面的readconfig.aspx 保存到同一个目录中。

案例名称:配置文件源程序: web.config<configuration><appSettings><add key="DSN" value="server=xueweimin;uid=sa;pwd=;database=pubs"/></appSettings></configuration>

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

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

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

习 题 1 、 _______ ,也叫做 ASP.NET 应用程序

文件,在网站的根目录中,该文件是可选的,可以不定义该文件。

2 、 ASP.NET 提供两种类型的配置文件:、______________—— 用以机器范围内的设置 , , ______________—— 用以应用程序特定的设置

Global.asax 文件 机器的配置文件machine.config 应用程序配置文件web.config

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

选择题 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 ,就是可以使用

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

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