Web应用程序状态管理

在这里插入图片描述

web应用程序状态管理

使用ASP.NET内置对象对Web应用程序进行设置
在这里插入图片描述
顺便贴一下客户端和服务器端的关系
在这里插入图片描述

HTTP请求处理

Response对象

作为交接作用,将客户端需要的信息发送给客户端,将客户端反馈回的信息以HTML格式再给浏览器

Response对象的常用方法

在这里插入图片描述

Response对象的属性

在这里插入图片描述

例子

protected void Page_Load(object sender, EventArgs e){
	if (Response.IsClientConnected) //判断客户端是否与服务器相连
		Response.Redierect("other.axpx")//如果相连则跳转到相应的页面
	else
		Response.End();
}
protected void Page_Load(object sender, EventArgs e){
	Response.Buffer= ture; //指定页面的输出需要缓冲区
	int currentHour = DateTime.Now.Hour; //获得此时的小时数
	if(currentHour == 0){  //如果到零点时,发生如下
		Response.Write("时间到,服务器停止输出")//向客户端输出数据
		Response.Flush(); //将服务器的缓存数据发送给客户端
		Response.Clear(); //清除服务器缓存中的数据
		Response.End(); //停止处理
		}
	else {
		Response.Write("服务器正常工作……")}
	}
protected void Page_Load(object sender, EventArgs e)
    {
        int day = int.Parse( DateTime.Now.Day.ToString()); 
        //获取此时的日期
        if (day / 2 == 0) //如果日期为偶数打开百度网页
            Response.Redirect("https://www.baidu.com");
        else //如果日期为奇数打开新浪网页
            Response.Redirect("https://www.sina.com.cn/");
        
    }
使用Response对象设置Cookie

Response对象的数据集合只有Cookies集合
创建一个新的会话Cookie:
Response.Cookies.Add(Cookies 对象);

HttpCookie myCookie = new HttpCookie("Username");
myCookie.Value ="李四";
Reponse.Cookies.Add(myCookie);
//同上
Reponse.Cookies["Username"] = "李四"

Request对象

获取客户端的浏览器提交给服务器的信息

Request对象的属性

在这里插入图片描述
应用集合的格式:Request.集合名("变量名")

获取客户端提交的表单数据

客户端通过Form向服务器提交数据
提交数据有两种:POSTGET 两种办法
GET 时通过QueryString集合获取数据
有大量数据输入时,用POST方法提交,通过Form集合获取

GET时将表单的数据直接作为参数再URL后面
格式:URL?Variable = Value1&Variable2 =Value2
如下:
在这里插入图片描述
由于地址栏的长度有限,因此会限定提交数据的长度

获取时

Request.Querystring("username") //获取表单中username中的值

使用POST

Request.Form("username") //获取表单中username中的值

可以省略其中QuerystringForm的集合名
直接用Request("username")

例子

<!--用PostBackUrl时按钮时点击时跳转下个页面-->
<asp:Button ID="Button1" runat="server" Text="登录" PostBackUrl ="~/Request对象2.aspx" />
//在一个界面文件中的按钮中加入上述PostBackUrl ="~/Request对象2.aspx"
//可在Request对象2.aspx文件中直接调用另一个文本框
public partial class Request对象2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = Request["TextBox1"]; //从网页1中获得输入的叔叔
        int time = int.Parse(DateTime.Now.Hour.ToString());//获得此时的小时数
        if (time <= 12) //如果小时小于等于12则输出上午好
            Label2.Text = "上午好";
        else    //如果小时大于12则输出下午好
            Label2.Text = "下午好";
    }
}
获取保存的cookie信息

格式:Request.Cookies["Cookies 名称"]

HttpCookie MyCookie = Request.Cookies["Username"]; //获取Cookie对象
string myName = MyCookie.Value; //读取Cookie的值
读取服务器的环境变量

格式:Request.ServerVariables("环境变量名")或者Request("环境变量名")

Request.ServerVariables("REMOTE_ADDR") //显示客户端的IP地址

在这里插入图片描述
在这里插入图片描述

例子

protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write("<b>当前使用的浏览器:</b>");
        Response.Write("<hr>");
        Response.Write("浏览器名称及其版号:" + Request.Browser.Type + "<br/>");
        Response.Write("浏览器类型:" + Request.Browser.Browser + "<br/>");
        Response.Write("浏览器版本号:" + Request.Browser.Version + "<br/>");
        Response.Write("客户端使用的操作系统:" + Request.Browser.Platform + "<br/>");
        Response.Write("是否支持HTML框架:" + Request.Browser.Frames + "<br/>");
        Response.Write("是否支持Cookies:" + Request.Browser.Cookies + "<br/>");
        Response.Write("<hr>");

        Response.Write("<b>获取服务器端信息:</b>");
        Response.Write("<hr>");
        Response.Write("当前网页虚拟路径:" + Request.ServerVariables["URL"] + "<br>");
        Response.Write("当前网页物理路径:" + Request.ServerVariables["PATH_TRANSLATED"] + "<br/>");
        Response.Write("服务器名:" + Request.ServerVariables["SERVER_NAME"] + "<br/>");
        Response.Write("服务器连接端口:" + Request.ServerVariables["SERVER_PORT"] + "<br/>");
        Response.Write("HTTP版本:" + Request.ServerVariables["SERVER_PROTOCOL"] + "<br/>");
        Response.Write("<hr>");
    }
Request对象的方法

在这里插入图片描述

Server对象

Sever对象可以访问服务器上的方法和属性(获取某文件的物理路径),也可以创建各种服务器组件(访问数据库)

Server对象的属性

在这里插入图片描述

Server.ScriptTimeout =100 //指定服务器处理脚本的超时期限为100秒
limit = Server.ScriptTimeout //将设置过的超时期限存放到的一个变量
Server对象的方法

在这里插入图片描述

CreatObject的方法
Server.CreatObject("ADODB.Connection")//创建一个ADO组件的实例
Execute方法和Transfer方法

Execute方法调用一个指定的脚本执行它,执行完毕后再返回文件

格式:Server.Execute(string URL) //URL为脚本文件的地址

Transfer将一个正在执行的脚本文件的控制权转移给另一个文件,执行完后不返回源文件

格式:Server.Transfer(string URL)
在这里插入图片描述

Mapath方法

Mapath将指定的虚拟路径映射到服务器上的物理路径

格式:Server.MapPath(path)

对HTML进行编译和解码

HTML中的 < 和 > 在浏览器中被浏览器识别为系统标记,不会显示
因而用 HtmlEncode 和 HtmlDecode 对HTML进行编码和解码

HtmlEncode格式:Server.HtmlEncode(string s)
HtmlDecode格式:Server.HtmlDecode(string s)

例子

protected void Page_Load(object sender, EventArgs e)
    {
        string enStr = Server.HtmlEncode("<font size =4>输出 HTML标记<font/>");
        //用HtmlEncode组织浏览器解释HTML语法
        Response.Write(enStr);
        Response.Write("<hr>");
        string deStr = "&lt;font size =5&gt;输出 HTML 标记&lt;/font&gt;";
        Response.Write("<br>要解码后的字符串:" + deStr);//证明实际上是将<>转变成 &lt和&gt
        Response.Write("<br>解码后:" + Server.HtmlDecode(deStr));//HTMLDecode是对已经编码的字符串解码
    }

在这里插入图片描述

对URL进行编译和解码

在程序中会有一些字符不能被直接读取,用URLEncode进行编码后就可以传播。

格式:
编码 :Server.UrlEncode(string URL)
解码: Server.UrlDecode(string URL)

例子

 protected void Page_Load(object sender, EventArgs e)
    {
        String str = "http://mail.163.com";
        Response.Write("<p>执行UrlEncode方法前:" + str);
        String strNew = Server.UrlEncode(str);//将string中的ASCII字符转换成URL中等效的字符
        Response.Write("<p>执行 UrlEncode 方法后:" + strNew);
    }

在这里插入图片描述

状态信息的保存

Application对象

Application对象的键值
Application对象的方法
Application对象的事件
Global.asax文件
Global.asax文件应用实例–网站访问人数统计

Session对象

Session对象的属性
Session对象的方法
Session对象的事件

Cookie对象

cookie对象的属性
cookie的方法
访问Cookie

ViewState对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值