Klausur zur Vorlesung e-Commerce I & II - Lab4Inf
Klausur zur Vorlesung e-Commerce I & II - Lab4Inf
Klausur zur Vorlesung e-Commerce I & II - Lab4Inf
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Klausur</strong> <strong>zur</strong> <strong>Vorlesung</strong><br />
e-<strong>Commerce</strong> I & <strong>II</strong><br />
Prof. Dr. Nikolaus Wulff<br />
4. Juli 2005<br />
Diese <strong>Klausur</strong> besteht aus sieben Aufgaben, von denen Sie<br />
maximal fünf bearbeiten und lösen müssen, d.h. maximal fünf richtig<br />
gelöste Aufgaben entsprechen 100% der Gesamtpunktzahl.<br />
1. Schauen Sie sich daher die Aufgaben zunächst in Ruhe an und<br />
wählen Sie dann die Aufgaben, die Ihnen am leichtesten erscheinen.<br />
2. Sofern Sie mehr als fünf Aufgaben abgeben, werden die fünf<br />
schlechtesten Aufgaben bewertet.<br />
3. Schreiben Sie auf jedes Lösungsblatt Ihren Namen und zu welcher<br />
Aufgabe es gehört. Nummerieren Sie die Lösungsblätter durch.<br />
4. Schreiben Sie leserlich.<br />
5. Kommentieren Sie ihre Programmlistings, so dass klar ist, was Sie<br />
damit bezwecken.<br />
6. Für diese <strong>Klausur</strong> sind keine Hilfsmittel zugelassen.<br />
Viel Erfolg!<br />
1
Name:<br />
Matrikelnr.:<br />
1 JSP mit stateless SessionBean<br />
Eine JSP Seite benutzt eine stateless SessionBean CurrencyService zum<br />
Konvertieren eines Euro Betrags in eine andere Landeswährung.<br />
public interface CurrencyService extends<br />
javax.ejb.EJBObject {<br />
}<br />
double getCurrency(String country, double euro)<br />
throws RemoteException;<br />
Die Home Schnittstelle CurrencyServiceHome bietet eine einfache create-<br />
Methode ohne weitere Argumente.<br />
Aufgabe<br />
• Wie und in welcher Methode muss das Home-Interface der Bean gefunden<br />
werden?<br />
• Wie und wann wird die CurrencyService Bean clientseitig instanziiert?<br />
• Wie wird die Bean verwendet und wann freigegeben?<br />
• Schreiben Sie ein kurzes JSP Codefragment, das die Initialisierung und<br />
Verwendung dieser Bean demonstriert.<br />
Tip<br />
Denken Sie daran, was sie alles benötigen, um eine clientseitige Bean zu<br />
instantiieren: einen (Initial)Context, die Home-Schnittstelle und dann die<br />
Bean-Schnittstelle selber. Was vermerken Sie innerhalb der JSP, die Referenz<br />
auf die Home oder die Bean Schnittstelle? Wo hinterlegen Sie diese<br />
Information(en)?<br />
2 EJB-Servlet-Fassade<br />
In einer Web Anwendung wird dem Benutzer – modelliert als eine User-<br />
EntityBean–, eine Liste ausgewählten CDs angezeigt, die er während seiner<br />
Interaktion mit dem WebShopServlet zum Bestellen ausgewählt hat. Die CD<br />
Daten werden <strong>zur</strong> Minimierung des Netzwerkverkehrs zwischen Web- und<br />
EJB-Container von einer statefull SessionFassade ShoppingCart verwaltet<br />
und als Data Transfer Objekte übergeben.<br />
WS 2004/2005 <strong>Klausur</strong> e-<strong>Commerce</strong> I & <strong>II</strong> 2
Name:<br />
Matrikelnr.:<br />
public interface ShoppingCart extends<br />
javax.ejb.EJBObject {<br />
}<br />
void addCD(CDData cd) throws RemoteException;<br />
void removeCD(CDData cd) throws RemoteException;<br />
CDData[] getCDs() throws RemoteException;<br />
void makeOrder() throws RemoteException;<br />
In der makeOrder()-Methode werden dann die aktuell in der ShoppingCart<br />
vermerkten CDs persistent in einer Order-EJB gespeichert.<br />
Aufgabe<br />
• Modellieren Sie die Beziehungen zwischen dem WebShopServlet, User,<br />
Order, CD, CDData und ShoppingCart als UML Diagramm.<br />
• Von welchem Typ sind jeweils diese Beans?<br />
• Wie erreichen Sie die Zuordung von der ShoppingCart zum User und<br />
seiner Order?<br />
• Schreiben Sie eine zu Ihrem Model passende Implementierung der<br />
makeOrder-Methode für die ShoppingCartBean.<br />
Tip<br />
Sie können alle in der ShoppingCart-Bean deklarierten Methoden – mit<br />
Ausnahme von makeOrder –, ohne weitere Implementierung verwenden und<br />
als gegeben hinnehmen. Dokumentieren Sie ihre ShoppingCartBean-Implementierung,<br />
verwendete Attribute, Hilfsmethoden etc., so dass im Zweifelsfall<br />
klar wird, was Sie damit bezwecken.<br />
3 Deployment Descriptor<br />
• Welche Arten von Deployment Descriptoren gibt es in einer J2EE Anwendung<br />
und wozu dienen sie?<br />
• Wozu dient ein WAR Archive und was beinhaltet es?<br />
• Wie heißt der Deployment Descriptor einer EJB Anwendung und was<br />
sind seine wesentlichen Inhalte?<br />
• Was sind Struts und Tiles und wie werden diese in eine Applikation<br />
eingebunden?<br />
• Woher weiß der Web-Containter welches Servlet zu rufen ist?<br />
WS 2004/2005 <strong>Klausur</strong> e-<strong>Commerce</strong> I & <strong>II</strong> 3
Name:<br />
Matrikelnr.:<br />
4 Lebensdauer von Web Objekten<br />
Um Daten einer Web Anwendung verwalten zu können gibt es verschiedene<br />
Mechanismen. Was bedeuten im Kontext einer Servlet/JSP Anwendung<br />
• Request Scope<br />
• Session Scope<br />
• Application Scope<br />
• Page Scope?<br />
Welches sind die dazugehörigen Objekte, ihr Gültigkeitsbereich und wie lauten<br />
die entsprechenden Getter/Setter Methoden um Daten zu hinterlegen?<br />
Warum gibt es die HttpServletRequest-Methode<br />
• void setAttribute(String name, Objekt value)<br />
jedoch keine Methode<br />
• void setParameter(String name, Object value)?<br />
Tip<br />
Bedenken Sie, wie vom Browser per GET/POST-Request Daten an den Server<br />
übermittelt werden und wie Servlets untereinander Daten austauschen.<br />
5 Anfragen weiterleiten<br />
Servlet können eine Browseranfrage an eine andere URL umleiten. Was ist<br />
der Unterschied zwischen dem Verfahren<br />
• RequestDispatcher dispatcher;<br />
dipatcher = request.getRequestDispatcher(url);<br />
dispatcher.forward(request,response);<br />
und der Methode<br />
• response.sendRedirect(url)?<br />
6 MVC <strong>II</strong> Architektur<br />
Was sind die wesentlichen Abstraktionen einer MVC <strong>II</strong> Web Architektur<br />
mit Struts? Welche Klassen repräsentieren das Modell, die View und den<br />
Controller? Beschreiben Sie das sequenzielle Zusammenwirken der unterschiedlichen<br />
Instanzen <strong>zur</strong> Beantwortung einer Browseranfrage.<br />
WS 2004/2005 <strong>Klausur</strong> e-<strong>Commerce</strong> I & <strong>II</strong> 4
Name:<br />
Matrikelnr.:<br />
7 JSP Zähler<br />
Schreiben sie ein JSP Scriplet, dass zählt wie oft ein Benutzer diese Seite in<br />
seiner aktuellen Sitzung aufgerufen hat.<br />
Tip<br />
Denken sie daran wo und wie Sie die Zähler Instanz erzeugen und verwalten.<br />
Sie haben die Möglichkeiten Page-, Request-, Session- und Application-<br />
Scope, jedoch nur eine ist in diesem Kontext sinnvoll...<br />
WS 2004/2005 <strong>Klausur</strong> e-<strong>Commerce</strong> I & <strong>II</strong> 5