Обработка сеансовых данных
Обработка сеансовых данных
Поговорив о данных уровня приложения, давайте перейдем к обсуждению данных, создаваемых на уровне пользователя. Как уже упоминалось, сеанс на самом деде представляет собой процесс взаимодействие пользователя с Web-приложением, представленный типом HttpSessionState. Для поддержки информации сеанса конкретного пользователя объект HttpApplication и любые другие типы System.Web.UI.Page могут использовать доступ к свойству Session. Классическим примером необходимости поддержки пользовательских данных является корзина покупателя: при подключении десятков посетителей к странице Интернет-магазина для каждого посетителя должен поддерживаться уникальный список товаров, которые этот посетитель собрался купить.
При регистрации нового пользователя в Web-приложении среда выполнения .NET автоматически назначит пользователю уникальный идентификатор сеанса, используемый для идентификации данного пользователя. С каждым идентификатором сеанса ассоциируется пользовательский экземпляр типа HttpSessionState, который будет содержать данные соответствующего пользователя. Технология добавления и чтения сеансовых данных синтаксически идентична работе c данными приложения, например:
// Добавление/чтение сеансовой переменной для данного пользователя.
Session["DesiredCarColor"] = "зеленый";
String color = (string)Session["DesiredCarColor"];
Производный от HttpApplication тип позволяет выполнить перехват событий начала и завершения сеанса с помощью обработчиков событий Session_Start() и Session_End(). В пределах Session_Start() вы можете создать любые элементы данных пользователя, а в Session_End() можно выполнить любые действия, необходимые при завершения сеанса пользователя.
‹%@ Application Language="C#" %›
‹script runat="server"›
…
void Session_Start(objecl sender, EventArgs e) {}
void Session_End(object sender, EventArgs e) {}
‹/script›
Подобно типу HttpApplicationState, тип HttpSessionState может содержать любой тип, производный от System.Object, включая пользовательские классы. Предположим, например, что у нас есть новое Web-приложение (SessionState), которое определяет вспомогательный класс с именем UserShoppingCart.
public class UserShoppingCart {
public string desiredCar;
public string desiredCarColor;
public float downPayment;
public bool isLessing;
public DateTime dateOfPickUp;
public override string ToString() {
return string.Format("Машина: {0}‹br›Цвет: {1}‹br›$ кредит: {2}‹br›" +
"Аренда: {3}‹br›Доставка: {4}",
desiredCar, desiredCarColor, downPayment, isLeasing,
dateOfPickUp.ToShortDateString());
}
}
В обработчике событий Session_Start() можно назначить каждому пользователю свой экземпляр класса UserShoppingCart.
void Session_Start(Object sender, EventArgs e) {
Session["UserShoppingCartInfo"] = new UserShoppingCart();
}
При просмотре ваших Web-страниц пользователем вы можете взять экземпляр UserShoppingCart и заполнить его поля данными соответствующего пользователя. Предположим, что у вас есть простая страница *.aspx с набором элементов ввода, соответствующих каждому полю типа UserShoppingCart, и кнопкой (Button), используемой для установки введенных значений (рис. 24.5).

Рис. 24.5. Графический интерфейс пользователя для приложения с сеансовыми данными
Серверный обработчик события Click действует весьма прямолинейно (считывает значения элементов TextBox и отображает поступающие значения в поле типа Label).
protected void btnSubmit_Click(object sender, EventArgs e) {
// Установка преференций текущего пользователя.
UserShoppingCart u = (UserShoppingCart)Session["UserShoppingCartInfo"];
u.DateOfPickUp = myCalendar.SelectedDate;
u.desiredCar = txtCarMake.Text;
u.desiredCarColor = txtCarColor.Text;
u.downPayment = float.Parse(txtDownPayment.Text);
u.isLeasing = chkisLeasing.Checked;
lblUserInfo.Text = u.ToString();
Session["UserShoppingCartInfo"] = u;
}
В Session_End() вы можете, например, сохранить значения полей UserShoppingCart в базе данных или выполнить какие-то иные действия. Так или иначе, если Вы запустите два или три экземпляра своего браузера, вы должны увидеть, что каждый пользователь может создать свою корзину покупателя, связанную с его уникальным экземпляром HttpSessionState.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Передача и обработка данных в html-файле
Передача и обработка данных в html-файле Передача данных в html-файл:Передачу данных в html-файл можно произвести через URL-адрес. После адреса ставиться знак вопроса и после него параметр, который Вы хотите передать. Если этих параметров несколько, то между ними ставиться
Обработка данных
Обработка данных Подробно тема обработки данных уже обсуждалась в главе 6, а сейчас мы лишь кратко рассмотрим последние модификации в этой области. Сразу отмечу, что расширение возможностей по обработке данных в AS/400 — одно из приоритетных направлений нашей работы.Я уже
9.2.3.1 Обработка прерываний по отказу из-за недоступности данных
9.2.3.1 Обработка прерываний по отказу из-за недоступности данных Если процесс пытается обратиться к странице, бит доступности для которой не установлен, он получает отказ из-за отсутствия (недоступности) данных и ядро запускает программу обработки прерываний по отказу
Экспорт данных из базы данных Access 2007 в список SharePoint
Экспорт данных из базы данных Access 2007 в список SharePoint Access 2007 позволяет экспортировать таблицу или другой объект базы данных в различных форматах, таких как внешний файл, база данных dBase или Paradox, файл Lotus 1–2–3, рабочая книга Excel 2007, файл Word 2007 RTF, текстовый файл, документ XML
Перемещение данных из базы данных Access 2007 на узел SharePoint
Перемещение данных из базы данных Access 2007 на узел SharePoint Потребности многих приложений Access 2007 превышают простую потребность в управлении и сборе данных. Часто такие приложения используются многими пользователями организации, а значит, имеют повышенные потребности в
Проверка введенных данных на уровне процессора баз данных
Проверка введенных данных на уровне процессора баз данных Помимо проверки данных во время ввода информации, следует знать о том, что можно также выполнять проверку и на уровне процессора баз данных. Такая проверка обычно более надежна, поскольку применяется независимо
Обработка информации, представленной пользовательским типом данных
Обработка информации, представленной пользовательским типом данных После объявления переменной пользовательского типа ее можно "начинять" информацией. При этом необходимо присвоить значение каждому из элементов, составляющих тип.А для этого нужно идентифицировать
Обновление базы данных с помощью объекта адаптера данных
Обновление базы данных с помощью объекта адаптера данных Адаптеры данных могут не только заполнять для вас таблицы объекта DataSet. Они могут также поддерживать набор объектов основных SQL-команд, используя их для возвращения модифицированных данных обратно в хранилище
Обработка баз данных
Обработка баз данных Данные лучше всего хранить в базах данных (БД). Excel позволяет организовать и обрабатывать их. Простейшие БД – это таблицы, например списки клиентов с их определенными характеристиками. Самое простое, что можно с ними делать, – сортировать. Excel
10.1. Чтение и обработка данных в sed
10.1. Чтение и обработка данных в sed Общая схема работы редактора sed такова: 1. Редактор последовательно извлекает строки текста из файла или стандартного входного потока и копирует их в буфер редактирования. 2. Затем он считывает первую команду из командной строки или
О случайных числах и сеансовых ключах
О случайных числах и сеансовых ключах Для генерации одноразовых симметричных сеансовых ключей PGP использует криптографически стойкий генератор псевдослучайных чисел (ГПСЧ)[11]. Если файл ПСЧ отсутствует, он автоматически создаётся и заполняется абсолютно произвольными
Глава 6 Компьютерная организация данных и их обработка
Глава 6 Компьютерная организация данных и их обработка 6.1. Основные определения и понятия Понятия «информация» и «данные» являются базовыми, первичными понятиями в информатике, поэтому на протяжении многих лет существовала и существует в настоящее время проблема при их