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 ? 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 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 … >! ! <input … />! </form>! } } Java code Class <you portlet>! Extends GenericPortlet …! ! 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! ! docroot/! WEB_INF/! css/! images/! js/! ! jsp_page_1.jsp! …! jsp_page_n.jsp! 17 Used by ‘ant’ to compile and deploy the portlet 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 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