Web Applications 2. Java EE Martin Klíma. WA2 Slide 1

Size: px
Start display at page:

Download "Web Applications 2. Java EE Martin Klíma. WA2 Slide 1"

Transcription

1 Web Applications 2 Java EE Martin Klíma Slide 1

2 Web Application Architecture App 1 request Thin client (HTML) HTTP response controller model (JavaBea n) view (HTML) HTML generator Data App 2 App 3 Data Web Server Application Server Thick client (non - HTML) Slide 2

3 Java Java ME = Java Micro Edition Mobile applications Java SE = Java Standard Edition Desktop applications Java EE = Java Enterprise Edition Web & application servers Slide 3

4 Java EE Application Client Web Client Client Tier Client Servlet Web Tier Java EE Server Enterprise Beans Enterprise Beans Bussiness Tier Database Database EIS Tier Database Server Slide 4

5 Deployment Each JEE application is packed into a standard format It contains Functional components like EJB, JSP, servlets, applets, static resources, Descriptor Once packed it can be deployed on any standard server Slide 5

6 Servlet Application Client Web Client Client Tier Client Servlets JSP Pages Web Tier Java EE Server Enterprise Beans Enterprise Beans Bussiness Tier Database Database EIS Tier Database Server Slide 6

7 Servlets Servlet is a class that augments the functionality of a server This is how we can influence the web pages generation. All servlets must implement javax.servlet.servlet interface, which defines the life cycle methods required by the servlet container. The most common way is to extend javax.servlet.http.httpservlet. A Servlet je mapped to particular URL (one or more) through web.xml file. Slide 7

8 Servlets API <<interface>> ServletRequest <<interface>> Servlet service() <<interface>> ServletResponse <<interface>> HTTPServlet service() Slide 8

9 Servlet lifecycle new destroyed ready init() destroy() service() Slide 9

10 Service method java.lang.object +--javax.servlet.genericservlet k +--javax.servlet.http.httpservlet A A GenericServlet has the service method. HTTPServlet overloads the service method by a set of methods corresponding to HTTP methods doget dopost doput dodelete dooptions dohead dotrace Slide 10

11 The servicing methods parameters Request is encapsulated ServletRequest resp. HttpServletRequest see and HttpServletRequest interesting methods Object getparameter(string name) void setparameter(string name, Object o) and many others Slide 11

12 The servicing methods parameters II To generate a response, write Into object of type ServletResponse resp. HttpServletResponse see and HttpServletResponse interesting methods addheader(string name, String value) PrintWriter getwriter() void addcookie(cookie cookie) and many others Slide 12

13 Form parameters nickname password protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); PrintWriter out = response.getwriter(); try { out.println("<html>"); out.println("<head>"); out.println("<title>servlet FirstServlet</title>"); out.println("</head>"); out.println("<body>"); String jmeno = request.getparameter("nickname"); if (null!= jmeno) { out.println("jméno"); out.println("</body>"); out.println("</html>"); finally { out.close(); Slide 13

14 Usual technique how to generate a response Get the output stream For text output use PrintWriter For binary outpout use ServletOutputStream Modify headers, set output type, e.g. text/html, (MIME type) method setcontenttype(string type) Set buffering method setbuffersize(int size) Slide 14

15 package cz.cvut.fel; import java.io.*; import java.net.*; import javax.servlet.*; import javax.servlet.http.*; public class FirstServlet extends HttpServlet { Overloading the GET method protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); PrintWriter out = response.getwriter(); try { out.println("<html>"); out.println("<head>"); out.println("<title>servlet FirstServlet</title>"); out.println("</head>"); out.println("<body>"); out.println("ahoj"); out.println("</body>"); out.println("</html>"); finally { out.close(); Write to output stream Slide 15

16 WEB XML Slide 16

17 Web.xml Configures the behavior of servlet container <?xml version="1.0" encoding="utf-8"?> <web-app version="2.5" xmlns=" xmlns:xsi=" xsi:schemalocation=" <servlet> <servlet-name>firstservlet</servlet-name> <servlet-class>cz.cvut.fel.firstservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>firstservlet</servlet-name> <url-pattern>/firstservlet</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>firstservlet</welcome-file> </welcome-file-list> </web-app> Servlet name i URL mapping Servlet may have multiple mappings Servlet implementing class The default mapping Slide 17

18 Web.xml - parameters <?xml version="1.0" encoding="utf-8"?> <web-app version="2.5" xmlns=" xmlns:xsi=" xsi:schemalocation=" <context-param> <param-name>author</param-name> <param-value>martin Klíma</param-value> </context-param> <context-param> <param-name>affiliation</param-name> <param-value>čvut</param-value> </context-param> <servlet> <servlet-name>firstservlet</servlet-name> <servlet-class>cz.cvut.fel.firstservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>firstservlet</servlet-name> <url-pattern>/firstservlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>firstservlet</servlet-name> <url-pattern>/prvniservlet</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>firstservlet</welcome-file> </welcome-file-list> </web-app> Slide 18 Parameters are accessible via Context object

19 JAVASERVER PAGES - JSP Slide 19

20 JSP JSP is a text document containing static data, usually (X)HTML JSP elements that generate dynamic content Suffix.jsp Two versions standard XML We will use the standard syntax further in the lecture. Slide 20

21 The simples jsp page <%-- Document : stranka1 Created on : , 11:44:52 Author : xklima --%> <%@page contenttype="text/html" pageencoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>jsp Page</title> </head> <body> <h2>hello World!</h2> </body> </html> Slide 21

22 JSP life cycle Servlet Containere JSP comple Servlet generated from JSP HTTP request if JSP is newer than servlet then compile else execute servlet Slide 22

23 MVC Slide 23

24 MVC Bean, JSB, Servlet pocetkusu=7& produktid=22 pocetkusu produktid Bean (M) Browser Servlet (C) forward use JSP (V) Servlet (C) reads http parameters, calls the logic (M). Parameters reflect what the use wants (form data, etc.) Finally, when the logic is done, the control is handed over to JSP Slide 24

25 Java Bean can be used as application logic Servlet - Controller JavaBean - Model HTTP request StatementController Use, create StatementBean Forward JSP - view MVC StatementForm Slide 25

26 JavaBean can be used for information sharing public class StatementBean implements Serializable { protected ArrayList <String> statements; public StatementBean(){ super(); statements = new ArrayList <String>(); public synchronized String getstatement(int i) { return statements.get(i); public synchronized List <String> getallstatements(){ return statements; public synchronized void addstatement (String statement) { if (!statements.contains(statement)) { statements.add(statement); public synchronized int getstatementcount() { return statements.size(); Slide 26

27 Form for adding statements statementform.jsp contenttype="text/html" pageencoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>statements</title> </head> <body> <h2>list</h2> <jsp:usebean id="statements" scope="session" class="cz.cvut.fel.statementbean" /> <% for (String statement : statements.getallstatements()) { out.println(statement + "<br/>"); </html> %> <form action="statementcontroller" method="get"> <input type="text" name="statement"/> <input type="submit" value="submit" name="submit"/> </form> </body> Slide 27

28 Controller - servlet protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); PrintWriter out = response.getwriter(); try { if (request.getparameter("statement")!= null) { StatementBean sb = (StatementBean) request.getsession().getattribute("statements"); if (sb == null) { sb = new StatementBean(); sb.addstatement((string)request.getparameter("statement")); request.getsession().setattribute("statements", sb); finally { RequestDispatcher dispatcher = getservletcontext().getrequestdispatcher("/statementform.jsp"); dispatcher.forward(request, response); Slide 28

29 Serialization in Java Value transfer and storage (marshal, unmarshal) java.io.serializable transient is excluded from serialization serialversionuid NotSerializableException MarshalException, UnmarshalException private void writeobject(objectoutputstream oos) throws IOException; private void readobject(objectinputstream oos) throws IOException, ClassNotFoundException; Slide 29

30 APPLICATION SERVER Slide 30

31 Web application architecture application server request App 1 Thin client (HTML) HTTP response controller model (JavaBean) view (HTML) HTML generator Web Server Data App 2 App 3 Application Server Data Thick client (non - HTML) Slide 31

32 Enterprise Beans A component running on application server Managed by EJB container Accessible from a stand-alone application (RMI) Accessible from web application (Servlet container RMI) Architecture ready to use session management transaction management db connection management use authentication, authorization asynchronous messaging Slide 32

33 Enterprise beans Several types of EJB Session bean Stateless Singleton (since EJB 3.1) Statefull Entity bean EJB 3.0 ->Entity Message driven bean Slide 33

34 Session beans Represent application logic Two types: Bound to a particular client (statefull)!!!not a HTTP session Client independent (stateless) Slide 34

35 Entity Objects representing a persistent element (ORM) Bound to database Transactions, search Object OP approach to data persistency Relations to other entities Slide 35

36 Message driven bean Event driven application logic Events generated by other applications B2B Asynchronous Typically very short lifetime Not bound to persistant data Stateless Slide 36

37 EJB 3.x POJO = Plain Old Java Object Container is driven by annotations provided Container controls their livecycle Local and remote interface Registered in JNDI (registry) Serach by name Remote access Slide 37

38 (mappedname = "Repeater") public class RepeaterSessionBean implements RepeaterSessionBeanRemote, RepeaterSessionBeanLocal { public String repeatnormallocal(final String text) { return text; public String repeatnormalremote(final String text) { return text; public String repeatreverseremote(final String text) { return getreversestring(text); public String repeatreverselocal(final String text) { return getreversestring(text); Stateless EJB JNDI publicinterface RepeaterSessionBeanRemote { String repeatnormalremote(final String text); String repeatreverseremote(final String publicinterface RepeaterSessionBeanLocal { String repeatnormallocal(final String text); String repeatreverselocal(final String text); private String getreversestring(string text) { StringBuffer b = new StringBuffer(text.length()); for (int i = text.length(); i > 0; i--) { b.append(text.charat(i - 1)); return b.tostring(); Slide 38

39 Example cont. public class FormBean1 RepeaterSessionBeanLocal repeaterbean; private String text; private String reverse; Injection public FormBean1() { public String gettext() { return text; public void settext(string text) { this.text = text; public String translate() { setreverse(repeaterbean.repeatreverselocal(text)); return null; Použití public String getreverse() { return reverse; public void setreverse(string reverse) { this.reverse = reverse; Slide 39

40 Stateless { String name() default ""; String mappedname() default ""; String description() Stateful { String name() default ""; String mappedname() default ""; String description() default ""; Slide 40

41 Stateless EJB livecycle stateless = no memory Slide 41

42 Stateful EJB Livecycle Slide 42

43 The same image without transactions Slide 43

44 Lookup and use 1. Dependency Injection Container takes care of the DI Annotation helps to do the job public class FormBean1 RepeaterSessionBeanLocal repeaterbean; 2. JNDI lookup static RepeaterSessionBeanRemote repeatersessionbean; Context context; try { context = new InitialContext(); repeatersessionbean = (RepeaterSessionBeanRemote) context.lookup("jndi_name"); catch (NamingException e) { e.printstacktrace(); throw new RuntimeException(e); Slide 44

45 Calling Stateless EJB from a web application Same as from stand-alone application Usong a Stateful EJB is not recommended from a stateless context (HTTPServlet) Use Stateless EJB whenever possible Slide 45

46 Local & Remote interface RMI is complicated and resource concuming In same cases the EJB is located in the same VM can be called locally Therefore there is a Local Interface Slide 46

47 Stateless vs Statefull EJB Use stateless whenever possible Stateless are easy to scale Stateless do not need persistency Statefull must be stored in memory Demanding for the server Do not scale well Good for big tada processing - transactional We do not have to care of multithreading Slide 47

48 Interceptor Interceptor is kind of event handler Similar to event handlers elsewhere in Java (Swing) Depending on the EJB bean, for example: Slide 48

49 Two way to use interceptors 1. Directly in the Bean public Object profile(invocationcontext inv) throws Exception { long time = System.currentTimeMillis(); try { return inv.proceed(); finally { long endtime = time - System.currentTimeMillis(); System.out.println(inv.getMethod() + " took " + endtime + " milliseconds."); Slide 49

50 In a separate class linked by = "Repeater") public class RepeaterSessionBean implements RepeaterSessionBeanRemote, RepeaterSessionBeanLocal { public String repeatnormallocal(final String text) { return text; Comma separated list public String repeatnormalremote(final String text) { return text; public class RepeaterInterceptor public Object profile(invocationcontext ctx) throws Exception { try { System.out.print("Zavolana metoda " + ctx.getmethod().getname()); finally { return ctx.proceed(); Slide 50

51 MESSAGE DRIVEN BEANS MDB Slide 51

52 What is MDB? Components that process messages Similar to Stateless EJB stateless interchangeable they have different purpose Messaging is a basic principle of distributed systems MDB is typically target for messages Slide 52

53 MDB JNDI assigned Container Client Destination or endpoint MDB MDB MDB Slide 53

54 MDB Two communication modes Point to point: queues, FIFO associated with one bean Publish / subscribe: topics, distribuce multiple receivers Implements interface javax.jms.messagelistener onmessage method Slide 54

55 MDB Lifecycle Slide 55

56 JMS Java Message Service JMS message Several types of message Header, properties and body Header: delivery mode, msg ID, timestamp, priority, ReplyTo, msg type Properties: key, value Body: Stream, Map, Text, Object, Bytes Slide 56

57 Example = "jms/school", activationconfig = = "acknowledgemode", propertyvalue = = "destinationtype", propertyvalue = "javax.jms.queue") ) public class SchoolMessageBean implements MessageListener { public SchoolMessageBean() { public void onmessage(message message) { TextMessage tm = (TextMessage) message; String teacher; try { teacher = tm.gettext(); System.out.println("Prijata informace o pridani ucitele: " + teacher); catch (JMSException ex) { Logger.getLogger(SchoolMessageBean.class.getName()).log(Level.SEVERE, null, ex); Slide 57

58 Client sending public class SchoolSessionBean implements SchoolSessionBeanRemote, SchoolSessionBeanLocal = "jms/school") private Queue = "jms/schoolfactory") private ConnectionFactory schoolfactory; public PartTimeTeacherEntity addparttimeteacher(final String firstname, final String lastname, final float parttime) { try { sendjmsmessagetoschool(firstname + teacher added ); catch (JMSException ex) { Logger.getLogger(SchoolSessionBean.class.getName()).log(Level.SEVERE, null, ex); return teacher; private Message createjmsmessageforjmsschool(session session, Object messagedata) throws JMSException { TextMessage tm = session.createtextmessage(); tm.settext(messagedata.tostring()); return tm; pokračování na dalším slide Slide 58

59 Client cont. private void sendjmsmessagetoschool(object messagedata) throws JMSException { Connection connection = null; Session session = null; try { connection = schoolfactory.createconnection(); session = connection.createsession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer messageproducer = session.createproducer(school); messageproducer.send(createjmsmessageforjmsschool(session, messagedata)); finally { if (session!= null) { try { session.close(); catch (JMSException e) { Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "Cannot close session", e); if (connection!= null) { connection.close(); Slide 59

60 References 30/ Slide 60

Stateless -Session Bean

Stateless -Session Bean Stateless -Session Bean Prepared by: A.Saleem Raja MCA.,M.Phil.,(M.Tech) Lecturer/MCA Chettinad College of Engineering and Technology-Karur E-Mail: asaleemrajasec@gmail.com Creating an Enterprise Application

More information

Session 9. Introduction to Servlets. Lecture Objectives

Session 9. Introduction to Servlets. Lecture Objectives Session 9 Introduction to Servlets Lecture Objectives Understand the foundations for client/server Web interactions Understand the servlet life cycle 2 10/11/2018 1 Reading & Reference Reading Use the

More information

JAVA SERVLET. Server-side Programming INTRODUCTION

JAVA SERVLET. Server-side Programming INTRODUCTION JAVA SERVLET Server-side Programming INTRODUCTION 1 AGENDA Introduction Java Servlet Web/Application Server Servlet Life Cycle Web Application Life Cycle Servlet API Writing Servlet Program Summary 2 INTRODUCTION

More information

Session 8. Introduction to Servlets. Semester Project

Session 8. Introduction to Servlets. Semester Project Session 8 Introduction to Servlets 1 Semester Project Reverse engineer a version of the Oracle site You will be validating form fields with Ajax calls to a server You will use multiple formats for the

More information

Java TM. Message-Driven Beans. Jaroslav Porubän 2007

Java TM. Message-Driven Beans. Jaroslav Porubän 2007 Message-Driven Beans Jaroslav Porubän 2007 Java Message Service Vendor-agnostic Java API that can be used with many different message-oriented middleware Supports message production, distribution, delivery

More information

Java Enterprise Edition. Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 1

Java Enterprise Edition. Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 1 Java Enterprise Edition Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 1 Java Beans Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 2 Java Bean POJO class : private Attributes public

More information

Servlet Fudamentals. Celsina Bignoli

Servlet Fudamentals. Celsina Bignoli Servlet Fudamentals Celsina Bignoli bignolic@smccd.net What can you build with Servlets? Search Engines E-Commerce Applications Shopping Carts Product Catalogs Intranet Applications Groupware Applications:

More information

Enterprise Java Technologies (Part 1 of 3) Component Architecture. Overview of Java EE. Java Servlets

Enterprise Java Technologies (Part 1 of 3) Component Architecture. Overview of Java EE. Java Servlets ID2212 Network Programming with Java Lecture 10 Enterprise Java Technologies (Part 1 of 3) Component Architecture. Overview of Java EE. Java Servlets Leif Lindbäck, Vladimir Vlassov KTH/ICT/SCS HT 2015

More information

HttpServlet ( Class ) -- we will extend this class to handle GET / PUT HTTP requests

HttpServlet ( Class ) -- we will extend this class to handle GET / PUT HTTP requests What is the servlet? Servlet is a script, which resides and executes on server side, to create dynamic HTML. In servlet programming we will use java language. A servlet can handle multiple requests concurrently.

More information

Servlets1. What are Servlets? Where are they? Their job. Servlet container. Only Http?

Servlets1. What are Servlets? Where are they? Their job. Servlet container. Only Http? What are Servlets? Servlets1 Fatemeh Abbasinejad abbasine@cs.ucdavis.edu A program that runs on a web server acting as middle layer between requests coming from a web browser and databases or applications

More information

Basics of programming 3. Java Enterprise Edition

Basics of programming 3. Java Enterprise Edition Basics of programming 3 Java Enterprise Edition Introduction Basics of programming 3 BME IIT, Goldschmidt Balázs 2 Enterprise environment Special characteristics continuous availability component based

More information

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies J2EE - Version: 25 Developing Enterprise Applications with J2EE Enterprise Technologies Developing Enterprise Applications with J2EE Enterprise Technologies J2EE - Version: 25 5 days Course Description:

More information

Advanced Web Technology

Advanced Web Technology Berne University of Applied Sciences Dr. E. Benoist Winter Term 2005-2006 Presentation 1 Presentation of the Course Part Java and the Web Servlet JSP and JSP Deployment The Model View Controler (Java Server

More information

Web based Applications, Tomcat and Servlets - Lab 3 -

Web based Applications, Tomcat and Servlets - Lab 3 - CMPUT 391 Database Management Systems Web based Applications, - - CMPUT 391 Database Management Systems Department of Computing Science University of Alberta The Basic Web Server CMPUT 391 Database Management

More information

This course is intended for Java programmers who wish to write programs using many of the advanced Java features.

This course is intended for Java programmers who wish to write programs using many of the advanced Java features. COURSE DESCRIPTION: Advanced Java is a comprehensive study of many advanced Java topics. These include assertions, collection classes, searching and sorting, regular expressions, logging, bit manipulation,

More information

CO Java EE 7: Back-End Server Application Development

CO Java EE 7: Back-End Server Application Development CO-85116 Java EE 7: Back-End Server Application Development Summary Duration 5 Days Audience Application Developers, Developers, J2EE Developers, Java Developers and System Integrators Level Professional

More information

Servlet Basics. Agenda

Servlet Basics. Agenda Servlet Basics 1 Agenda The basic structure of servlets A simple servlet that generates plain text A servlet that generates HTML Servlets and packages Some utilities that help build HTML The servlet life

More information

Enterprise Java Unit 1- Chapter 4 Prof. Sujata Rizal Servlet API and Lifecycle

Enterprise Java Unit 1- Chapter 4 Prof. Sujata Rizal Servlet API and Lifecycle Introduction Now that the concept of servlet is in place, let s move one step further and understand the basic classes and interfaces that java provides to deal with servlets. Java provides a servlet Application

More information

Module 11 Developing Message-Driven Beans

Module 11 Developing Message-Driven Beans Module 11 Developing Message-Driven Beans Objectives Describe the properties and life cycle of message-driven beans Create a JMS message-driven bean Create lifecycle event handlers for a JMS message-driven

More information

Demonstration of Servlet, JSP with Tomcat, JavaDB in NetBeans

Demonstration of Servlet, JSP with Tomcat, JavaDB in NetBeans Demonstration of Servlet, JSP with Tomcat, JavaDB in NetBeans Installation pre-requisites: NetBeans 7.01 or above is installed; Tomcat 7.0.14.0 or above is installed properly with NetBeans; (see step 7

More information

Servlets by Example. Joe Howse 7 June 2011

Servlets by Example. Joe Howse 7 June 2011 Servlets by Example Joe Howse 7 June 2011 What is a servlet? A servlet is a Java application that receives HTTP requests as input and generates HTTP responses as output. As the name implies, it runs on

More information

Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2

Berner Fachhochschule Haute cole spcialise bernoise Berne University of Applied Sciences 2 Java Servlets Adv. Web Technologies 1) Servlets (introduction) Emmanuel Benoist Fall Term 2016-17 Introduction HttpServlets Class HttpServletResponse HttpServletRequest Lifecycle Methods Session Handling

More information

JavaServer Pages (JSP)

JavaServer Pages (JSP) JavaServer Pages (JSP) The Context The Presentation Layer of a Web App the graphical (web) user interface frequent design changes usually, dynamically generated HTML pages Should we use servlets? No difficult

More information

Handout 31 Web Design & Development

Handout 31 Web Design & Development Lecture 31 Session Tracking We have discussed the importance of session tracking in the previous handout. Now, we ll discover the basic techniques used for session tracking. Cookies are one of these techniques

More information

Java Enterprise Edition

Java Enterprise Edition Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data

More information

Kamnoetvidya Science Academy. Object Oriented Programming using Java. Ferdin Joe John Joseph. Java Session

Kamnoetvidya Science Academy. Object Oriented Programming using Java. Ferdin Joe John Joseph. Java Session Kamnoetvidya Science Academy Object Oriented Programming using Java Ferdin Joe John Joseph Java Session Create the files as required in the below code and try using sessions in java servlets web.xml

More information

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management Distributed Systems Messaging and JMS 1 Example scenario Scenario: Store inventory is low This impacts multiple departments Inventory Sends a message to the factory when the inventory level for a product

More information

The Basic Web Server CGI. CGI: Illustration. Web based Applications, Tomcat and Servlets - Lab 3 - CMPUT 391 Database Management Systems 4

The Basic Web Server CGI. CGI: Illustration. Web based Applications, Tomcat and Servlets - Lab 3 - CMPUT 391 Database Management Systems 4 CMPUT 391 Database Management Systems The Basic Web based Applications, - - CMPUT 391 Database Management Systems Department of Computing Science University of Alberta CMPUT 391 Database Management Systems

More information

Java EE 7: Back-End Server Application Development

Java EE 7: Back-End Server Application Development Oracle University Contact Us: Local: 0845 777 7 711 Intl: +44 845 777 7 711 Java EE 7: Back-End Server Application Development Duration: 5 Days What you will learn The Java EE 7: Back-End Server Application

More information

JSP. Common patterns

JSP. Common patterns JSP Common patterns Common JSP patterns Page-centric (client-server) CLIENT JSP or Servlet CLIENT Enterprise JavaBeans SERVER DB Common JSP patterns Page-centric 1 (client-server) Page View request response

More information

Java servlets CSCI 470: Web Science Keith Vertanen Copyright 2013

Java servlets CSCI 470: Web Science Keith Vertanen Copyright 2013 Java servlets CSCI 470: Web Science Keith Vertanen Copyright 2013 Overview Dynamic web content genera2on (thus far) CGI Web server modules Server- side scrip2ng e.g. PHP, ASP, JSP Custom web server Java

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Java Server Pages (JSP) Dr. Basem Suleiman Service Oriented Computing Group, CSE, UNSW Australia Semester 1, 2016, Week 3 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2442

More information

Fast Track to Java EE 5 with Servlets, JSP & JDBC

Fast Track to Java EE 5 with Servlets, JSP & JDBC Duration: 5 days Description Java Enterprise Edition (Java EE 5) is a powerful platform for building web applications. The Java EE platform offers all the advantages of developing in Java plus a comprehensive

More information

Introduction to Servlets. After which you will doget it

Introduction to Servlets. After which you will doget it Introduction to Servlets After which you will doget it Servlet technology A Java servlet is a Java program that extends the capabilities of a server. Although servlets can respond to any types of requests,

More information

Fast Track to Java EE

Fast Track to Java EE Java Enterprise Edition is a powerful platform for building web applications. This platform offers all the advantages of developing in Java plus a comprehensive suite of server-side technologies. This

More information

The Structure and Components of

The Structure and Components of Web Applications The Structure and Components of a JEE Web Application Sample Content garth@ggilmour.com The Structure t of a Web Application The application is deployed in a Web Archive A structured jar

More information

Servlets and JSP (Java Server Pages)

Servlets and JSP (Java Server Pages) Servlets and JSP (Java Server Pages) XML HTTP CGI Web usability Last Week Nan Niu (nn@cs.toronto.edu) CSC309 -- Fall 2008 2 Servlets Generic Java2EE API for invoking and connecting to mini-servers (lightweight,

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.

More information

Java Servlets. Preparing your System

Java Servlets. Preparing your System Java Servlets Preparing to develop servlets Writing and running an Hello World servlet Servlet Life Cycle Methods The Servlet API Loading and Testing Servlets Preparing your System Locate the file jakarta-tomcat-3.3a.zip

More information

Chapter 6 Enterprise Java Beans

Chapter 6 Enterprise Java Beans Chapter 6 Enterprise Java Beans Overview of the EJB Architecture and J2EE platform The new specification of Java EJB 2.1 was released by Sun Microsystems Inc. in 2002. The EJB technology is widely used

More information

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand) Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand) Code: URL: D101074GC10 View Online The Developing Applications for the Java EE 7 Platform training teaches you how

More information

Chapter 2 How to structure a web application with the MVC pattern

Chapter 2 How to structure a web application with the MVC pattern Chapter 2 How to structure a web application with the MVC pattern Murach's Java Servlets/JSP (3rd Ed.), C2 2014, Mike Murach & Associates, Inc. Slide 1 Objectives Knowledge 1. Describe the Model 1 pattern.

More information

INTRODUCTION TO SERVLETS AND WEB CONTAINERS. Actions in Accord with All the Laws of Nature

INTRODUCTION TO SERVLETS AND WEB CONTAINERS. Actions in Accord with All the Laws of Nature INTRODUCTION TO SERVLETS AND WEB CONTAINERS Actions in Accord with All the Laws of Nature Web server vs web container Most commercial web applications use Apache proven architecture and free license. Tomcat

More information

CMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition

CMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition CMP 436/774 Introduction to Java Enterprise Edition Fall 2013 Department of Mathematics and Computer Science Lehman College, CUNY 1 Java Enterprise Edition Developers today increasingly recognize the need

More information

Questions and Answers

Questions and Answers Q.1) Servlet mapping defines A. An association between a URL pattern and a servlet B. An association between a URL pattern and a request page C. An association between a URL pattern and a response page

More information

4.1 The Life Cycle of a Servlet 4.2 The Java Servlet Development Kit 4.3 The Simple Servlet: Creating and compile servlet source code, start a web

4.1 The Life Cycle of a Servlet 4.2 The Java Servlet Development Kit 4.3 The Simple Servlet: Creating and compile servlet source code, start a web UNIT - 4 Servlet 4.1 The Life Cycle of a Servlet 4.2 The Java Servlet Development Kit 4.3 The Simple Servlet: Creating and compile servlet source code, start a web browser and request the servlet, example

More information

Develop an Enterprise Java Bean for Banking Operations

Develop an Enterprise Java Bean for Banking Operations Develop an Enterprise Java Bean for Banking Operations Aim: Develop a Banking application using EJB3.0 Software and Resources: Software or Resource Version Required NetBeans IDE 6.7, Java version Java

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 5 days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options.

More information

Table of Contents. Introduction... xxi

Table of Contents. Introduction... xxi Introduction... xxi Chapter 1: Getting Started with Web Applications in Java... 1 Introduction to Web Applications... 2 Benefits of Web Applications... 5 Technologies used in Web Applications... 5 Describing

More information

SSC - Web applications and development Introduction and Java Servlet (I)

SSC - Web applications and development Introduction and Java Servlet (I) SSC - Web applications and development Introduction and Java Servlet (I) Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics What will we learn

More information

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java EJB Enterprise Java EJB Beans ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY Peter R. Egli 1/23 Contents 1. What is a bean? 2. Why EJB? 3. Evolution

More information

Session 8. JavaBeans. Reading & Reference. Reading. Reference. Session 8 Java Beans. 2/27/2013 Robert Kelly, Head First Chapter 3 (MVC)

Session 8. JavaBeans. Reading & Reference. Reading. Reference. Session 8 Java Beans. 2/27/2013 Robert Kelly, Head First Chapter 3 (MVC) Session 8 JavaBeans 1 Reading Reading & Reference Head First Chapter 3 (MVC) Reference JavaBeans Tutorialdocs.oracle.com/javase/tutorial/javabeans/ 2 2/27/2013 1 Lecture Objectives Understand how the Model/View/Controller

More information

Servlets. An extension of a web server runs inside a servlet container

Servlets. An extension of a web server runs inside a servlet container Servlets What is a servlet? An extension of a web server runs inside a servlet container A Java class derived from the HttpServlet class A controller in webapplications captures requests can forward requests

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 3 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2411 1 Review:

More information

CS506 Web Design & Development Final Term Solved MCQs with Reference

CS506 Web Design & Development Final Term Solved MCQs with Reference with Reference I am student in MCS (Virtual University of Pakistan). All the MCQs are solved by me. I followed the Moaaz pattern in Writing and Layout this document. Because many students are familiar

More information

Example simple-mdb can be browsed at https://github.com/apache/tomee/tree/master/examples/simple-mdb

Example simple-mdb can be browsed at https://github.com/apache/tomee/tree/master/examples/simple-mdb Simple MDB Example simple-mdb can be browsed at https://github.com/apache/tomee/tree/master/examples/simple-mdb Below is a fun app, a chat application that uses JMS. We create a message driven bean, by

More information

Java TM. JavaServer Faces. Jaroslav Porubän 2008

Java TM. JavaServer Faces. Jaroslav Porubän 2008 JavaServer Faces Jaroslav Porubän 2008 Web Applications Presentation-oriented Generates interactive web pages containing various types of markup language (HTML, XML, and so on) and dynamic content in response

More information

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes Java CORE JAVA Core Java Programing (Course Duration: 40 Hours) Introduction to Java What is Java? Why should we use Java? Java Platform Architecture Java Virtual Machine Java Runtime Environment A Simple

More information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing Applications with Java EE 6 on WebLogic Server 12c Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need

More information

J2EE. Enterprise Architecture Styles: Two-Tier Architectures:

J2EE. Enterprise Architecture Styles: Two-Tier Architectures: J2EE J2EE is a unified standard for distributed applications through a component-based application model. It is a specification, not a product. There is a reference implementation available from Sun. We

More information

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java.

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java. [Course Overview] The Core Java technologies and application programming interfaces (APIs) are the foundation of the Java Platform, Standard Edition (Java SE). They are used in all classes of Java programming,

More information

Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1

Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1 Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1 Introducing Object Oriented Programming... 2 Explaining OOP concepts... 2 Objects...3

More information

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Java- EE Web Application Development with Enterprise JavaBeans and Web Services Java- EE Web Application Development with Enterprise JavaBeans and Web Services Duration:60 HOURS Price: INR 8000 SAVE NOW! INR 7000 until December 1, 2011 Students Will Learn How to write Session, Message-Driven

More information

Asynchrone Kommunikation mit Message Driven Beans

Asynchrone Kommunikation mit Message Driven Beans Asynchrone Kommunikation mit Message Driven Beans Arnold Senn (Technical Consultant) asenn@borland.com Outline Why Messaging Systems? Concepts JMS specification Messaging Modes Messages Implementation

More information

Java EE 6: Develop Business Components with JMS & EJBs

Java EE 6: Develop Business Components with JMS & EJBs Oracle University Contact Us: + 38516306373 Java EE 6: Develop Business Components with JMS & EJBs Duration: 4 Days What you will learn This Java EE 6: Develop Business Components with JMS & EJBs training

More information

Distributed Multitiered Application

Distributed Multitiered Application Distributed Multitiered Application Java EE platform uses a distributed multitiered application model for enterprise applications. Logic is divided into components https://docs.oracle.com/javaee/7/tutorial/overview004.htm

More information

&' () - #-& -#-!& 2 - % (3" 3 !!! + #%!%,)& ! "# * +,

&' () - #-& -#-!& 2 - % (3 3 !!! + #%!%,)& ! # * +, ! "# # $! " &' ()!"#$$&$'(!!! ($) * + #!,)& - #-& +"- #!(-& #& #$.//0& -#-!& #-$$!& 1+#& 2-2" (3" 3 * * +, - -! #.// HttpServlet $ Servlet 2 $"!4)$5 #& 5 5 6! 0 -.// # 1 7 8 5 9 2 35-4 2 3+ -4 2 36-4 $

More information

Advanced Internet Technology Lab # 4 Servlets

Advanced Internet Technology Lab # 4 Servlets Faculty of Engineering Computer Engineering Department Islamic University of Gaza 2011 Advanced Internet Technology Lab # 4 Servlets Eng. Doaa Abu Jabal Advanced Internet Technology Lab # 4 Servlets Objective:

More information

Principles and Techniques of DBMS 6 JSP & Servlet

Principles and Techniques of DBMS 6 JSP & Servlet Principles and Techniques of DBMS 6 JSP & Servlet Haopeng Chen REliable, INtelligent and Scalable Systems Group (REINS) Shanghai Jiao Tong University Shanghai, China http://reins.se.sjtu.edu.cn/~chenhp

More information

Deccansoft Software Services. J2EE Syllabus

Deccansoft Software Services. J2EE Syllabus Overview: Java is a language and J2EE is a platform which implements java language. J2EE standard for Java 2 Enterprise Edition. Core Java and advanced java are the standard editions of java whereas J2EE

More information

Oracle 10g: Build J2EE Applications

Oracle 10g: Build J2EE Applications Oracle University Contact Us: (09) 5494 1551 Oracle 10g: Build J2EE Applications Duration: 5 Days What you will learn Leading companies are tackling the complexity of their application and IT environments

More information

Problems in Scaling an Application Client

Problems in Scaling an Application Client J2EE What now? At this point, you understand how to design servers and how to design clients Where do you draw the line? What are issues in complex enterprise platform? How many servers? How many forms

More information

How to structure a web application with the MVC pattern

How to structure a web application with the MVC pattern Objectives Chapter 2 How to structure a web application with the MVC pattern Knowledge 1. Describe the Model 1 pattern. 2. Describe the Model 2 (MVC) pattern 3. Explain how the MVC pattern can improve

More information

The Java EE 6 Tutorial

The Java EE 6 Tutorial 1 of 8 12/05/2013 5:13 PM Document Information Preface Part I Introduction 1. Overview 2. Using the Tutorial Examples Part II The Web Tier 3. Getting Started with Web Applications 4. JavaServer Faces Technology

More information

Advanced Java Programming

Advanced Java Programming Advanced Java Programming Length: 4 days Description: This course presents several advanced topics of the Java programming language, including Servlets, Object Serialization and Enterprise JavaBeans. In

More information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP 2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries

More information

Distributed Systems 1

Distributed Systems 1 95-702 Distributed Systems 1 Joe Intro Syllabus highlights 95-702 Distributed Systems 2 Understand the HTTP application protocol Request and response messages Methods / safety / idempotence Understand

More information

Module 3 Web Component

Module 3 Web Component Module 3 Component Model Objectives Describe the role of web components in a Java EE application Define the HTTP request-response model Compare Java servlets and JSP components Describe the basic session

More information

Introduction to Java Servlets. SWE 432 Design and Implementation of Software for the Web

Introduction to Java Servlets. SWE 432 Design and Implementation of Software for the Web Introduction to Java Servlets James Baldo Jr. SWE 432 Design and Implementation of Software for the Web Web Applications A web application uses enabling technologies to 1. make web site contents dynamic

More information

LTBP INDUSTRIAL TRAINING INSTITUTE

LTBP INDUSTRIAL TRAINING INSTITUTE Java SE Introduction to Java JDK JRE Discussion of Java features and OOPS Concepts Installation of Netbeans IDE Datatypes primitive data types non-primitive data types Variable declaration Operators Control

More information

Introduction to JSP and Servlets Training 5-days

Introduction to JSP and Servlets Training 5-days QWERTYUIOP{ Introduction to JSP and Servlets Training 5-days Introduction to JSP and Servlets training course develops skills in JavaServer Pages, or JSP, which is the standard means of authoring dynamic

More information

Using JNDI from J2EE components

Using JNDI from J2EE components Using JNDI from J2EE components Stand-alone Java program have to specify the location of the naming server when using JNDI private static InitialContext createinitialcontext() throws NamingException {

More information

JAVA. Duration: 2 Months

JAVA. Duration: 2 Months JAVA Introduction to JAVA History of Java Working of Java Features of Java Download and install JDK JDK tools- javac, java, appletviewer Set path and how to run Java Program in Command Prompt JVM Byte

More information

Session 20 Data Sharing Session 20 Data Sharing & Cookies

Session 20 Data Sharing Session 20 Data Sharing & Cookies Session 20 Data Sharing & Cookies 1 Reading Shared scopes Java EE 7 Tutorial Section 17.3 Reference http state management www.ietf.org/rfc/rfc2965.txt Cookies Reading & Reference en.wikipedia.org/wiki/http_cookie

More information

Component Based Software Engineering

Component Based Software Engineering Component Based Software Engineering Masato Suzuki School of Information Science Japan Advanced Institute of Science and Technology 1 Schedule Mar. 10 13:30-15:00 : 09. Introduction and basic concepts

More information

Unit-4: Servlet Sessions:

Unit-4: Servlet Sessions: 4.1 What Is Session Tracking? Unit-4: Servlet Sessions: Session tracking is the capability of a server to maintain the current state of a single client s sequential requests. Session simply means a particular

More information

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format. J2EE Development Detail: Audience www.peaksolutions.com/ittraining Java developers, web page designers and other professionals that will be designing, developing and implementing web applications using

More information

Accessing EJB in Web applications

Accessing EJB in Web applications Accessing EJB in Web applications 1. 2. 3. 4. Developing Web applications Accessing JDBC in Web applications To run this tutorial, as a minimum you will be required to have installed the following prerequisite

More information

UNIT-V. Web Servers: Tomcat Server Installation:

UNIT-V. Web Servers: Tomcat Server Installation: UNIT-V Web Servers: The Web server is meant for keeping Websites. It Stores and transmits web documents (files). It uses the HTTP protocol to connect to other computers and distribute information. Example:

More information

Université du Québec à Montréal

Université du Québec à Montréal Laboratoire de Recherches sur les Technologies du Commerce Électronique arxiv:1803.05253v1 [cs.se] 14 Mar 2018 Université du Québec à Montréal How to Implement Dependencies in Server Pages of JEE Web Applications

More information

ADVANCED JAVA COURSE CURRICULUM

ADVANCED JAVA COURSE CURRICULUM ADVANCED JAVA COURSE CURRICULUM Index of Advanced Java Course Content : 1. Basics of Servlet 2. ServletRequest 3. Servlet Collaboration 4. ServletConfig 5. ServletContext 6. Attribute 7. Session Tracking

More information

JVA-163. Enterprise JavaBeans

JVA-163. Enterprise JavaBeans JVA-163. Enterprise JavaBeans Version 3.0.2 This course gives the experienced Java developer a thorough grounding in Enterprise JavaBeans -- the Java EE standard for scalable, secure, and transactional

More information

CREATE A SERVLET PROGRAM TO DISPLAY THE STUDENTS MARKS. To create a servlet program to display the students marks

CREATE A SERVLET PROGRAM TO DISPLAY THE STUDENTS MARKS. To create a servlet program to display the students marks CREATE A SERVLET PROGRAM TO DISPLAY THE STUDENTS MARKS DATE: 30.9.11 Aim: To create a servlet program to display the students marks Hardware requirements: Intel Core 2 Quad 2GB RAM Software requirements:

More information

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1 Umair Javed 2004 J2EE Based Distributed Application Architecture Overview Lecture - 2 Distributed Software Systems Development Why J2EE? Vision of J2EE An open standard Umbrella for anything Java-related

More information

OCP JavaEE 6 EJB Developer Study Notes

OCP JavaEE 6 EJB Developer Study Notes OCP JavaEE 6 EJB Developer Study Notes by Ivan A Krizsan Version: April 8, 2012 Copyright 2010-2012 Ivan A Krizsan. All Rights Reserved. 1 Table of Contents Table of Contents... 2 Purpose... 9 Structure...

More information

A.1 JSP A.2 JSP JSP JSP. MyDate.jsp page contenttype="text/html; charset=windows-31j" import="java.util.calendar" %>

A.1 JSP A.2 JSP JSP JSP. MyDate.jsp page contenttype=text/html; charset=windows-31j import=java.util.calendar %> A JSP A.1 JSP Servlet Java HTML JSP HTML Java ( HTML JSP ) JSP Servlet Servlet HTML JSP MyDate.jsp

More information

Servlet for Json or CSV (or XML) A servlet serving either Json or CSV (or XML) based on GET parameter - This version uses org.json

Servlet for Json or CSV (or XML) A servlet serving either Json or CSV (or XML) based on GET parameter - This version uses org.json Servlet for Json or CSV (or XML) A servlet serving either Json or CSV (or XML) based on GET parameter - This version uses org.json A Servlet used as an API for data Let s say we want to write a Servlet

More information

Fast Track to EJB 3.0 and the JPA Using JBoss

Fast Track to EJB 3.0 and the JPA Using JBoss Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity

More information

********************************************************************

******************************************************************** ******************************************************************** www.techfaq360.com SCWCD Mock Questions : Servlet ******************************************************************** Question No :1

More information

Example Purchase request JMS & MDB. Example Purchase request. Agenda. Purpose. Solution. Enterprise Application Development using J2EE

Example Purchase request JMS & MDB. Example Purchase request. Agenda. Purpose. Solution. Enterprise Application Development using J2EE Enterprise Application Development using J2EE Shmulik London Lecture #8 JMS & MDB Example Purchase request Consider an online store A customer browse the catalog and add items to his/her shopping cart

More information