C网络编程及应用教学课件作者刘瑞新第08章节ASP.NETWeb应用程序开发

上传人:E**** 文档编号:91226447 上传时间:2019-06-26 格式:PPT 页数:71 大小:268KB
返回 下载 相关 举报
C网络编程及应用教学课件作者刘瑞新第08章节ASP.NETWeb应用程序开发_第1页
第1页 / 共71页
C网络编程及应用教学课件作者刘瑞新第08章节ASP.NETWeb应用程序开发_第2页
第2页 / 共71页
C网络编程及应用教学课件作者刘瑞新第08章节ASP.NETWeb应用程序开发_第3页
第3页 / 共71页
C网络编程及应用教学课件作者刘瑞新第08章节ASP.NETWeb应用程序开发_第4页
第4页 / 共71页
C网络编程及应用教学课件作者刘瑞新第08章节ASP.NETWeb应用程序开发_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《C网络编程及应用教学课件作者刘瑞新第08章节ASP.NETWeb应用程序开发》由会员分享,可在线阅读,更多相关《C网络编程及应用教学课件作者刘瑞新第08章节ASP.NETWeb应用程序开发(71页珍藏版)》请在金锄头文库上搜索。

1、第八章 ASP.NET Web应用程序开发,8.1 Response 与 Request 8.2 Application与Session 8.3 理解Global.asax 8.4 使用 Web 用户控件 8.5 统计网站在线人数 8.6 统计用户登录次数 8.7 上传文件 8.8 发布即时信息,8.9 Web应用程序综合举例 8.9.1 主页 8.9.2 用户注册 8.9.3 信息浏览 8.9.4 文章搜索 8.9.5 在线论坛,8.1 Response 与 Request对象,一、Response对象 Response对象用于向客户端发送信息,该对象提供了 很多有用的属性和方法,常用有:

2、Response.Write()方法 将字符、字符串、字符数组写入 HTTP 输出内容流。 例如: Response.Write(“this is a test.“); Response.WriteFile()方法 将指定的文件写入HTTP 输出内容流。 例如: Response.WriteFile(“test.txt“); Response.Redirect()方法 将客户端重定向到新的URL。 例如:Response.Redirect(“test.aspx”);,二、Request对象 Request对象用于获取客户端的信息,该对象包含的 信息非常多。 例:使用Request对象显示客户信

3、息。 private void Page_Load(object sender, System.EventArgs e) / 在此处放置用户代码以初始化页面 Response.Write(“服务器端应用程序所在虚拟路径为: “ +Request.ApplicationPath+“); Response.Write(“当前客户使用的操作系统为: “ +Request.Browser.Platform+“); Response.Write(“当前客户使用的浏览器为:“ +Request.Browser.Type+“.“ +Request.Browser.MinorVersion+“); Respo

4、nse.Write(“当前客户的IP地址为: “ +Request.UserHostAddress+“); ,一、Application对象 1.默认情况下,一个虚拟目录下的所有ASP.NET文件构 成一个Web应用程序。 2.使用Application对象就相当于使用全局变量。 3.Application对象是同一个虚拟目录下的所有.aspx 文件共有的,所以对其进行操作时,需要先进行锁定,操 作完成后再解除锁定。 例如: Application.Lock(); Application“counter“=(int)Application“counter“+1; Application.UnL

5、ock();,8.2 Application与Session,二、Session对象 如何区分不同的浏览器客户呢? 可以通过Session对象实现,当不同的浏览器客户访问 服务器应用程序时,服务器会分别为其分配一段内存空间 用于保存不同用户的数据信息,即每一个客户都有自己的 Session。 定义与使用Session的方法也很简单。 例如: Session“online“=true;,8.3 理解Global.asax,每一个Web应用程序对应Web站点下的一个虚拟目录, 每一个虚拟目录都可以有一个Global.asax文件。在 Global.asax文件中有一些特定的事件很有用,下面我们按

6、照事件触发顺序列出常用的几个事件:,Application_Start 第1个客户首次请求页面时触发。 Session_Start 每个客户首次请求页面时都触发。 Session_End 关闭应用程序或者每个客户在规定时间 内没有提出请求时触发。 Application_End 在关闭应用程序或者最后1个客户在 规定时间内没有提出请求时触发。,使用Web.config,保存用户配置信息调试信息、客户身份验证等。 保存与数据库连接字符串 (1)打开Web.config,找到 部分, 如果不存在,就在的上面加入 。 (2)在之间加入: (3)保存Web.config文件。 在代码中,如果使用该连接

7、字符串,可以用如下方法: String str= System.Configuration.ConfigurationSettings.AppSettings.Get(“connString“); SqlConnection conn=new SqlConnection(str);,让每一个页面都具有相同的布局,或者自己定义一些具有固定画面的控件,这时就需要使用 Web 用户控件。 Web 用户控件的文件扩展名为 .ascx,使用 Web 用户控件使您能够很容易地在多个 ASP.NET Web 应用程序之间划分和重复使用公共用户界面 (UI) 功能。 与 Web 窗体页一样,用户控件也是在第一

8、次请求时被编译并存储在服务器内存中,从而缩短以后请求的响应时间。但与 Web 窗体页不同的是,用户控件必须包括在 Web 窗体页内才能使用。,8.4 使用 Web 用户控件,举例说明: (1)创建一个ASP.NET Web应用程序,从工具箱中随便向 窗体拖放一些控件。 (2)选择“解决方案资源管理器” 鼠标右击项目名“添 加”“添加Web用户控件”,使用默认文件名 WebUserControl1.ascx。 (3)向WebUserControl1.ascx设计窗体中拖放一个HTML Grid layout Panel控件,设置边框属性为双线,调整为适当大 小,然后向HTML Grid layo

9、ut Panel内拖放一些控件。 (4)切换到WebForm1.aspx设计窗体,将 WebUserControl1.ascx从解决方案资源管理器中拖放到设计窗 体内。 (5)运行,观察结果。,原理:对A站点来说,第一次启动应用程序应该是第一个人访问这个 站点,这时可以利用Application_Start事件将计数器清零。然后利用 Session_Start事件将计数器加1,如果这个人在某个规定的时间内还没有 再访问A站点,就认为此人已经离线了。,8.5 统计网站在线人数,问题:在某一个时刻,A看到的在线人数和B看到的一样吗?,例如:A打开某个网页,显示在线人数是1,B紧接着也打开该网页,这

10、时B看到在线人数是2,但由于A的页面没有刷新,所以A看到的在线人数仍是1。 减少误差的方法:对页面定时刷新。如让页面刷新时间为60秒。 定时刷新页面的方法为:在HTML模式的中加入 其中刷新时间的单位为秒。,举例说明 (1)创建一个ASP.NET Web应用程序,向设计窗体拖放 一个Label控件。 (2)打开Global.asax,在下列事件中加入代码: protected void Application_Start(Object sender, EventArgs e) Application“counter“=0; protected void Session_Start(Object

11、 sender, EventArgs e) Application.Lock(); Application“counter“=(int)Application“counter“+1; Application.UnLock(); ,protected void Session_End(Object sender, EventArgs e) Application.Lock(); Application“counter“=(int)Application“counter“-1; Application.UnLock(); (3)在WebForm1.aspx.cs的Page_load中加入初始化代码

12、 private void Page_Load(object sender, System.EventArgs e) / 在此处放置用户代码以初始化页面 this.Label1.Text=“当前在线人数:“+Application“counter“; (4)切换到HTML模式,在中加入 (5) 运行,观察结果。,8.6 统计用户登录次数,下面的例子说明了实现统计登录次数的方法。 (1)新建一个ASP.NET Web应用程序,向设计窗 体拖放一个Label控件。 (2)在Global.asax.cs中添加名称空间引用: using System.IO; (3)在Global.asax.cs的相应

13、事件中添加处理代 码:,protected void Application_Start(Object sender, EventArgs e) string file=Server.MapPath(“UserCounter.txt“); if(File.Exists(file) StreamReader sr=File.OpenText(file); Application“userCounter“= Int32.Parse(sr.ReadLine(); sr.Close(); else Application“userCounter“=0; ,protected void Session_

14、Start(Object sender, EventArgs e) Application.Lock(); Application“userCounter“=(int)Application“userCounter“+1; StreamWriter sw= File.CreateText(Server.MapPath(“UserCounter.txt“); sw.WriteLine(int)Application“userCounter“); sw.Close(); Application.UnLock(); (4) 在WebForm1.aspx.cs中加入初始化代码。 private voi

15、d Page_Load(object sender, System.EventArgs e) this.Label1.Text=string.Format(“您是第0位登录者!” , Application“userCounter“); (5)运行,观察结果。,思考: (1) 登录页面后,点击“刷新”,登录次数会加1吗? 为什么? (2) 某人登录后,转去干别的事情了,等20分钟后, 此人又重新登录该页面,这时登录次数加1吗?为什么? (3)本例子中只是在Session_Start事件中处理登录次 数,这种方法适用于统计整个网站用户登录情况,如果要 统计每一个网页的登录情况,如何实现?,在AS

16、P.NET中,可以使用File Field控件实现文件上传 功能,下面举例说明具体用法: (1)向设计窗体拖放一个HTML的File Field控件,一个 Web窗体的Button控件。 (2)选中窗体的File Field控件,单击鼠标右键,选择 “作为服务器控件运行”。 (3)切换到HTML视图,在中添加 enctype=“multipart/form-data“,比如: (4)添加Button控件的Click响应事件,8.7 上传文件,private void Button1_Click(object sender, System.EventArgs e) try string str=this.File1.PostedFile.FileName; if(str.LastIndexOf(“)-1) str=str.Substring(str.LastInd

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号