目录

  • 1 项目一 了解ASP.NET与Visual Studio 2015
    • 1.1 任务一 设计“Hello  World”
    • 1.2 任务二 ASP.NET程序构成与处理过程
    • 1.3 任务三 ASP.NET Web 常用控件
  • 2 项目二 HTML网页编程基础
    • 2.1 任务一 使用HTML语言来制作网页
    • 2.2 任务二 在网页中应用JavaScript
    • 2.3 任务三 使用样式表(CSS)来美化网页
  • 3 项目三 母版、主题及外观
    • 3.1 任务一 Master页面的创建与使用
      • 3.1.1 案例一 创建某新闻网站
    • 3.2 任务二 创建自己的网站主题和外观
      • 3.2.1 案例一 根据素材创建网站主题
    • 3.3 任务三 在程序中创建多个主题并实现主题切换
      • 3.3.1 案例一 创建多个主题并实现
  • 4 项目四 应用验证控件
    • 4.1 任务一 完成注册界面的设计
      • 4.1.1 案例一 制作提交内容必填的注册页面
      • 4.1.2 案例二 利用比较验证控件来制作注册页面
      • 4.1.3 案例三 利用范围验证控件来制作数值录入页面
      • 4.1.4 案例四 用户名邮箱格式验证
      • 4.1.5 综合任务
  • 5 项目五 掌握ASP.NET数据库操作
    • 5.1 任务一 网站用户注册页面
      • 5.1.1 案例一 测试与SQLServer数据库建立连接
      • 5.1.2 案例二 实现用户注册页面的功能
      • 5.1.3 拓展任务一
      • 5.1.4 拓展任务解析
    • 5.2 任务二 使用Command执行数据库命令
      • 5.2.1 案例一 制作显示商品分类列表的页面
      • 5.2.2 案例二 制作简单用户登录页面
      • 5.2.3 拓展任务二
      • 5.2.4 拓展任务解析
    • 5.3 任务三 使用DataReader读取数据
      • 5.3.1 案例一 完成用户信息更新页面的制作
      • 5.3.2 拓展任务三
      • 5.3.3 拓展任务解析
    • 5.4 任务四 使用DataAdapter读写数据
      • 5.4.1 案例一 完成商品分类添加页面的制作
      • 5.4.2 案例二 完成商品分类导航窗体的制作
      • 5.4.3 拓展任务四
      • 5.4.4 拓展任务解析
    • 5.5 任务五 使用DataSet
      • 5.5.1 案例一 完成显示商品信息列表页面的制作
      • 5.5.2 案例二 制作一个显示商品名称列表的页面
      • 5.5.3 拓展任务五
      • 5.5.4 拓展任务解析
    • 5.6 任务六 使用DataList控件和GridView控件
      • 5.6.1 案例一  使用DataList控件制作显示最新上架商品主要信息的页面
      • 5.6.2 案例二 使用GridView控件制作数据列表
      • 5.6.3 拓展任务六
      • 5.6.4 拓展任务解析
    • 5.7 富文本编辑器的使用
    • 5.8 二级联动下拉框的使用
      • 5.8.1 二级联动提交
  • 6 项目六 XML、站点导航
    • 6.1 任务一 写入XML文件
      • 6.1.1 案例一 创建基于XML的留言本
    • 6.2 任务二 读取XML文件
      • 6.2.1 案例一 浏览留言本数据的XML文件
    • 6.3 任务三 SiteMapPath控件的使用
      • 6.3.1 案例一 创建基于SiteMapPath的门户网站导航
    • 6.4 任务四 Tree View控件的使用
      • 6.4.1 案例一 创建基于TreeView的分类导航
      • 6.4.2 案例二 编码配置TreeView控件
    • 6.5 任务五 Menu控件的使用
      • 6.5.1 案例一 制作校园网站导航菜单
  • 7 项目七 状态管理与安全管理
    • 7.1 任务一 使用多种方式进行状态管理
      • 7.1.1 案例一 使用Application统计网站的访问情况
      • 7.1.2 案例二 Session存储信息
      • 7.1.3 案例三 Cookie记录访问页面的次数
      • 7.1.4 案例四 使用ViewState保存用户单击按钮次数
    • 7.2 任务二 身份验证和授权
    • 7.3 任务三 根据数据库中的值进行验证和窗体身份验证
      • 7.3.1 案例一 数据库验证和窗体身份验证
    • 7.4 任务四 通过IIS进行保护站点
  • 8 项目八 WebService、模块与一般处理程序
    • 8.1 任务一 创建Web Service
      • 8.1.1 案例一 创建手机归属地查询
    • 8.2 任务二 调用Web Service
      • 8.2.1 案例一 调用服务查询手机归属地
    • 8.3 任务三 HttpHandle的使用
      • 8.3.1 案例一 实现页面验证码
      • 8.3.2 案例二 实现全站图片加水印
    • 8.4 任务四 HttpModule的使用
      • 8.4.1 案例一 实现站点访问控制
  • 9 项目九 调试及打包与部署
    • 9.1 任务一 调试与错误处理
      • 9.1.1 拓展一 调试技术
    • 9.2 任务二 Web程序的发布
  • 10 电子商务网站系统开发
    • 10.1 易泽数码商城项目
      • 10.1.1 易泽数码商城登录
      • 10.1.2 易泽数码商城注册
      • 10.1.3 易泽数码商城会员管理
      • 10.1.4 易泽数码商城商品管理
      • 10.1.5 易泽数码商城项目提交
任务一 使用多种方式进行状态管理
  • 1 任务一 使用...
  • 2 拓展知识

拓展使用多种方式进行状态管理

通过任务一学习,你需要掌握和了解以下内容:

1.学会使用基于客户端的状态管理

2.学会使用基于服务器的状态管理


【任务要点】

1.学会使用基于客户端的状态管理

2.学会使用基于服务器的状态管理

【案例一】使用Application统计网站的访问情况:

①页面单击数,页面被单击一次访问量加1,不管是否是同一个用户多次单击页面;

②用户访问数,来一个用户访问量就加1,一个用户打开多个页面不会影响这个数字。

【具体步骤】

(1)右击网站,在弹出的快捷菜单中选择【添加新项】命令,如1-1所示,在弹出的对话框中选择【全局应用程序类】选项。


(2)Global.asax是一个用来处理应用程序全局的事件。打开文件,系统已经定义了一些事件的处理方法。详见课本。

(3)需要在Application_Start中去初始化两个变量。

(4)用户访问数根据Session来判断,因此可以在Session_Start的时候去增加这个变量。

(5)页面单击数则在页面Page_Load的时候去修改。


【案例二】

在用户登录时,将用户名等登录信息存储在Session变量中,应用程序的其他页面可以访问该变量。如1-21-3所示。


图1-2


图1-3

【具体步骤】

(1)创建页面Login.aspx,添加控件,见1-1


(2)在Login.aspx.CS文件的btnLogin_Click中填写代码。


(3)创建Welcome.aspx,并在后置代码的Page_Load事件处理程序中添加代码。


【案例三】

记录某台机器访问页面的次数,访问的次数存入客户端的Cookie中,如1-4所示。


【具体步骤】

(1)创建页面cookie.aspx。

(2)设计cookie.aspx的界面。

①在“属性”窗口里,把Document的Title属性改为“访问计数器”。

②添加一个Label控件,拖动到页面中的适当位置,并把Label控件的ID属性设置为message,Text属性设置为空。

③打开cookie.aspx.cs的代码编辑窗口,为Page_Load()添加代码。


④按F5键,可看到程序的执行结果。


【案例四】

使用ViewState保存用户单击按钮的次数,执行结果如1-5所示。


【具体步骤】

(1)设计Web页面。

新建一个ASP.NET网站,向页面中添加必要的控件说明文字:添加1个按钮控件Button1;1个标签控件Label1,如1-6所示。


(2)编写事件代码。


【背景知识】

一、状态管理概述

状态管理是对同一页或不同页的多个请求维护状态和页信息的过程。与所有基于HTTP的技术一样,Web窗体页是无状态的,这些窗体不自动指示序列中的请求是否全部来自相同的客户端,或者单个浏览器实例是否一直在查看页或站点。此外,到服务器的每一往返过程都将销毁并重新创建页,因此,如果超出了单个页的生命周期,页信息将不存在。比如,在代码中声明一个DataSet从数据库获取记录,页面回发(也就是重新请求)后这个DataSet是空的,这就是为什么在ASP.NET应用程序中,甚至在一个页面中需要多次连接数据库获取记录。由于以上原因,状态管理对于Web编程来说非常重要,从第一代动态Web编程语言开始就支持多种状态管理以弥补HTTP无状态的不足。

 现在的Web应用程序,通常都是数据驱动的,但是在状态处理中,应该尽量减少对数据库的依赖,原因有以下几点:

(1)数据库是存放在磁盘上的,如果把数据都存放在数据库中的话,存取速度和性能会比较差;

(2)很多数据是和用户相关的,但是没有一个唯一的标志来区分哪条记录对应哪个客户端(浏览器);

(3)很多数据是临时的,用户关闭了浏览器这些数据就不再需要了,如果把数据存放在数据库中的话,会不知道是哪个用户关闭了浏览器,也就不能及时把数据删除。

通常来讲,状态管理的作用主要概括为以下几点:

(1)指示用户信息,关联浏览器实例;

(2)使得页与页之间,请求与请求之间能够共享信息;

(3)更为快速的数据存储与读取。

二、基于服务器的状态管理

ASP.NET提供了多种方法用于维护服务器上的状态信息,而不是保持客户端上的信息。通过基于服务器的状态管理,为了保留状态,可以减少发送给客户端的信息量。主要包括两种方式:应用程序状态和会话状态。

1.应用程序状态

应用程序状态(Application)是应用于整个应用程序的,由于它的访问速度非常快而且只要应用程序不停止,数据就一直存在,所以通常在Application_Start的时候去初始化一些数据,在以后的访问中可以迅速地访问和检索。

2.会话状态

会话状态(Session)用于保存每个用户的专用信息。Session中的信息保存在Web服务器内容中,保存的数据量可大可小。当Session超时或被关闭时将自动释放保存的数据信息。

三、基于客户端的状态管理

基于客户端的状态管理是将数据存储在客户端上以保持状态信息从而进行状态管理,它常见的实现方式包括:Cookie、视图状态、控件状态、隐藏域、查询字符串、Cache几种方式。

1.Cookie

Cookie是一小段文本信息,提供了一种存储用户特定信息的方法,伴随着用户请求和页面在Web服务器和浏览器之间传递。当访问某站点时,浏览器在获得页面的同时也获得了Cookie,并将它存储在用户硬盘上的某个文件夹中,Cookie能够帮助网站存储有关访问者的信息。Cookie可以是临时的(具有特定的过期时间和日期),也可以是永久的。

2.隐藏域

ASP.NET允许将信息存储在HiddenField控件中,此控件呈现为一个标准的HTML隐藏域。隐藏域(HiddenField)在浏览器中不以可见的形式呈现,但可以像标准控件一样被设置其属性。当向服务器提交页时,隐藏域的内容将在HTTP窗体集合中随同其他控件的值一起发送。

3.视图状态

视图状态(ViewState)是ASP.NET页框架默认情况下用于保存往返过程之间的页面信息以及控件值的方法。

4.控件状态

控件状态(ControlState)允许保持特定于某个控件的属性信息,且不能像ViewState那样被关闭。

5.查询字符串

查询字符串的方式是将要传递的值连接在URL后面,然后通过Response.Redirect方法实现客户端的重定向,这种方式可以实现在两个页面之间传递信息。