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 } Portlets } Themes } Layouts } Hooks } Exts 9
What is Porltet? } 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. 10
Generic Porlets Life Cycle YES NO 11 End of Services?
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 13 } 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.
Action Request Action Request Render Request view.jsp processaction() doview() edit.jsp Action Request Render Request edit.jsp processaction() doedit() view.jsp 14
Render Request Render Request view.jsp doview() view2.jsp 15
Portlets } Standard JSR168/286 } Interaction between jsp pages and java code Application Server (Glassfish) JSP page Java code } JSP uses <form statements to send parameters to Java code } Java code extends class GenericPortlet overriding methods: } } <jsp:usebean! <form >!! <input />! </form>! Class <you portlet>! Extends GenericPortlet!! Init, doview, dohelp, doedit, processaction! Java code uses 2 Classes to exchange data from/to JSPs! 16
Portlet files (root)! build.xml!! docroot/! WEB_INF/! css/! images/! js/!! jsp_page_1.jsp!! jsp_page_n.jsp! Used by ant to compile and deploy the portlet Define here JSP s styles JSP image files JavaScript files Portlet JSP pages 17
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/ 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 18
19
Building environment } Get Liferay with Glassfish } Customising Liferay installation (database connection) } Get Liferay plug-in SDK } Configuring Netbeans (optional) 20
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/liferay-portal/ additional-files } Netbeans: https://netbeans.org } Netbeans liferay plugin: https://contrib.netbeans.org/portalpack/ 22
Questions? 23