zoukankan      html  css  js  c++  java
  • 014-Session服务器状态保持

    开始并为Session赋值:
    Session[“uName”]=“CNYaoMing”;
    取值:
    string strName = Session[“uName”].ToString();
    销毁(取消/退出):
    Session.Abandon();//销毁服务器端的Session对象 Session.Clear();//清空服务端的Session对象里的键值对,Session对象并没有从Session池里销毁。类似于集合的Clear(),把集合中的内容清空,集合本身还在。

    禁用Cookie后使用Session

    在WebConfig文件中配置:
    <system.web>
    <compilation debug="false" targetFramework="4.0" />
    <sessionState cookieless="AutoDetect"></sessionState>
    </system.web>

    <!--配置禁用cookie,使用url来保持Session-->
    <sessionState cookieless="true">
    </sessionState>

    <!--配置自己的SessionID的键-->
    <sessionState cookieless="false" cookieName="MyAsp_NetSessionID">
    </sessionState>

    -》Session

    《1》每个浏览器在第一次访问服务器时,都会由服务器创建一个Session对象
    《2》在创建Session对象时,都会生成一个唯一的编号
    《3》在创建Session对象时,会向浏览器中写一个Cookie,值就是Session对象的编号Session_Id
    -》Session对象是HttpSessionState类型,是一个键值对集合对象
    主要属性:TimeOut,SessionId,Count
    主要方法:Clear(),Abandon()
    -》示例1:跨页面共享信息
    查看报文,了解存储方式
    -》关于SessionId属性:表示会话的标识
    如果使用过Session,则客户端会以SessionId为键在Cookie中存储信息,每次请求时,这个信息都会在请求头的Cookie中被提交到服务器,服务器会认为这是一次会话
    如果未使用过Session,客户端不会存储会话信息,请求头中没有关于Session的Cookie信息,则认为这是一次新的请求,会生成一个新的SessionId
    -》大多数情况下,session依赖于cookie
    如果cookie被禁用,则session也就不能用了
    session的编号被存储到cookie中
    -》缺陷:会造成服务器端压力过大等问题,推荐去session化而采用分布式缓存
    -》说明:默认在ashx中是不能使用session的
    接口IRequiresSessionState:并没有实现任何功能,只是告诉Application在走到第七个事件时,为一般处理程序启用session功能

    SessionWrite.aspx

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SessionWrite.aspx.cs" Inherits="t4_State.SessionWrite" %>
     2 
     3 <!DOCTYPE html>
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     8     <title></title>
     9 </head>
    10 <body>
    11     <form id="form1" runat="server">
    12         <div>
    13             <%=Session.SessionID %>
    14             <hr />
    15             <a href="SessionRead.aspx">读Session</a>
    16         </div>
    17     </form>
    18 </body>
    19 </html>
    1     public partial class SessionWrite : System.Web.UI.Page
    2     {
    3         protected void Page_Load(object sender, EventArgs e)
    4         {
    5             Session["xlb"] = "小龙包";
    6         }
    7     }

    SessionRead.aspx

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SessionRead.aspx.cs" Inherits="t4_State.SessionRead" %>
     2 
     3 <!DOCTYPE html>
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     8     <title></title>
     9 </head>
    10 <body>
    11     <form id="form1" runat="server">
    12         <div>
    13             <%=Session["xlb"] %>
    14         </div>
    15     </form>
    16 </body>
    17 </html>
  • 相关阅读:
    poj2478
    poj2376
    poj2192
    poj1062
    [HDOJ2639]Bone Collector II(第k优01背包)
    [HDOJ3466]Proud Merchants(贪心+01背包)
    [HDOJ5510]Bazinga(并查集)
    [POJ3264]Balanced Lineup(线段树,区间最值差)
    [HDOJ4325]Flowers(树状数组 离散化)
    [HDOJ5521]Meeting(最短路)
  • 原文地址:https://www.cnblogs.com/ninghongkun/p/6291252.html
Copyright © 2011-2022 走看看