1.问题提出
设计两个登录界面:一个register.asp页面用于输入账号,密码等信息进行登录。另一个页面welcome.asp用于显示登录成功的信息。利用request的两个对象response和server两种页面重定向方法进行响应。
2.实现过程
register.asp
server:
protected void Button1_Click(object sender, EventArgs e)
{
Application["name"] = TextBox1.Text;
Server.Transfer("welcome.aspx");
}
response:
public partial class regist : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Application["name"] = null;
} protected void Button1_Click(object sender, EventArgs e)
{
Application["name"] = TextBox1.Text;
Response.Redirect("welcome.aspx");
}
}
登录页面,welcome.asp
public partial class welcome : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string s = Application["name"].ToString();
Response.Write("欢迎" + s + "登录该页面。");
}
}
结果图片:
初始页面
登录页面
response:
初始页面:regist.asp
登录界面 welcome.asp
3.区别
从两次操作的结果来看,server直接是在当前页面出现了响应的结果值,但是response立即终止当前页面的执行,跳转到指定路径。
server的Transfer 方法把一个 ASP 文件中创建的所有状态信息(所有 application/session 变量以及所有 request 集合中的项目)发送(传输)到另一个 ASP 文件中。当第二个 ASP 完成任何时,它不会返回到第一个 ASP 页面。
Transfer 方法是 Response.Redirect 的一个高效的替代方案。当 Server.Transfer 方法在服务器上向另外的 ASP 页面传输执行时,重定向强制 Web 服务器处理额外的请求,避免了额外的周折。