1 of 78

Multimedia and Advance Web Technologies

By:

Dr. Mohammad Shoab

Week 7, 8 & 9

2 of 78

Java platform

A Java platform comprises the JVM together with supporting class libraries.

Java 2 Standard Edition (J2SE)

    • (1999) provides core libraries for data structures, xml parsing, security, internationalization, db connectivity, RMI

Java 2 Platform, Enterprise Edition (J2EE)

    • provides more class libraries for servlets, JSPs, Enterprise Java Beans, advanced XML

Java Platform, Enterprise Edition (Java EE)

    • When Java Platform 5.0 was released (2004) the ‘2’ was dropped from these titles.

2

Multimedia and Advance Web Technologies

Department of Computer Science

3 of 78

Java platform

Java Micro Edition (Java ME)

    • comprises the necessary core libraries and tools for writing Java for embedded systems and other small footprint platforms, along with some specialised libraries for specific types of device such as mobile phones.

3

Multimedia and Advance Web Technologies

Department of Computer Science

4 of 78

4

What is a

Java Web application?

Multimedia and Advance Web Technologies

Department of Computer Science

5 of 78

Java Web Application

A Java web application generates interactive web pages containing various types of markup language (HTML, XML, and so on) and dynamic content.

It is typically comprised of web components such as:

    • JavaServer Pages (JSP)
    • Servlets
    • JavaBeans

to modify and temporarily store data, interact with databases and web services, and render content in response to client requests.

5

Multimedia and Advance Web Technologies

Department of Computer Science

6 of 78

6

What is the

Java Enterprise Edition?

Multimedia and Advance Web Technologies

Department of Computer Science

7 of 78

Java EE (Enterprise Edition)

Java EE (Enterprise Edition) is a widely used platform containing a set of coordinated technologies that significantly reduce the cost and complexity of:

    • developing
    • deploying and
    • managing

multitier, server-centric applications.

Java EE builds upon the Java SE platform and provides a set of APIs (application programming interfaces) for developing and running portable, robust, scalable, reliable and secure server-side applications.

Java EE 6 is supported only by the GlassFish server v3.x.

7

Multimedia and Advance Web Technologies

Department of Computer Science

8 of 78

  • The Java EE platform uses a simplified programming model. XML deployment descriptors are optional. Instead, a developer can simply enter the information as an annotation directly into a Java source file, and the Java EE server will configure the component at deployment and runtime
  • With annotations, you put the specification information in your code next to the program element affected.

Java EE 6 Platform

8

Multimedia and Advance Web Technologies

Department of Computer Science

9 of 78

  • an architecture for implementing services as multitier applications that deliver the scalability, accessibility, and manageability needed by enterprise-level applications. 
  • With this structure you can more easily change one of the tiers without compromising your entire application.
  • Business and presentation logic - to be implemented by the developer
  • Standard system services – to be provided by the Java EE platform

Java EE application model

9

Multimedia and Advance Web Technologies

Department of Computer Science

10 of 78

10

What is a

Java Servlet?

Multimedia and Advance Web Technologies

Department of Computer Science

11 of 78

Java Servlets

  • Servlets are Java classes that dynamically process requests and construct responses.
  • Server side replacement for CGI
  • Extensions to Java enabled web-servers
  • Inherently multi-threaded.
  • One thread per request.
  • Very efficient.
  • Platform independent.

11

Multimedia and Advance Web Technologies

Department of Computer Science

12 of 78

How do Servlets work?

  • Servlets run inside a Web Container - the component of the web server that runs and interacts with Servlets
  • Servlet is running on the server listening for requests
  • When a request comes in, a new thread is generated by the web container.

12

Multimedia and Advance Web Technologies

Department of Computer Science

13 of 78

13

What is a

Java EE Container?

Multimedia and Advance Web Technologies

Department of Computer Science

14 of 78

Java EE Containers

Java EE containers

  • are the interface between a Java component and the low-level platform-specific functionality (i.e. transaction and state management, multithreading, resource pooling, etc.) that supports the component.

  • provide for the separation of business logic from resource and lifecycle management.

  • this allows developers to focus on writing business logic rather than writing enterprise infrastructure.

The Java EE platform uses "containers" to simplify development.

14

Multimedia and Advance Web Technologies

Department of Computer Science

15 of 78

Java EE Containers

When a request comes in:

  • a Servlet needs to be instantiated and create a new thread to handle the request.

  • call the Servlet’s doPost()or doGet() method and pass the HTTP request and HTTP response objects

  • get the request and the response to the Servlet

  • manage the life, death and resources of the Servlet

* All of the above are the tasks of the web container.

15

Multimedia and Advance Web Technologies

Department of Computer Science

16 of 78

Java EE Containers

Java EE SERVER

From Bodoff et. al. 2005

16

Figure: JEE Containers diagram

Multimedia and Advance Web Technologies

Department of Computer Science

17 of 78

Historically (Java Web App) �Server: response

17

Client

Web browser

Operating

System

Web server

Servlet

(Java code)

Server

Operating System

Internet

Web Container Application

(Java code)

HTTP

TCP/IP

  • Webserver supports HTTP.

GET...

GET...

It’s the Container that gives

the Servlet the HTTP request

and response, and it’s the Container that calls the Servlet’s methods (e.g. doPost() or doGet())

<html>

<head>

</head>

<body>

...

<body>

</html>

<html>

<head>

</head>

<body>

...

<body>

</html>

Multimedia and Advance Web Technologies

Department of Computer Science

18 of 78

Historically (Java Web App) �Server: response

18

Client

Web browser

Operating

System

Web server

Servlet

(Java code)

Server

Operating System

Internet

HTTP

TCP/IP

  • Webserver supports HTTP.

GET...

GET...

It’s the Container that gives

the Servlet the HTTP request

and response, and it’s the Container that calls the Servlet’s methods (e.g. doPost() or doGet())

<html>

<head>

</head>

<body>

...

<body>

</html>

<html>

<head>

</head>

<body>

...

<body>

</html>

Multimedia and Advance Web Technologies

Department of Computer Science

19 of 78

(Java Web App) Server: response

19

Client

Web browser

Operating

System

Web server + Container

Servlet

(Java code)

Server

Operating System

Internet

HTTP

TCP/IP

  • Webserver supports HTTP.

GET...

It’s the Container that gives

the Servlet the HTTP request

and response, and it’s the Container that calls the Servlet’s methods (e.g. doPost() or doGet())

<html>

<head>

</head>

<body>

...

<body>

</html>

Grizzly is now the HTTP front end of the application server

Multimedia and Advance Web Technologies

Department of Computer Science

20 of 78

Java Servlets

Java Servlets simplify web development by providing infrastructure for component, communication, and session management in a web container that is integrated with a web server.

  • Writing Servlets is like writing Java codes that place an HTML page inside a Java class (this is the worst part of Servlets!)

  • (Historically!) requires a deployment descriptor (DD). This is in the form of an XML file.

  • Servlets do not have a main() method.
  • Servlets are under the control of another Java application called a Container

20

Multimedia and Advance Web Technologies

Department of Computer Science

21 of 78

JavaBeans

  • manage the data flow between the following:

  • JavaBeans components are not considered Java EE components by the Java EE specification.

  • JavaBeans components have properties and have get and set methods for accessing the properties.

Client/Database

Server

application client or applet

components running on the Java EE server

database

Server components

21

Multimedia and Advance Web Technologies

Department of Computer Science

22 of 78

Enterprise JavaBeans (EJB)

Enterprise JavaBeans container handles:

    • distributed communication
    • threading
    • scaling
    • transaction management, etc.

has a new packaging! (see figure)

New EJB 3.1 Packaging

Older EJB Packaging

22

Multimedia and Advance Web Technologies

Department of Computer Science

23 of 78

23

Netbeans IDE

  • create a simple web application using NetBeans IDE
  • deploy it to a server, and
  • view its presentation in a browser

Multimedia and Advance Web Technologies

Department of Computer Science

24 of 78

NetBeans

  • A 3rd party Java Integrated Development Environment (IDE)

    • Comes with Java EE class libraries
    • bundled with GlassFish Sever Open Source Edition
    • Can deploy servlets, JSPs, and web services

Class libraries for Servlets, JSPs, Enterprise Java Beans, advanced XML

24

Multimedia and Advance Web Technologies

Department of Computer Science

25 of 78

25

Example: NetBeans Project

A Quick Tour of the IDE (v.6.9)

JSP, Java Bean, User-defined Java Class & Package, Get Method, User Interface

Multimedia and Advance Web Technologies

Department of Computer Science

26 of 78

26

Sample Project

Index.jsp

NameHandler.java

Main interface, Html with form

Invokes response.jsp through form action.

response.jsp

Class NameHandler containing user data

Generates the server’s response

Defines a JavaBean to connect the class NameHandler to

the user’s input via a form text field (name).

Multimedia and Advance Web Technologies

Department of Computer Science

27 of 78

Creating a new Web Application

New Project / Java Web

27

Multimedia and Advance Web Technologies

Department of Computer Science

28 of 78

Creating a new Web Application

Specify Project Name

28

Multimedia and Advance Web Technologies

Department of Computer Science

29 of 78

Creating a new Web Application

GlassFish Server

Web profile

29

Multimedia and Advance Web Technologies

Department of Computer Science

30 of 78

Java Application Server: Glassfish

GlassFish 

is an open source application server project led by Sun Microsystems for the Java EE platform. The proprietary version is called Oracle GlassFish Enterprise Server. GlassFish is free software

It uses a derivative of Apache Tomcat as the servlet container for serving Web content, with an added component called Grizzly which uses Java NIO for scalability and speed.

Before the advent of the Java New I/O API (NIO), thread management issues made it impossible for a server to scale to thousands of users

Sun is the original creator of Tomcat

30

Multimedia and Advance Web Technologies

Department of Computer Science

31 of 78

Java Application Server: Glassfish

GlassFish is an open source (full) application server project led by Sun Microsystems for the Java EE platform. The proprietary version is called Oracle GlassFish Enterprise Server. GlassFish is free software.

It uses a derivative of Apache Tomcat as the servlet container for serving Web content, with an added component called Grizzly which uses Java NIO for scalability and speed.

On 25 March 2010, soon after the acquisition of Sun Microsystems, Oracle issued a Roadmap for versions 3.0.1, 3.1, 3.2 and 4.0 with themes revolving around clustering, virtualization and integration with Coherence and other Oracle technologies.

31

Multimedia and Advance Web Technologies

Department of Computer Science

32 of 78

Glassfish vs. Tomcat

Historically, if you wanted to get good HTTP performance from Tomcat you really needed to have an Apache web server to sit in front of Tomcat which involved more setting up and extra administrative work.

Since GlassFish v1 (May 2006), Grizzly is the HTTP frontend of the application server.

It's a 100% Java NIO framework that provides the same performance as Apache, only it's written in Java and integrated straight into the application server.

Sun is the original creator of Tomcat

Not a full-application server

32

Multimedia and Advance Web Technologies

Department of Computer Science

33 of 78

Other Java web application-capable Servers

  • Blazix from Desiderata Software (1.5 Megabytes, JSP, Servlets and EJBs
  • TomCat from Apache (Approx 6 Megabytes
  • WebLogic from BEA Systems (Approx 40 Megabytes, JSP, Servlets and EJBs
  • WebSphere from IBM (Approx 100 Megabytes, JSP, Servlets and EJBs)

33

Multimedia and Advance Web Technologies

Department of Computer Science

34 of 78

Commercial Deployment

  • Oracle GlassFish Server
    • delivers a flexible, lightweight and extensible Java EE 6 platform. It provides a small footprint, fully featured Java EE application server that is completely supported for commercial deployment and is available as a standalone offering.
  • Oracle WebLogic Server
    • designed to run the broader portfolio of Oracle Fusion Middleware and large-scale enterprise applications.
    • industry's most comprehensive Java platform for developing, deploying, and integrating enterprise applications.

34

Multimedia and Advance Web Technologies

Department of Computer Science

35 of 78

Creating a new Web Application

JSP File

35

Multimedia and Advance Web Technologies

Department of Computer Science

36 of 78

Creating a new Web Application

Sample Run

36

Multimedia and Advance Web Technologies

Department of Computer Science

37 of 78

Project: HelloWeb

37

Multimedia and Advance Web Technologies

Department of Computer Science

38 of 78

HelloWeb: Directories and Files

38

Multimedia and Advance Web Technologies

Department of Computer Science

39 of 78

39

Adding a Java source package and a source file

NameHandler.java

Multimedia and Advance Web Technologies

Department of Computer Science

40 of 78

Java Package

Right-click Source Packages

40

Multimedia and Advance Web Technologies

Department of Computer Science

41 of 78

Java Package

Add a Java Class, specify Package name

Java Package

  • a mechanism for organizing Java classes into namespaces
  • can be stored in compressed files called JAR files, allowing classes to download faster as a group rather than one at a time.

41

Multimedia and Advance Web Technologies

Department of Computer Science

42 of 78

Java Package

Add a Java Class

42

Multimedia and Advance Web Technologies

Department of Computer Science

43 of 78

Java Package

Edit the Java Class

  • Declare a String variable inside the class declaration.

String name;

  • Add a constructor to the class:

public NameHandler()

  • Add the following line in the NameHandler() constructor:

name = null;

43

Multimedia and Advance Web Technologies

Department of Computer Science

44 of 78

Generating Getter and Setter Methods

Right-click name field in the Source editor

Selection: Name Field / Refactor / Encapsulate Fields

44

Multimedia and Advance Web Technologies

Department of Computer Science

45 of 78

Generating Getter and Setter Methods

Notice that Fields' Visibility is by default set to private, and Accessors' Visibility to public, indicating that the access modifier for class variable declaration will be specified as private, whereas getter and setter methods will be generated with public and private modifiers, respectively.

45

Multimedia and Advance Web Technologies

Department of Computer Science

46 of 78

Generating Getter and Setter Methods

Select the Refactor button.

46

Multimedia and Advance Web Technologies

Department of Computer Science

47 of 78

Notice that the variable declaration has changed.

  • set to private

Get and set functions with implementation have been added as well.

  • access modifier: public

Results of Refactoring

47

Multimedia and Advance Web Technologies

Department of Computer Science

48 of 78

48

Editing the Default JSP file

Adding and Customising

a Form, input text field, submit button

Multimedia and Advance Web Technologies

Department of Computer Science

49 of 78

49

Invoke the palette: from the menu, select (Window/Palette): or press Ctrl+Shift+8

expand HTML Forms

Inserting a Form

Multimedia and Advance Web Technologies

Department of Computer Science

50 of 78

50

expand HTML Forms and drag a Form item to a point after the <h1> tags in the Source Editor.

The Insert Form dialog box displays.

Inserting a Form

Multimedia and Advance Web Technologies

Department of Computer Science

51 of 78

51

Specify the following values:

Click OK.

Specifying an action

Multimedia and Advance Web Technologies

Department of Computer Science

52 of 78

52

An HTML form is automatically added to the index.jsp file.

Source Generated

Multimedia and Advance Web Technologies

Department of Computer Science

53 of 78

53

Drag a Text Input item to a point just before the </form> tag, then specify the following values:

    • Name: name
    • Type: text

Adding an Input Text Field

Multimedia and Advance Web Technologies

Department of Computer Science

54 of 78

54

Input Text Field

Source Generated

Multimedia and Advance Web Technologies

Department of Computer Science

55 of 78

55

Drag a Button item to a point just before the </form> tag. Specify the following values:

    • Label: OK
    • Type: submit

Click OK. An HTML button is added between the <form> tags.

Adding a Submit Button

Multimedia and Advance Web Technologies

Department of Computer Science

56 of 78

56

Type Enter your name: just before the first <input> tag, then change the default Hello World! text between the <h1> tags to Entry Form.

Adding some extra labels, tidying up your code

Right-click within the Source Editor and choose Format

(Alt-Shift-F) to tidy the format of your code.

Multimedia and Advance Web Technologies

Department of Computer Science

57 of 78

57

index.jsp: Source Generated

We would like to pass this to our server

Multimedia and Advance Web Technologies

Department of Computer Science

58 of 78

58

Creating a JSP file that generates the server’s response

response.jsp

Multimedia and Advance Web Technologies

Department of Computer Science

59 of 78

59

In the Projects window, right-click the HelloWeb project node and choose New > JSP. The New JSP File wizard opens.

Name the file response, and click Finish.

Notice that a response.jsp file node displays in the Projects window beneath index.jsp, and the new file opens in the Source Editor.

Adding a JSP File

Multimedia and Advance Web Technologies

Department of Computer Science

60 of 78

60

JSP Source File Generated: response.jsp

Multimedia and Advance Web Technologies

Department of Computer Science

61 of 78

61

In the Palette to the right of the Source Editor, expand JSP and drag a Use Bean item to a point just below the <body> tag in the Source Editor.

The Insert Use Bean dialog opens.

Specify the values shown in the following figure.

Adding a Use Bean item

The class NameHandler belongs to the package we have set earlier

Multimedia and Advance Web Technologies

Department of Computer Science

62 of 78

62

JSP Source File Generated: response.jsp

Notice that the <jsp:useBean> tag is added beneath the <body> tag.

Multimedia and Advance Web Technologies

Department of Computer Science

63 of 78

63

Drag a Set Bean Property item from the Palette to a point just before the <h1> tag and click OK.

In the <jsp:setProperty> tag that appears, delete the empty value attribute and edit as follows. Delete the value = "" attribute if the IDE created it! Otherwise, it overwrites the value for name that you pass in index.jsp.

Adding a Set Bean property item

Multimedia and Advance Web Technologies

Department of Computer Science

64 of 78

64

Drag a Set Bean Property item from the Palette to a point just before the <h1> tag and click OK.

In the <jsp:setProperty> tag that appears, delete the empty value attribute and edit as follows. Delete the value = "" attribute if the IDE created it! Otherwise, it overwrites the value for name that you pass in index.jsp.

Adding a Set Bean property item

Multimedia and Advance Web Technologies

Department of Computer Science

65 of 78

65

Drag a Get Bean Property item from the Palette and drop it after the comma between the <h1> tags.

Specify the following values in the Insert Get Bean Property dialog:

    • Bean Name: mybean
    • Property Name: name

Adding a Get Bean property item

Insert a Get Bean Property item here!

Multimedia and Advance Web Technologies

Department of Computer Science

66 of 78

66

the user input coming from index.jsp becomes a name/value pair that is passed to the request object.

When you set a property using the <jsp:setProperty> tag, you can specify the value according to the name of a property contained in the request object.

JSP Source Code Generated

Therefore, by setting property to name, you can retrieve the value specified by user input.

Multimedia and Advance Web Technologies

Department of Computer Science

67 of 78

67

Sample Run

User input

Response from the JSP file

Multimedia and Advance Web Technologies

Department of Computer Science

68 of 78

68

Sample Run

User input

Response from the JSP file

Index.jsp

NameHandler.java

Main interface, Html with form

Invokes response.jsp through form action.

response.jsp

Class NameHandler containing user data, get and set methods

Generates the server’s response

Defines a JavaBean to connect the class NameHandler to

the user’s input via a form text field (name).

Multimedia and Advance Web Technologies

Department of Computer Science

69 of 78

69

Project

Index.jsp

NameHandler.java

Main interface, Html with form

Invokes response.jsp through form action.

response.jsp

Class NameHandler containing user data, get and set methods

Generates the server’s response

Defines a JavaBean to connect the class NameHandler to

the user’s input via a form text field (name).

Multimedia and Advance Web Technologies

Department of Computer Science

70 of 78

70

The Java EE specification defines how the web application can be archived into a web application archive (WAR)

WAR files are

– Java archives with a .war extension

– Packaged using the same specification as zip files

– Understood by all Java EE compliant application servers

• WAR files can be directly deployed in servlet containers such as Tomcat

Packaging Web Applications

Multimedia and Advance Web Technologies

Department of Computer Science

71 of 78

71

  • To make a WAR for your NetBeans project, right click on the project node and select Build Project.

• The WAR file will be placed in the dist” sub-directory of your project folder

NetBeans WAR files

Multimedia and Advance Web Technologies

Department of Computer Science

72 of 78

The End

72

Multimedia and Advance Web Technologies

Department of Computer Science

73 of 78

Exercise

Q1. Explain J2SE, JEE and J2EE.

Q2. Explain Java web applications with its components.

Q3. What is Java Servlets.

Q4. How do servlets work?

Q5. Explain JEE containers with diagram.

Q6. Explain Java Servlets.

Q7. Explain Java Beans

Q8. What is EJB?

Q9. Explain Glassfish.

73

Multimedia and Advance Web Technologies

Department of Computer Science

74 of 78

Q10. What is the difference between Glassfish and Tomcat.

Q11. Explain Oracle GlassFish server and Oracle WebLogic server.

Q12. Explain the Web Application Archive (WAR).

74

Multimedia and Advance Web Technologies

Department of Computer Science

75 of 78

Q13. A Java platform comprises with supporting class libraries and .

  1. Java ME
  2. J2SE
  3. J2EE
  4. JVM

Q14. A Java web application generates interactive web pages containing various types of markup language and.

  • Ordered content
  • Static content
  • Dynamic content
  • None of the above

75

Multimedia and Advance Web Technologies

Department of Computer Science

76 of 78

Q15. Java EE builds upon the Java SE platform and provides a set of

  1. CGI
  2. APIs
  3. SGI
  4. FCI

Q16. XML deployment descriptors are.

  • Optional
  • Mandatory
  • Necessary
  • None of the above

76

Multimedia and Advance Web Technologies

Department of Computer Science

77 of 78

Q17. Servlets run inside a

  1. Database query
  2. Web container
  3. Web architecture
  4. XML

Q18. Servlets do not have a.

  1. Override method
  2. onCreate() method
  3. main() method
  4. All of the above

77

Multimedia and Advance Web Technologies

Department of Computer Science

78 of 78

Q19. GlassFish uses a derivative of Apache Tomcat as the

  1. Servlet container
  2. Web container
  3. DB container
  4. Object container

Q20. To make a WAR for your NetBeans project, right click on the project node and select

  1. Debug project
  2. Run project
  3. Build project
  4. Execute project

78

Multimedia and Advance Web Technologies

Department of Computer Science