Session与Cookie会话及页面传值

1、页面中传值(Get与Post、Session、Cookie、QueryString、Application、Server.Transfer)


A、Get与Post
   异同:
   一:Get为默认请求(用的网页默认编码)可能产生乱码,而Post(通过<Meta>标签自定义编码)不会产生乱码
   二:Get在传递参数时会显示在地址栏,而Post不会
   三:Get是从服务器上获取数据,post是向服务器以按钮的形式发送数据
   四:Get最大长度为1024KB,而Post则没有
   五:Get没有Post安全
   
   如何使用:
   在HTML中指定Action 与 Method属性
   Action:指定页面的提交地址,可以是绝对地址或是相对地址(推荐)
   Method:指定提交方式,有Get、Post两种,Get为默认


注:在PHP中获取Get、Post提交的数据方法:
    Get数据:$_GET["属性名"];
    Post数据:$_POST["属性名"]
    获取所有请求的值:$_REQUEST["属性名"],该方法不区分Get与Post


    Asp.net中获取Get与Post的值:
    Get形式:Response.Write(Request.QueryString["ID"].toString());
    post形式:Response.Write(Request.Form["TextBox"].ToString());




QueryString:
a、用法:用来获取客户端以Get提交的表单数据(Get为默认提交方式)
   ex:Rrquest.QueryString("UserName") '获取提交表单中的用户名


注:但表单用 Method属性设置为“Post”时,我们就用 Form获取值
    ex:<Form Runat= "Server" Method = "Post"></Form>
        Request.Form("UserName")
    
    Params属性不区分Get与Post的提交方式,避免弄错我们可以用Params
    ex:Request.Params("UserName")






Application:
a、含义:用来记录整个网站的信息以及不同浏览器端共享的变量
   例如:上站人数、在线数、意见调查、投票统计等
   Application默认的生命周期起始于Web服务器开始,终止于Web服务器关机或重启
 
b、应用:计数器(统计网站访问人数)
   ex:<Script language="VB" runat="Server">
      Sub Page_Load(Sender as Object,e as Eventargs)
      Application.Set("Counter",Application("Counter")+1)
      myCounter.Text = "您是第" & Application("Counter") & "位访客"
      End Sub
      </Script>






B、PHP篇:(Session、Cookie)
PHP中的Session会话:
a、Session的特点:
   Session会话保存于服务器,同时在客户端中生成一个相对应的SessionID(具有唯一性、随机性
   当未设置SessionID的生命周期时它保存于客户端的内存中,设置了生命周期后它就保存于客户端的硬盘中)


b、启用Session会话:
   Session_Start();


c、设置属性和值:
   $_SESSION["属性名"] = "值";


d、读取值:
   $_SESSION["属性名"]


e、关闭会话:
   Session_destroy(); //释放内存中的所有Session变量,但不删除Session文件和释放对应的SessionID
   Session_Unset(); //删除用户的Session文件,释放SessionID,变量依然保留


注:关闭Session的原则:
    先Session_unset()后Session_Destroy();
    每次调用Session时,一定要先启用Session会话;




PHP中的Cookie会话:
a、Cookie特点:
   Cookie保存在客户端,当关闭浏览器时会自动销毁


b、启用Cookie会话:
   SetCookie("名称","值",time() + N); //N为生命周期,以秒为单位


c、查找Cookie:
   $_COOKIE["名称"];


d、设置Cookie过期:
   SetCookie("名称","",time() - N); //N为过期时间,要大于设置时的时间




注:Session与Cookie会话的区别:
    a、Session会话保存于服务器,而Cookie保存在客户端
    b、Session对服务器的消耗大,能过保存数组、对象多种数据类型
    c、Session不稳定易丢失
    d、Cookie易被禁用、只能保存日期、数值、字符串等简单的数据类型
    e、Cookie稳定、消耗小
    f、他们都保存于同一文件下(C:\Documents and Settings\Administrator)








C、ASP.Net篇:(Session、Cookie)
Session 会话
a、定义或设置Session:
   Session["名称"] = 值;
   Session.Add("名称","值");


b、设置生命周期:
   Session.TimeOut = 1;(单位,分钟)
   注:系统默认的Session 与 Cookie生命周期为20分钟


c、读取值:
   Response.Write(Session["名称"].ToString());
   Response.Write(Session.SessionID);


d、清空会话:
   //清空
   Sesssion.TimeOut = 0;
   Session.Clear();
   Session.Remove All();
   //取消
   Session.Abandon();




Cookie 会话
a、定义Cookie
   Response.Cookie["名称"].Value = "值";
  
   httpCookie cookie = new HttpCookie("名称","值");
   Response.Cookies.Add(cookie);


b、设置生命周期
   Cookie.Expires = DateTime.Now.AddDays(1);//设置为一天
   Response.Cookies["名称"].Expires = DateTime.Now.AddHours(1);//设置为一小时


c、读取值
   Response.Write(Request.Cookies["名称"].Value);
   注:设置Cookie 用Response,读取用Request


d、取消会话
   Response.Cookies["名称"].Expires = DateTime.Now.AddYears(-1);








D、VB.NET篇(Session、Cookie,其实他与C#中的比较相同,有些属性是通用的)
Cookie会话:
a、设置Cookie:
   Response.Cookies.Item("Cookie名称").Values("子健名称") = "值"
   ex: '定义一个名称为“myCookie”,子健为“UserName”、“PassWord”子健值分别为“天夜”、“welcome”的Cookie
      Response.Cookies.Item("myCookie").Values("UserName") = "天夜"   
      Response.Cookies.Item("myCookie").Values("PassWord") = "welcome"


b、设置Cookie的生命周期:
   Response.Cookies.Item("myCookie").Expires = DateTime.Now.AddDays(7) '生命周期为今天开始的七天时间


c、读取Cookie的值:
   Response.Write("用户名:" & Request.Cookies("myCookie").Values("UserName"))
   Response.Write("密&bnsp;码:" & Request.Cookies("myCookie").Values("PassWord"))


注:Cookie文件保存于 C:\Documents and Settings\Administrator\Cookies




Session会话:
a、设置Session
   Session("Session名称") = "值"
   Session.Add("名称","值")


b、周期
   Session.TimeOut = 60(单位,分钟)


c、读取
   Response.Write(Session("名称").ToString());
   Response.Write(Session.SessionID);   


d、清空会话:
   //清空
   Sesssion.TimeOut = 0;
   Session.Clear();
   Session.Remove All();
   //取消(手动结束)
   Session.Abandon();


注:防止通过刷新按钮来刷新访客人数
    ex:为了以后重复使用我们将计数器程序保存为<CounterFunction.inc>
      '引用空间
      <%@ Import Namespace ="System" %>
      <%@ Import Namespace ="System.IO" %>
      <Script language="VB" Runat="Server">
       Function Counter(CounterFile as String) as Long
       '从文件读取计数器数值
        Dim objReader as New StreamReader(Server.MapPath(ConterFile))
        Counter = objReader.ReadLine()
        ogjReader.Close()
        '判断是否为新建Session对象,是将变量加1,写入文件
        If Session.IsNewSession = True Then
        Counter += 1
        Dim objWriter as New StreamWriter(Server.MapPath(CounterFile),Fasle)
        obgWriter.WriteLine(Counter)
        objWriter.Close()
        End If
       End Function    


       '此函数将计数器转换为图形计数器
        Function Img(Counter as String) as String
        Dim I as Byte
        For I = 1 to Len(Counter)
        Img = Img & "<img Src=digit" & Mdi(Counter,I,1) & ".gif"
        Next
        End Function   
       End Sub
      </Script>


      调用:
      <!-- #include File="CounterFunction.inc"-->
      <Script Language="VB" Runat="Server">
      Sub Page_Load(Sender as Object,e as Eventargs)
       myCounter.Text = "您是第" & Counter("Counter.text") & "位访客"
      End Sub
      </Script>




2、页面之间的跳转:
Js形式:(常用)
      a、Window.Open("地址"); //打开新窗口,并跳转到指定页面
      b、location.href ="地址";
         location.href("地址"); //在当前页面跳转
      c、<Body Onload = "地址"></Body>  




PHP形式:
     header(location:地址);
     注:在PHP中嵌入Js的方法(PHP输出值,echo和print)
     echo:"<Script language = \"javaScript\" type = \"text/javaScript\">";
     echo:"内容(location.href('xxxx'))";
     echo:"</Script>"   




Asp.net形式:
     a、Response.Redirect("地址"); //速度慢,有两次PostBack,可以跳转到任何地方
     b、Server.transter("地址"); //速度快,只有一次PostBack,只能在同一站点跳转
     c、Server.Execute("地址"); //一般用于页面的引用,将要跳转的页面引用到当前页面








3、页面中对话框的弹出:
JS形式(基本的):
    a、alert(""); //该对话框只有一个【确定】按钮
    b、confirm(""); //该对话框有一个【确定】和一个【取消】按钮




Asp.net形式:
    a、Response.Write("<Script>alert('');<Script/>");
    b、Response.Write("<Script>confirm('');<Script/>");
    c、ClientScript.RegisterClientScriptBlock(GetType(),"","<Script>alert('');<Script/>");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追夢秋陽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值