Электронный магазин на Java и XML




Классы Cartltem и ShoppingCart


Минимальным требованием к объекту, представляющему товар в корзине покупателя, является наличие идентификатора данного товара и количества заказанных экземпляров. Название товара, его цену и другие сведения можно найти в каталоге — документе XML. Но мы решили не ограничиваться минимальными требованиями и добавили в Cartltem название товара, цену и информацию по доставке, как показано в листинге 4.1.

Следует отметить несколько важных моментов, касающихся класса Cartltem. Во-первых, конструктор работает непосредственно с объектом El ement структуры DOM, представляющим данный товар. Это упрощает добавление различных дополнительных переменных в XML-каталог. Во-вторых, класс Cartltem реализует интерфейс Serializable. Это позволяет посылать коллекцию объектов Cartltem, представляющую собой список заказанных товаров, другой программе Java, используя сериализацию данных. Сериализация также требуется, если процессору сервлетов приходится хранить сеанс или пересылать его на другой сервер. Наконец, названия методов доступа, например getld и setNumberOrdered, соответствуют соглашению об именах, принятому в JavaBeans, чтобы упростить использование объекта Cartltem в коде JSP-страницы.

Листинг 4.1. Класс Cartltem (cartltem.java) [Все представленные в книге тексты программ можно найти на сайте издательства по адресу www.piter.com. — Примеч. ред. ]

package com.XmlEcomBook.catalog;

import java.util.* ;

import java.io.* ;

import org.xml.sax.* ;

import org.w3c.dom.* ;

public class CartItem implements java.io.Serializable

{ // be sure to change this if substantive variables change

static final long serialVersionUID = 3260689382642549142L;

// these are set from the constructor

private String id ; // from product element

private String name ; // from name element

private String price ; // from price element

private String shippingType ; // from shipping_info element

private String shippingValue ; // may be null if type is special

// these may change

private int numberOrdered ; // changes




Содержание  Назад  Вперед