در بخش هشتم با مفاهیم و معماری session آشنا شدیم . در این بخش و قبل از پرداختن به نحوه پیکربندی session در برنامه های وب ، به بررسی یک نمونه مثال خواهیم پرداخت تا از این رهگذر بتوانیم در عمل با متدها و خصلت های کلاس HttpSessionState بیشتر آشنا شویم .
مثال
در این مثال هدف آشنائی با نحوه ذخیره و بازیابی داده در session است . بدین منظور یک شی با نام Articles و شامل سه فیلد عمومی به شرح زیر تعریف شده است :
-
Title : عنوان یک مقاله را در خود ذخیره می نماید .
-
Abstract : شرح مختصری از مقاله را در خود ذخیره می نماید .
-
ViewCount : تعداد دفعات مشاهده یک مقاله را مشخص می نماید .
شی فوق از یک constructor خاص استفاده می نماید تا فرآیند ایجاد و مقداردهی آن به سادگی انجام شود .
| Public Class Articles
Public Title As String Public Abstract As String Public ViewCount As Integer Public Sub New(ByVal Title As String, ByVal Abstract As String, ByVal ViewCount As Integer)Me.Title = Title Me.Abstract = Abstract Me.ViewCount = ViewCount End Sub End Class |
اشیاء Articles در زمان استقرار صفحه در حافظه ایجاد و در session state ذخیره می گردند . در ادامه و پس از انتخاب یک آیتم توسط کاربر از طریق لیست موجود ، شی مرتبط با آیتم انتخاب شده از session بازیابی و اطلاعات مرتبط با آن در خروجی نمایش داده می شود .
| صفحه SessionStateExample.aspx | |||||||
<%@ Page Language=”VB” Culture=”fa-IR” UICulture=”fa-IR” %> <script runat=”server”> Public Class ArticlesPublic Title As String Public Abstract As String Public ViewCount As Integer Public Sub New(ByVal Title As String, ByVal Abstract As String, ByVal ViewCount As Integer) Me.Title = Title Me.Abstract = Abstract Me.ViewCount = ViewCount End Sub End Class Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
Dim ArticleInfo1 As New Articles(“State Management در ASP. NET 2.0 (بخش هشتم) “, _
Session(“Article1″) = ArticleInfo1
lstItems.Items.Clear() End If
Dim strCookieLess As String If Session.IsCookieless Then If Session.IsNewSession Then lblSession.Text = “شناسه : “ & Session.SessionID Protected Sub cmdMoreInfo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdMoreInfo.Click
Dim Key As String
Dim ArticleInfo As Articles = CType(Session(Key), Articles)
lblRecord.Text = “عنوان مقاله :” & ArticleInfo.Title End If End Sub </script> <html xmlns=”http://www.w3.org/1999/xhtml” dir=”rtl”> |
شکل ۱ نحوه عملکرد و خروجی برنامه فوق را نشان می دهد .
شکل ۱: نحوه عملکرد session state
حتی المقدور می بایست از تعداد session اندکی در برنامه استفاده گردد چراکه مدیریت آنها مستلزم انجام عملیات اضافه و استفاده از منابع محدود موجود در سمت سرویس دهنده است . پیاده کنندگان برنامه های وب برای رفع این نگرانی می توانند یک دکمه Log out را در صفحه مورد نظر خود پیش بینی نمایند تا پس از کلیک بر روی آن ، با استفاده از متد Session.Abandon اقدام به حذف session گردد ( آزاد سازی حافظه سرویس دهنده زودتر از موعد مقرر و مشخص شده توسط خصلت Timeout ) .
در بخش دهم بحث خود را در ارتباط با session state ادامه داده و با نحوه پیکربندی آن در برنامه های وب آشنا خواهیم شد
دیدگاه خود را بیان کنید.
باید وارد سایت شده باشید برای دیدگاه دادن