Plants by WebSphere



Pierwsze kroki
Znajdowanie tabel baz danych
Znajdowanie kodu źródłowego
Przeglądanie uwag dotyczących kodu

Pierwsze kroki

Istnieje możliwość utworzenia unikalnego adresu e-mail i hasła dla przykładowej aplikacji Plants by WebSphere. W tym celu należy kliknąć opcję zarejestruj własne konto na stronie logowania. Dodatkowo istnieje domyślny adres e-mail i hasło dla przykładu Plants by WebSphere, który przedstawiono w poniższej tabeli:


Adres e-mail plants@plantsbywebsphere.ibm.com
Hasło plants

Znajdowanie tabel baz danych

Tabele bazy danych dla tego przykładu to CUSTOMER, INVENTORY, ORDERINFO, ORDERITEM, IDGENERATOR, BACKORDER i SUPPLIER. Tabele te znajdują się w bazie danych PLANTSDB. Baza danych PLANTSDB znajduje się w pliku PlantsByWebSphere.ear w katalogu katalog_główny_profilu/installedApps/nazwa komórki/PlantsByWebSphere.ear/Database/PLANTSDB, gdzie nazwa komórki jest nazwą komórki, w której zainstalowana jest aplikacja użytkownika.

Przejrzyj układ tabeli w następujących instrukcjach SQL:


	CREATE TABLE CUSTOMER
  	 (  CUSTOMERID VARCHAR(250) NOT NULL,
   	 PASSWORD VARCHAR(250),
   	 FIRSTNAME VARCHAR(250),
   	 LASTNAME VARCHAR(250),
   	 ADDR1 VARCHAR(250),
   	 ADDR2 VARCHAR(250),
   	 ADDRCITY VARCHAR(250),
   	 ADDRSTATE VARCHAR(250),
   	 ADDRZIP VARCHAR(250),
   	 PHONE VARCHAR(250));

ALTER TABLE CUSTOMER ADD CONSTRAINT PK_CUSTOMER PRIMARY KEY (CUSTOMERID); CREATE TABLE INVENTORY ( INVENTORYID VARCHAR(250) NOT NULL, NAME VARCHAR(250), HEADING VARCHAR(250), DESCRIPTION VARCHAR(250), PKGINFO VARCHAR(250), IMAGE VARCHAR(250), IMGBYTES LONG BIT VARYING, PRICE REAL, COST REAL, CATEGORY INTEGER, QUANTITY INTEGER, NOTES VARCHAR(250), ISPUBLIC INTEGER, MINTHRESHOLD INTEGER NOT NULL, MAXTHRESHOLD INTEGER NOT NULL); ALTER TABLE INVENTORY ADD CONSTRAINT PK_INVENTORY PRIMARY KEY (INVENTORYID); CREATE TABLE ORDER1 ( ORDERID VARCHAR(250) NOT NULL, SELLDATE VARCHAR(250), BILLNAME VARCHAR(250), BILLADDR1 VARCHAR(250), BILLADDR2 VARCHAR(250), BILLCITY VARCHAR(250), BILLSTATE VARCHAR(250), BILLZIP VARCHAR(250), BILLPHONE VARCHAR(250), SHIPNAME VARCHAR(250), SHIPADDR1 VARCHAR(250), SHIPADDR2 VARCHAR(250), SHIPCITY VARCHAR(250), SHIPSTATE VARCHAR(250), SHIPZIP VARCHAR(250), SHIPPHONE VARCHAR(250), CREDITCARD VARCHAR(250), CCNUM VARCHAR(250), CCEXPIREMONTH VARCHAR(250), CCEXPIREYEAR VARCHAR(250), CARDHOLDER VARCHAR(250), SHIPPINGMETHOD INTEGER NOT NULL, PROFIT REAL NOT NULL, CUSTOMERID VARCHAR(250)); ALTER TABLE ORDER1 ADD CONSTRAINT PK_ORDER1 PRIMARY KEY (ORDERID); CREATE TABLE ORDERITEM ( INVENTORYID VARCHAR(250) NOT NULL, NAME VARCHAR(250), PKGINFO VARCHAR(250), PRICE REAL NOT NULL, COST REAL NOT NULL, CATEGORY INTEGER NOT NULL, QUANTITY INTEGER NOT NULL, SELLDATE VARCHAR(250), ORDER_ORDERID VARCHAR(250) NOT NULL); ALTER TABLE ORDERITEM ADD CONSTRAINT PK_ORDERITEM PRIMARY KEY (INVENTORYID, ORDER_ORDERID); CREATE TABLE IDGENERATOR ( IDNAME VARCHAR(250) NOT NULL, IDVALUE INTEGER NOT NULL); ALTER TABLE IDGENERATOR ADD CONSTRAINT PK_IDGENERATOR PRIMARY KEY (IDNAME); CREATE TABLE BACKORDER ( BACKORDERID VARCHAR(250) NOT NULL, INVENTORYID VARCHAR(250), QUANTITY INTEGER NOT NULL, STATUS VARCHAR(250), LOWDATE BIGINT NOT NULL, ORDERDATE BIGINT NOT NULL, SUPPLIERORDERID VARCHAR(250) NULL); ALTER TABLE BACKORDER ADD CONSTRAINT PK_BACKORDER PRIMARY KEY (BACKORDERID); CREATE TABLE SUPPLIER ( SUPPLIERID VARCHAR(250) NOT NULL, NAME VARCHAR(250), STREET VARCHAR(250), CITY VARCHAR(250), USSTATE VARCHAR(250), ZIP VARCHAR(250), PHONE VARCHAR(250), URL VARCHAR(250)); ALTER TABLE SUPPLIER ADD CONSTRAINT PK_SUPPLIER PRIMARY KEY (SUPPLIERID);

Znajdowanie kodu źródłowego

Kod źródłowy znajduje się w katalogach
katalog_główny_profilu/samples/src/PlantsByWebSphere.

Użytkownicy systemu z/OS: Drzewo kodu źródłowego przykładów nie jest udostępniane na platformie z/OS, ponieważ przykładowe aplikacje nie są budowane na platformie z/OS.

Przeglądanie uwag dotyczących kodu

Przegląd
Serwlety
Komponenty EJB

Przegląd

Przykładowa aplikacja Plants by WebSphere korzysta z następujących technologii:

Aplikacja Plants by WebSphere jest obsługiwana przez zestaw stron JSP i HTML. Strony te komunikują się z następującymi serwletami: AccountServlet, ShoppingServlet, ImageServlet i AdminServlet. Serwlety korzystają z różnych metod biznesowych komponentów EJB, które z kolei uzyskują w razie potrzeby dostęp do danych z bazy danych. Stanowe komponenty bean sesji służą zwykle do tworzenia interfejsu z komponentami bean obiektów w celu zredukowania liczby transakcji.

Serwlety

W sekcji poniżej przedstawiono informacje dotyczące serwletów używanych w tej aplikacji.

ShoppingServlet

Serwlet ShoppingServlet przetwarza większość interakcji między przeglądarką i komponentami EJB. Interakcje te obejmują funkcje związane z magazynem, koszykiem i zamówieniami. Wybranie kategorii produktów do wyświetlenia oznacza użycie komponentu bean sesji Catalog w celu znalezienia i wyświetlenia wszystkich odpowiednich obiektów Inventory. Wyświetlenie szczegółów dotyczących wybranej pozycji również odbywa się z użyciem komponentu bean sesji Catalog w celu uzyskania informacji z komponentu bean obiektu CMP Inventory.

Dodanie pozycji do koszyka powoduje utworzenie stanowego komponentu bean sesji ShoppingCart. Komponent bean sesji Catalog pobiera dane obiektu Inventory i umieszcza je w komponencie bean ShoppingCart. Wyświetlanie i aktualizowanie koszyka odbywa się przy użyciu stanowego komponentu bean sesji ShoppingCart.

Po podaniu informacji dotyczących płatności i przesyłki komponent bean ShoppingCart tworzy nowy komponent bean obiektu CMP o nazwie Order. Po zakończeniu procedury kasowej tworzony jest bezstanowy komponent bean sesji o nazwie Mailer w celu wysłania wiadomości e-mail z potwierdzeniem przy użyciu interfejsu API JavaMail.

ImageServlet

Serwlet ImageServlet pobiera i umieszcza obrazy produktów w bazie danych. Serwlet pobiera te obrazy ze stron JSP i stron HTML z bazy danych, a następnie udostępnia je z powrotem przeglądarce w ramach odpowiedzi HTTP.

AdminServlet

Serwlet AdminServlet przetwarza żądania użytkownika (przeglądarki) w celu ponownego zapełnienia bazy danych.

Podczas przetwarzania żądań ponownego zapełnienia ze strony help.jsp serwlet AdminServlet tworzy komponent bean BMP o nazwie ResetDB. Komponent ten usuwa wszystkie tabele bazy danych i zapełnia je ponownie wartościami początkowymi z pliku właściwości pbw.properties.

Komponenty EJB

W sekcji poniżej przedstawiono informacje dotyczące komponentów EJB używanych w tej aplikacji.

Catalog

Catalog to bezstanowy komponent bean sesji. Jest to podstawowy punkt dostępowy do komponentu bean obiektu CMP o nazwie Inventory. Bezstanowe komponenty bean sesji uzyskują zwykle dostęp do danych komponentów bean obiektów, a zarazem ograniczają liczbę używanych transakcji. Komponent bean sesji Catalog zawiera metody biznesowe, które umożliwiają pobieranie informacji z jednego lub większej liczby komponentów bean Inventory. Dostępne są metody, które umożliwiają dodawanie i usuwanie pozycji magazynowych. Komponent bean sesji Catalog zawiera również metody, które służą do modyfikowania istniejących komponentów bean Inventory.

Customer

Customer to komponent bean obiektu CMP. Zawiera dane dotyczące konta wymagane dla klienta i umożliwia zarządzanie tymi danymi. Komponent bean obiektu Customer zawiera metody umożliwiające tworzenie, znajdowanie i aktualizowanie informacji dotyczących klientów, a także weryfikowanie haseł i pobieranie pól w komponencie bean Customer.

Inventory

Inventory to komponent bean obiektu CMP. Ten komponent zawiera dane dotyczące pozycji magazynowych i umożliwia zarządzanie nimi. Dostępne są metody służące do znajdowania, tworzenia, pobierania i ustawiania pól danych.

Login

Login to bezstanowy komponent bean sesji. Ten komponent bean sesji łączy się za pomocą odpowiedniego interfejsu z komponentem bean obiektu CMP Customer w celu tworzenia i aktualizowania kont klientów.

Mailer

Mailer to bezstanowy komponent bean sesji. Komponent ten umożliwia tworzenie i wysyłanie wiadomości e-mail z potwierdzeniem zamówienia przy użyciu interfejsu JavaMail API.

Order

Order to komponent bean obiektu CMP. Komponent ten zawiera dane dotyczące zamówień i umożliwia zarządzanie nimi. Dostępne są metody służące do znajdowania, tworzenia i pobierania pól danych.

OrderItem to komponent bean obiektu CMP. Komponent ten zawiera pojedynczą pozycję zamówienia i umożliwia zarządzanie nią. Dostępne są metody służące do znajdowania, tworzenia i pobierania pól danych.

ReportGenerator

ReportGenerator to bezstanowy komponent bean sesji. Komponent ten umożliwia generowanie raportów na podstawie informacji znajdujących się w zamówieniach. Komponent bean sesji ReportGenerator łączy się za pomocą odpowiedniego interfejsu z komponentem bean obiektu CMP o nazwie Order. Raport wyszczególnia najlepiej sprzedającej się pozycje dla określonego zakresu dat oraz najwyżej notowane kody pocztowe dla określonego zakresu dat.

ShoppingCart

ShoppingCart to stanowy komponent bean sesji. Komponent ten przechowuje listę pozycji do zakupienia w ramach sesji HTTP. Komponent bean sesji ShoppingCart zawiera metody biznesowe, które umożliwiają dodawanie, usuwanie, i aktualizowanie pozycji magazynowych. Komponent ten ma również metodę służącą do tworzenia nowego komponentu bean obiektu CMP o nazwie Order, gdy klient jest już gotowy do sfinalizowania zakupów.

ResetDB

ResetDB to komponent bean obiektu BMP. Komponent ten umożliwia usunięcie wszystkich wierszy w tabelach bazy danych.