Web Application Development
Introduction to application servers, web applications
and portlets

Riccardo Rotondo
riccardo.rotondo@ct.infn.it

Catania, 10/03/2014
Outline


Scenario



Application Server



Web Application



Portlet

2
Scenario

JSR 168/268
JSR 168/268

JSR 168/268

JSR 168/268

Catania Science Gateway Framework

GRID

CLOUD
3

Local Cluster
Web enviroment
Application Server (Glassfish)
Web application working as Portlet Container (Liferay)
Portlet (a custom application designed under users
needs)






JSR 168/268
JSR 168/268

4

JSR 168/268

JSR 168/268
What is an application server?
A software framework designed to host applications
running in a web environment
Most of them contains a service layer model
A set of API is available for the developers to access the
application server’s functionalities
As long as the management of the environment is
demanded to the application server, developers can focus
on the business logic.







5
Most popular application servers

http://plumbr.eu/blog/most-popular-application-servers
6
What is a web application?
An application accessed over a network
Analogy with “common” applications
User interact with them through a web-browser
A web applications can offer thousands of services: Liferay
is a web-application






7
Liferay (www.liferay.com)





Highly-configurable, scalable, open source
portal framework;
Compatible with JSR 168/286 standards
and based on modern web 2.0
technologies;
Liferay services currently used:




Portal;
CMS & WCM;
Collaboration and “social” software

8
Liferay Plugins






9

Portlets
Themes
Layouts
Hooks
Exts
What is Porltet ?





10

Defined in the Java Specification Request (JSR
168/286)
A porlet is a web component able to set a frame
portion of a web page.
Differently from Servlet it needs a Porltlet
Container to allow the user to interact with it.
Standard Portlet can be deployed in any Porlet
Container in case they will use standard libray.
Generic Porlets Life Cycle

YES

NO
End of
Services?

11
Generic Porltlets Interface Method
Class GenericPortlets {
init (PortletConfig);
processAction (ActionRequest,
ActionResponse);
render (RenderRequest, RenderResponse);
destroy();
doView (Request, Response);
doEdit (Reuqest, Response);
doHelp (Request, Response);
}

12
Portlet Mode
A porltet works in three
different states.
 View Mode: generate a
markup ( a portion of a
web page);
 Edit Mode: allow portlet
customisation and
setting preferences.
 Help Mode: explains
portlet functionalities.


13
Action Request
Action
Request

view.jsp

processAction()

Action
Request

edit.jsp

14

Render
Request

doView()

edit.jsp

doEdit()

view.jsp

Render
Request

processAction()
Render Request

Render
Request

view.jsp

15

doView()

view2.jsp
Portlets



Standard JSR168/286
Interaction between jsp pages and java code
Application Server (Glassfish)

JSP page
<jsp:useBean
<form … >

Java code
Class <you portlet>
Extends
GenericPortlet …

<input … />
</form>





JSP uses <form… statements to send parameters to Java code
Java code extends class GenericPortlet overriding methods:


Init, doView, doHelp, doEdit, processAction

Java code uses 2 Classes to exchange data from/to JSPs



16
Portlet files (root)
build.xml

Used by ‘ant’ to compile and
deploy the portlet

docroot/
WEB_INF/
css/
images/
js/
jsp_page_1.jsp
…
jsp_page_n.jsp
17

Define here JSP’s styles
JSP image files
JavaScript files

Portlet JSP pages
Portlet files (docroot)
WEB_INF/
glassfish-web.xml
web.xml
lib/
Job/
liferay-display.xml
liferay-plugin-package.properties
liferay-portlet.xml
portlet.xml
src/
<package_name>/code.java

tld/
18

Used to define database and other
resources settings
Jar Library directory (local scope)
Job files (Custom dir)

Portlet
configuration files

Java source files
XML structure file
19
Building environment





20

Get Liferay with Glassfish
Customising Liferay installation (database
connection)
Get Liferay plug-in SDK
Configuring Netbeans (optional)
Deploying first portlet







Understanding ant scripts
Creating “hello world” portlet
Understanding portlet files
Compiling porltet
Deploying porlet
Understading portlet management on the server

21
References








Liferay: https://www.liferay.com
Liferay Bundles:
https://www.liferay.com/downloads/liferay-portal/availablereleases
Liferay Plugin SDK:
https://www.liferay.com/downloads/liferayportal/additional-files
Netbeans: https://netbeans.org
Netbeans liferay plugin:
https://contrib.netbeans.org/portalpack/

22
Questions ?

23

Web Application Development