Java Web Application Framework (WAF) - PowerPoint PPT Presentation

java web application framework waf n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Java Web Application Framework (WAF) PowerPoint Presentation
Download Presentation
Java Web Application Framework (WAF)

play fullscreen
1 / 76
Java Web Application Framework (WAF)
417 Views
Download Presentation
cid
Download Presentation

Java Web Application Framework (WAF)

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Java Web Application Framework (WAF) Melek OKTAY 50050403 moktay@fatih.edu.tr

  2. Outline • Introduction • Java Web Aplication Framework • Conclusion

  3. Outline • Introduction • What is Framework • What is WAF • Java Web Aplication Framework • Conclusion

  4. What is Framework? • Introduction • What is Framework • What is WAF • Java Web Aplication Framework • Conclusion

  5. What is Framework? • In information systems environment, a frameworkis a defined support structure in which other softwareapplications can be organized and developed. • A software framework is areusable design and building blocks for a softwaresystem and/or subsystem

  6. What is Framework? (cont.) • In anobject-oriented environment, a framework consists ofabstract and concrete classes. Instantiation of such aframework consists of composing and subclassing theexisting classes • Software frameworks rely on the HollywoodPrinciple: "Don’t call us, we’ll call you."

  7. What is Framework? (cont.)

  8. Why we use Framework? • The software frameworks significantly reduce theamount of time, effort, and resources required todevelop and maintain applications.

  9. What is Framework? • Introduction • What is Framework • What is WAF • Java Web Aplication Framework • Conclusion

  10. What is WAF? • A Web Application Framework (WAF) is areusable, skeletal, semi-complete modular platformthat can be specialized to produce custom webapplications, which commonly serve the web browsersvia the Http's protocol. • WAF usually implementsthe Model-View-Controller (MVC) design pattern,typically in the Model 2 architecture to developrequest-response web-based applications on the JavaEE and .Net models.

  11. What is WAF? (cont.) • Model 1Architecture

  12. What is WAF? (cont.) • Model 2Architecture

  13. Model-View-Controller

  14. Why we use WAF? • Virtually all web applications have a common set of basic requirements, such as user management e.g., secure user login, password recovery), group management, and access authorization. • A Web Application Framework usually includes all these functionalities, refined through hundreds of production deployments, freeing developers to focus on the needs of their specific application.

  15. Why we use WAF? • WAFs store important data in a relational database and they interact with users via a web-based user interface. • Any application written on top of a Web Application Framework can transparently and immediately take advantage of these basic services.

  16. Introduction • Java Web Aplication Framework • Conclusion

  17. Java Web Aplication Framework • Introduction • Java Web Aplication Framework • Request-based Framework • Component-based Framework • Hybrid – Meta Framework • RIA-based Framework • Conclusion

  18. Request-based Framework • Introduction • Java Web Aplication Framework • Request-based Framework • Component-based Framework • Hybrid – Meta Framework • RIA-based Framework • Conclusion

  19. Request-based Framework • A Request-based Framework is very close to theoriginal CGI specification. • It uses controllers andactions that directly handle incoming requests. • Eachrequest is essentially stateless.

  20. Request-based Framework • Introduction • Java Web Aplication Framework • Request-based Framework • Struts • WebWork • Beehive , Stripes • Component-based Framework • Hybrid – Meta Framework • RIA-based Framework • Conclusion

  21. Request-based Framework • Introduction • Java Web Aplication Framework • Request-based Framework • Struts • WebWork • Beehive , Stripes • Component-based Framework • Hybrid – Meta Framework • RIA-based Framework • Conclusion

  22. Struts • Struts was originally developed by CraigMcClanahan and donated to the Apache Foundation inMay 2000. • Struts has been a de facto framework with a strong and vibrant user community.

  23. Struts (cont.) • Struts uses and extends the Java Servlet API to adopt the "Model 2" approach, a variation of the classic Model-View-Controller (MVC) design pattern.

  24. Struts (cont.) MVC Design pattern

  25. Struts Tag Libraries • HTML Tags • Bean Tags • Logic Tags • Template Tags • Custom Tags

  26. Struts HTML Tags • The tags in the Struts HTML library form a bridge between a JSP view and the other components of a Web application. • Since a dynamic Web application often depends on gathering data from a user, input forms play an important role in the Struts framework

  27. Struts HTML Tags • HTML "form" tags • button • cancel • checkboxes • file • hidden • image • multibox • password input fields • radio buttons • reset buttons • HTML "form" tags • select lists with embedded • option • options • submit buttons • text input fields • textareas

  28. HTML Tags – Typical HTML Form • <HTML> • <BODY> • <FORM> • <TABLE WIDTH="100%"> • <TR><TD>First Name</TD> • <TD><INPUT TYPE="TEXT" NAME="Name" SIZE="40" MAXLENGTH="40"></TD></TR> • <TR><TD>Street Address</TD> • <TD><INPUT TYPE="TEXT" NAME="Address" SIZE="40" MAXLENGTH="40"></TD></TR> • <TR><TD>City</TD> • <TD><INPUT TYPE="TEXT" NAME="City" SIZE="20" MAXLENGTH="20"></TD></TR> • <TR><TD>State</TD> • <TD><INPUT TYPE="TEXT" NAME="State" SIZE="2" MAXLENGTH="2"></TD></TR> • <TR><TD>Postal Code</TD> • <TD><INPUT TYPE="TEXT" NAME="ZipCode" SIZE="9" MAXLENGTH="9"></TD></TR> • <TR><TD ALIGN=CENTER><INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Save"></TD> • <TD><INPUT TYPE="RESET" NAME="Reset" VALUE="Cancel"></TD></TR> • </TABLE> • </FORM> • </BODY> • </HTML> Project Refinery, Inc.

  29. HTML Tags – Typical Struts Form • <HTML:HTML> • <BODY> • <HTML:FORM Action="/CustomerForm" focus=“name” > • <TABLE WIDTH="100%"> • <TR><TD><bean:message key="customer.name"/></TD> • <TD><HTML:TEXT property="name" size="40" maxlength="40" /></TD></TR> • <TR><TD><bean:message key="customer.address"/></TD> • <TD><HTML:TEXT property="address" size ="40" maxlength ="40" /></TD></TR> • <TR><TD><bean:message key="customer.city"/></TD> • <TD><HTML:TEXT property="city" size ="20" maxlength ="20" /></TD></TR> • <TR><TD><bean:message key="customer.state"/></TD> • <TD><HTML:TEXT property="state" size ="2" maxlength ="2" /></TD></TR> • <TR><TD><bean:message key="customer.zip"/></TD> • <TD><HTML:TEXT property="zip" size ="9" maxlength ="9" /></TD></TR> • <TR><TD ALIGN=CENTER><html:submit property="action" value ="Save"/></TD> • <TD><html:reset property="action" value ="Reset"/></TD></TR> • </TABLE> • </HTML:FORM> • </BODY> • </HTML:HTML> Project Refinery, Inc.

  30. Application Set-up • Jar files • Tag libraries • Struts-config dtd • Application.properties • Apache vhost file • Web.xml • Struts-config.xml Project Refinery, Inc.

  31. Some Struts Sites: Travel Project Refinery, Inc.

  32. Some Struts Sites: Government Project Refinery, Inc.

  33. Conservatives and Liberals Use It Project Refinery, Inc.

  34. WebWork • Introduction • Java Web Aplication Framework • Request-based Framework • Struts • WebWork • Beehive , Stripes • Component-based Framework • Hybrid – Meta Framework • RIA-based Framework • Conclusion

  35. WebWork • WebWork was originally developed by RickardOberg in 2001, and released as an open source projectonSourceForge in March 2002. • WebWork provides robust support for buildingreusable UI templates, such as form controls, UIthemes, internationalization, dynamic form parametermapping to JavaBeans, and robust client and serverside validation.

  36. Component-based Framework • Introduction • Java Web Aplication Framework • Request-based Framework • Component-based Framework • Hybrid – Meta Framework • RIA-based Framework • Conclusion

  37. Component-based Framework • A Component-based Framework abstracts the internals of the request handling and encapsulates the logic into reusable components, often independent from the web medium • The state is automatically handled by the framework, based on the data that is present in each component instance. • Together with some form of event handling, this development model is very similar to the features offered by desktop GUI toolkits.

  38. Component-based Framework • Introduction • Java Web Aplication Framework • Request-based Framework • Component-based Framework • JSF • Tapestry • Wicket • Hybrid – Meta Framework • RIA-based Framework • Conclusion

  39. Component-based Framework • Introduction • Java Web Aplication Framework • Request-based Framework • Component-based Framework • Jave Server Faces (JSF) • Tapestry • Wicket • Hybrid – Meta Framework • RIA-based Framework • Conclusion

  40. Jave Server Faces (JSF) • JavaServer Faces (JSF) is a server-side user interface component framework for Java-based Web applications. • JSF contains an API for representing UI components and managing their state; handling events, server-side validation, and data conversion; defining pagenavigation; supporting internationalization and accessibility; and providing extensibility for all these features

  41. JSF Solutions • UI components • State management • Event handling • Input validation • Page navigation • Internationalization and accessibility. • Custom tag library

  42. JSF Life Cycle

  43. UI Components (Standard) Some of the standard JavaServer Faces Components

  44. UI Components (Custom) Some custom JavaServer Faces Components

  45. UI Components (Open Source) Some open source JavaServer Faces Components

  46. UI Components (Third Party) Some third-party JavaServer Faces Components

  47. UI Components (Code) Syntax for a text box component: <h:inputText/> Syntax for a calendar component: <v:calendar/> Syntax for a bean backed calendar component: <v:calendar value=“#{bean.date}”/>

  48. State Management • JSF maintains the state of components over several requests. • Example 1 • Example 2 • Code: • None Required

  49. Event Handling • Method Bindings<h:outputText value=“#{bundle.welcome}”rendered=“#{bean.showWelcome}”/> • Value Change Listeners<h:selectOneMenu value=“#{bean.type}” onchange=“submit()”immediate=“true”valueChangeListener=“#{bean.change}”> <f:selectItems value=“#{bean.types}”></h:selectOneMenu> • Command Actions<h:commandButton action=“#{bean.submit}”/> • Action Listeners<h:commandButton actionListener=“#{bean.listen}” action=“#{bean.submit}”/>

  50. Input Validation • Standard Validators • <h:inputText id=“card” value=“#{bean.card}”required=“true”><f:validateLength minimum=“13”/></h:inputText> • f:validateDoubleRange • f:validateLongRange • f:validateLength • Custom Validators