ASP.NET WebFrom开发01-ASP.NET内置对象

这学期多了一门Web程序设计的课程,重点是这门课不是JavaWeb,而是ASP.NET的Web设计。学校总是开一些过时的课程,做一些过时的课程设计,但是为了学分又不得不花费时间去做,淦!

这些笔记都是我在腾讯课堂和哔哩哔哩学习的过程中做下来的笔记,将会分为四篇分别上传,如果你拥有JavaWeb类似的Web开发经验,借助这些笔记,你就可以快速的上手ASP.NET Web开发。希望这些笔记对你能够有所帮助,good luck!

1、Page对象

1.1、如何判断回发或者首次加载?

如何判断回发或者首次加载

1.2、Load事件处理的标准框架写法

1
2
3
4
5
6
7
8
9
10
11
      protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)//页面是否是首次加载,首次加载返回false,回发返回true
{
//这里编写首次加载需要处理的工作
}
else//回发
{
//这里编写回发时需要处理的工作
}
}

1.3、关于Page对象

①、每个.aspx文件对应- -个Page对象
②、.aspx页面与后台代码类 (局部类)合并生成页面类(第1讲中提过)
③、Page对象是页面类的实例
④、所有的.aspx文件 ( Web窗体页)都继承自System.Web.UI.Page类

1.4、Page指令

Page指令

1.5、Page对象的属性和事件

Page对象的属性和事件

2、Request和Response对象

2.1、Request和Response对象产生的时机

HTTP请求→Request对象

HTTP响应←Response对象

2.2、Request和Response对象的本质

①、Request对象其实是HttpRequest对象,在页面类中系统自动创建。
②、Request对象封装了用户请求的信息(用户输入的信息或URL参数)。
③、Response对象封装服务器的响应信息。

2.3、Request对象如何获取传递过来的数据

Request对象如何获取传递过来的数据

2.3.1、使用QueryString属性获取URL参数

(只能获取在URL中个可以看到的参数)

1
2
3
4
//使用querystring属性获取url参数
string name = Request.QueryString["name"];
string age = Request.QueryString["age"];
Response.Write(""); //会将内容输出到页面的最顶部 ,是<!docment>的前面
2.3.2、使用Params获取URL参数

(其他方面提交的也可以获取)

1
2
string name = Request.Params["name"];
string age = Request.Params["age"];
2.3.3、使用表单提交数据

(和HttpHandler获取参数完全相同)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//获取前台提交的数据
string user = context.Request.Params["username"];
string password = context.Request.Params["password"];
//调用数据访问方法判断用户名或者密码是否正确
DAL.AdminService adminService = new AdminService();
if(adminService.AdminLogin(user,password))
{
context.Response.Write("登录成功!欢迎你 "+user);
}
else
{
context.Response.Write("登录失败!");
}
}
2.3.4、获取web服务器变量的集合

(就是获取浏览器的请求头Request Header中的信息)

取web服务器变量的集合

2.4、Response对象

2.4.1、Response对象用于操作页面的输出流

Wirte(“string”) 方法:直接在页面上输出内容(在页面的最顶端输出)

Redirect(“url”) 方法:重定向到另一个页面(通过后台程序控制页面跳转)

3、ViewState对象

HTTP协议是”无状态”的,造成服务器无缘记住特定的用户请求。保存数据的范围仅限于当前页面,无法实现不同页面数据的交互

3.1、理解无状态特性

Web服务器不会保留每次浏览器所发HTTP请求的具体信息和当时的状态。
即使请求来自同一个浏览器,它也将其视为“陌生人”,绝不会“记得”浏览器在不久之前曾经“拜访”过自己

3.2、在ASP.NET后台中信息保存办法

ASP.NET专门提供了在一个网页多次请求之间保存信息的对象: ViewState (视图状态)对象来模拟“成员变量”的角色。

3.3、使用ViewState实现页面信息的保存

使用ViewState实现页面信息的保存

3.4、总结

  1. ViewState中保存的数据全部被转换成object类型,取出时务必强制转换成特定类型。
  2. ViewState只能在同一个页面的连续多次请求之间保存信息,页面跳转后信息就会丢失。

4、Session对象

4.1、在ASP.NET中不同页面之间共享信息的办法

ViewState对象无法实现不同页面数据交换

Session对象:在ASP.NET中不同页面之间共享信息的办法,也是以键值对存取数据、

4.2、不同用户在选择商品时, Session如何区分不同用户的选择?

  • Web 服务器根据SessionlD来区分不同用户,它是一个很长的字符串。
  • SessionID在用户第一 次访问时由Web服务器产生并由用户浏览器保存。
  • 用户每次的操作,浏览器在向服务器请求时都会带着自己的SessionlD.

4.3、典型应用

  • 不用页面之间需要传递较为复杂的数据(如对象)。
  • 保存用户的登录信息,未登录者禁止访问相关页面。

4.4、属性和方法

Session对象属性和方法

5、Cookie对象

5.1、Cookie对象特点

  • 存储少量不重要的数据
  • 存储在客户端的文本文件中(必须设置有效期,否则不被存储)
  • 安全性差
  • 存储的数据类型:字符串
  • 浏览器窗口无关,但与访问的站点相关
  • 具体特定的过期时间和日期
  • 在客户端存储后,将随着浏览器对相关网站页面请求而一并发送到Web 服务器
5.2、Cookie对象的方法

创建方法一:Response.Cookies[“cookieName”].Value=cookieValue;

创建方法二:HttpCookie cookie=new HttpCookie(cookieName,cookieValue)

读取方法:Request.Cookie[“cookieName”].Value

设置有效期:Response.Cookies[“cookieName”].Expires= DateTime.Now.AddDays(1.0); //过期时间

6、Application对象

生存时间:应用程序级别,

使用application对象前必须先声明加锁 Application.Lock();

使用完application对象后记得解锁 Application.UnLock();

6.1、Application对象的特征

  • 位置:服务器内存,执行速度快。
  • 使用范围:整个应用程序。
  • 类型:任意类型。
  • 生命周期:应用程序开始创建到销毁。
  • 使用方法:与session相同,采用键值对方式

6.2、全局应用程序类:Global.asax

  • 处理应用程序级时间的可选文件
  • 必须放在应用程序的根目录下

    6.3、常用事件:

Application对象常用事件

7、ASP常用对象比较

ASP常用对象比较

8、Server对象扩展

8.1、关于server对象

server对象是HttpServerUtility的一个实例,它提供对服务器上的方法和属性的访问

8.2、Server对象的常用方法

MapPath方法:获取服务器上文件的物理路径

Server.Transfer()方法:server对象实现服务器端网页跳转的方法,跳转后地址栏没有变化(JSP中的请求转发)

文章作者: Oxywen
文章链接: https://oxywen.cn/post/asp-net/1/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 不闻星河须臾