ASP.NET是微软公司推出的新一代建立动态Web应用程序的开发平台,作为.NET Framework体系结构的一部分。利用它开发一个Web程序首先需要在运行它的服务器上建立IIS(internet information Server)
安装的步骤如下:
控制面板——程序——程序和功能——启动或关闭Windows功能,选择internet information Server
配置的步骤如下:
控制面板——系统和安全——管理工具——internet information Server(IIS)管理器
一、Response对象
Response对象用于将数据从服务器发送到浏览器。
常用方法和说明
方法 | 说明 |
---|---|
AddHeader | 将一个HTTP头添加到输出流 |
AppendToLog | 将自定义日志信息添加到IIS日志文件 |
Clear | 将缓冲区的内容清除 |
End | 将目前缓冲区中所有的内容发送至客户端,然后关闭 |
Flush | 将缓冲区中所有的数据发送至客户端 |
Redirect | 将网页重新导向另一个地址 |
Write | 将数据输出到客户端 |
WriteFile | 将指定的文件直接写入HTTP内容输出流 |
Response.Redirect("~/Welcome.aspx?parameter1=one¶meter2=two")
//重定向URL时传递参数,使用“?”分隔页面的链接地址和参数,有多个参数是用“&”分隔
二、Request对象
Request对象用于检索从浏览器向服务器发送的请求中的信息。
常用属性
属性 | 说明 |
---|---|
Params | 从QueryString、Form、Cookies或ServerVariables项的组合集合 |
QueryString | 获取HTTP查询字符串变量集合 |
Url | 获取有关当前请求的URL(统一资源定位器,就是网络地址)的信息 |
UserHostAddress | 获取远程客户端IP地址 |
UserHostName | 获取远程客户端DNS名称 |
Browser | 获取或设置有关正在请求的客户端浏览器的功能说明 |
ContentLength | 指定客户端发送的内容长度 |
Cookies | 获取客户端发送的Cookie集合 |
Form | 获取窗体变量集合 |
案例:以下实现页面中输出数据,页面跳转并传递数据
namespace WebApplication1
{
public partial class Web1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("2222");
}
protected void ButtonConfirm_Click(object sender, EventArgs e)
{
string name = TextBox_name.Text;
string sex = "先生";
if (rbtSex2.Checked)
sex = "女生";
Response.Redirect("~/Welcome.aspx?Name=" + name + "&Sex=" + sex);
}
}
}
namespace WebApplication1
{
public partial class Welcome : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
HttpBrowserCapabilities hbc = Request.Browser;
Response.Write("客户端浏览器信息:");
Response.Write("<hr>");
Response.Write("类型:"+hbc.Type+"<br>");
Response.Write("名称:" + hbc.Browser+ "<br>");
Response.Write("版本:" + hbc.Version+ "<br>");
Response.Write("操作平台:" + hbc.Platform+ "<br>");
Response.Write("是否支持框架:" + hbc.Frames+ "<br>");
Response.Write("是否支持表格:" + hbc.Tables+"<br>");
Response.Write("是否支持Cookies:" + hbc.Cookies+ "<br>");
Response.Write("<hr>");
string name = Request.Params["Name"];
string sex = Request.Params["Sex"];
Response.Write("欢迎" + name + sex + "!");
}
}
}
三、Application对象
Application对象用于共享应用程序级信息,是全局变量,可以在Global.asax文件或者aspx页面进行声明,必须对Application对象加锁。
Application对象的常用方法及说明
方法 | 说明 |
---|---|
Add | 新增一个Application对象变量 |
Clear | 消除全部Application对象变量 |
Lock | 锁定全部Application对象变量 |
Remove | 使用变了名称移除一个Application对象变量 |
RemoveAll | 移除全部Application对象变量 |
set | 使用变了名称更新一个Application对象变量的内容 |
Unlock | 解除锁定的Application对象变量 |
语法:Application[varName]=值;
四、Sessoin对象
Session对象用于存储在多个页面调用之间特定用户的信息,一个用户对应一个Session对象,保存在Session对象中的用户信息,其他用户不能访问也不能修改。
语法:Session[varName]=值;
例如登录时使用Session对象保存用户信息。
//主界面
protected void ButtonConfirm_Click(object sender, EventArgs e)
{
if(TextBox_name.Text=="mr"&& TextBox1.Text=="123")
{
Session["UserName"] = TextBox_name.Text;
Session["LoginTime"] = DateTime.Now;//使用Session变量记录用户登录系统的时间
Response.Redirect("~/Welcome.aspx");//跳到主页
}
else
{
Response.Write("<script>alert('登入失败! 请返回查找原因');location='Web1.aspx'</script>");//结合了JavaScript脚本语言
}
}
//跳转到Welcome.aspx页面
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("欢迎用户" + Session["UserName"].ToString() + "登入本系统!<br>");
Response.Write("你的登入时间为:" + Session["LoginTime"].ToString());
}
五、Cookie对象
Cookie对象用于保存客户端浏览器请求的服务器页面,也可以用它存放非敏感的用户信息,信息存放的时间可以根据用户需要进行设置。
要存储一个Cookie变量,可以通过Response对象的Cookies集合来实现,语法如下
Response.Cookies[varName].value=值;
取回Cookie,可以使用Request对象的Cookies集合,并将指定的Cookies集合返回。
变量名=Request.Cookies[varName].Value;
六、Server对象
Server对象定义了一个与Web服务器相关的类,提供对服务器上方法和属性的访问,用于访问服务器上的资源。
Server对象常用方法说明
方法 | 说明 |
---|---|
Execute | 在当前请求的上下文中执行指定资源的处理程序,然后将控制返回给改处理程序 |
HtmlDecode | 对已编码一消除无效HTML字符的字符串进行解码 |
HtmlEncode | 对要在浏览器中显示的字符串进行编码 |
MapPath | 返回与web服务器上的指定虚拟路径相对应的物理文件路径 |
UrlDecode | 对字符串进行解码。该字符串为了进行HTTP传输而进行编码并在URL中发送服务器 |
UrlEncode | 编码字符串,以便通过URL从Web服务器到客户端进行可靠的HTTP传输 |
transfer | 终止当前也的执行,并为当前请求开始执行新页 |
Execute 和transfer的方法重定向
Execute 方法用于将执行从当前页面转移到另一个一个页面,并将执行放回到当前页面。执行所转移的页面在同一浏览器窗口中执行,然后原始页面继续执行。所以执行Execute 方法后,原始页面保留控制权。
transfer方法用于将执行完全转移到指定页面,执行该方法时主调页面失去控制权。
Server.Transfer和Response.Redirect的区别是什么?
答:Server.Transfer仅是服务器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;Response.Redirect则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。
Server.Transfer是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 这个过程中浏览器和Web服务器之间经过了一次交互。
Response.Redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求。这个过程中浏览器和Web服务器之间经过了两次交互。
Server.Transfer不可以转向外部网站,而Response.Redirect可以。
Server.Execute效果和Server.Transfer类似,但是是把执行的结果嵌入当前页面。