问题虽然简单但还是请高手进关于session
(1)本人想通过<a>标记的onclick事件调用JavaScript函数,然后在JavaScript函数里调用页面的隐藏按钮的事件清除session["user"]里面的值,表示退出;(2)我另外有个方法:新建了3个asp.net网页
第一个:login.aspx(已经设为起始页面) 里面有一个Button按钮,单击后表示登录,事件单击代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
Session["user"] = "user1";
Response.Redirect("user.aspx");
}
第二个 user.aspx 的页面加载代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["user"] == null)
{
Response.Write("<script>alert('user不能为空!')</script>");
Response.Redirect("Default.aspx");
}
} 源代码里有个<a>标签,<a href="logout.aspx" >退出</a> 单击后跳转到logout。aspx页面
第三个 logout.aspx页面加载的时候执行下面代码:
protected void Page_Load(object sender, EventArgs e)
{
Session["user"] = null;
//Session.Remove("user");
Response.Redirect("Default.aspx");
}就是通过这个页面清空session的值,问题来了,:
首先我执行登录,单击登录按钮后,跳转到user.aspx界面,然后单击退出,经过logout页面跳转到登录界面login.aspx,但是这个时候我直接在地址栏输入user.aspx页面却没有弹出user不能为空的提示也没有跳转到登录界面,请问是怎么回事? --------------------编程问答-------------------- Session.Clear();
Session.Abadon(); --------------------编程问答-------------------- ClientScript.RegisterStartupScript
response.redirect 是当服务器碰到这条语句时发送一条指令(包含新的地址)给浏览器,然后让浏览器去发送http请求,请求那个新的地址
Response.Write(" <script>alert(...");把这些内容缓存起来,最终发送给客户端,客户端收到了这个文档并解释执行了其中的脚本。如果后面用了Response.Redirect()那么缓存信息就清空了,并没有发送给客户端,所以当然不会有提示。
Response.Write(" <script>alert('!');location='a.aspx' </script>");
--------------------编程问答-------------------- 学习~~~~~~~`
补充:.NET技术 , ASP.NET