SlideShare a Scribd company logo
Modern Java Web DevelopmentBy Zenyk Matchyshyn
AgendaWeb frameworks classificationMajor frameworks in each classHow to select a framework and typical combinationsRapid web development on JavaModern approaches to development2
Web Frameworks ClassificationWeb Frameworks can be classified into following categories:Request/Action Frameworks (Spring MVC, Struts 2, …)Component Frameworks (GWT, JSF, …)Server Side Frameworks (BlazeDS, Jax-RS, …)3
Request/Action FrameworksFollows classic MVC patternNo notion of componentReusability of controllers and viewsHave similar structure and conceptsSimple and straightforwardBetter suited for simple sites   Examples: Spring MVC, Struts 2Non Java examples: Ruby on Rails, ASP.NET MVC4
Component FrameworksHave components at its coreBetter suited for RIA applications and Forms applicationsMore complex Examples: GWT, JSF, Tapestry 5Non Java examples: ASP.NET5
Server Side FrameworksDivided into following groups:Web Services (SOAP and RESTful)Flex Server SideAjax libraries, Serialization/Marshaling libraries6
Web ServicesSOAP basedFrameworks: Axis 1/2, Spring WS, JAX-WS XML basedRESTful (Jax-RS, Spring MVC, …):Frameworks: Follows REST guidelinesXML, JSON or other protocol7
FlexMain frameworks: BlazeDS, WebORB, Granite DS, LiveCycle Data ServicesProvide serialization for AMF protocolSome have code generationJava is first class citizen in Flex worldMain features: remoting, proxy service, pub/sub over HTTP and JMS 8
Ajax Libraries and custom serializationDirect Web Remoting (DWR)Custom serializators based on popular protocol (JSON, XML, YAML, …)Usually build on top of Servlet API or Action frameworks such as Spring MVC9
Major Frameworks10
Google Web ToolkitCurrent version – 2.2Evolves, supported by GoogleHave forks: GWT-Ext, Vaadin, SmartGWTGood tooling: Google Plugin for Eclipse, visual designerNot just for RIA (Odnoklasniki!)Heavy Java orientationDebug and deployment sometimes complicated11
Spring MVCCurrent version – 3.1Led by SpringSource – doesn’t evolveLots of view resolversTooling is supported on a Spring Framework levelLots of documentation, implementations and examples12
Java Server FacesCurrent version – 2.0Led by JCP (Oracle)Evolves, supported by big companiesPainful, but standardLibraries -  Apache MyFaces, JbossRichFaces, Oracle ADFTooling is limitedSignificant version differences13
Struts 2 and StripesAction/Request based frameworksActively developedStruts 2 – Apache project, latest release – 20 Dec 2010Struts 2 = Struts 1 + WebWorkStruts 2 uses OGNLStripes – latest release – 4 Jan 2011Some success storiesBooks, tutorials available14
Tapestry 5 and WicketTapestry 5 and Wicket are Apache projectsBoth are component basedTapestry 5 latest release 15 Nov 2010Wicket latest release – 21 Jan 2011Tapestry uses OGNLWicket is more Java oriented15
How to select a framework16
Main factorsDeveloper productivityDeveloper perceptionLearning curveProject HealthDeveloper AvailabilityJob TrendsTemplatingComponentsAjaxPlugins or Add-Ons17
Main factors – continuedScalabilityTestingI18n and i10nValidationMulti-Language supportQuality of documentationBooksREST supportMobile supportDegree of risk18
ComparisonHigh traffic, internet facing, infinite scalability – Action/Request based frameworkIntranet based, few users, behind firewall – Component based frameworkProducts, to be maintained for 5-10 years – largest community, most vendor supportLegacy backend – same language as backendDone by Matt Raible - http://bit.ly/jvm-frameworks-matrixYou should have yours!19
Typical frameworks combinationsConsider JavaScript librariesYUI/Ext JS/Dojo/jQuery + Action/Request based – gives separation of front end and server sideGWT + Spring MVC – gives components and flexibility where necessaryJSF + JAX-RS – gives components and REST access for JavaScript UI20
Rapid web development21
Spring RooGenerates typical combinations between database, models, controllers and viewsSupports Hibernate, GWT, Spring MVC, Spring Security, Maven, JPA and tons more…Waving can be turned off (remove Spring Roo)Actively developedhttp://www.springsource.org/roo22
AppFuseGenerates basic project using typical combinationsGood place to learn best practicesCan generate code based on DB schemaSomewhat evolvinghttp://appfuse.org23
Custom FactoriesUse Maven!Use scripting!Use code generators – Skyway Builder, SpringFuseMost companies are doing it rightReuse experience24
Modern Approaches to development25
ToolsUse Eclipse/Idea/NetBeansMaven works, just use the latest version and Maven Shellm2eclipse, jetty plugin or tomcat pluginUse JRebel for zero turnaround Tomcat and Jetty – rocks!26
ArchitectureUse JavaScript frameworksUse IoC frameworks (Spring, Guice, …) but keep classpath cleanKeep session isolatedAvoid JSPMinimize Controllers layerUse existing security solutions e.g. Spring SecurityEach module should have its own Maven artifact27
Friends from neighborhood JRuby on Rails great for prototypingJRubydeveloped by OracleGroovy on Grails great for new small and medium projectsGroovy developed by SpringSourcePossible to use existing business login on other languagesLearn and apply best practices from non Java frameworks28
Future – Java EE 6 Web ProfileServlet 3.0: Web Fragments, Async API, programmatic methods to add servlets and filters, Annotations, Security enhancements  JSP 2.2 / EL 2.2 : method invocations, new properties Web BeansBean ValidationManaged Beans29
Communityhttp://jug-lviv.blogspot.com/http://dotnetug-lviv.blogspot.com/http://www.rozrobka.com/30
Q/A?31

More Related Content

What's hot (17)

PPT
Struts(mrsurwar) ppt
mrsurwar
 
PDF
Wakanda - apps.berlin.js - 2012-11-29
Alexandre Morgaut
 
PPTX
Asp.net MVC training session
Hrichi Mohamed
 
PDF
Spring MVC Framework
Hùng Nguyễn Huy
 
PDF
Asp 1a-aspnetmvc
Fajar Baskoro
 
PPTX
ASP.NET MVC 5 - EF 6 - VS2015
Hossein Zahed
 
PPTX
Asp.Net MVC3 - Basics
Saravanan Subburayal
 
PPTX
Session 41 - Struts 2 Introduction
PawanMM
 
PDF
PUC SE Day 2019 - SpringBoot
Josué Neis
 
PPT
Introduction to ASP.NET MVC 1.0
Shiju Varghese
 
PPTX
Introduction to ASP.NET MVC
Khaled Musaied
 
PPTX
Spring
JyothirmaiG4
 
PDF
Introduction to Struts 1.3
Ilio Catallo
 
PPTX
Struts introduction
Muthukumaran Subramanian
 
PPTX
Introduction to Spring Framework
Raveendra R
 
PPTX
Java modules using project jigsaw@jdk 9
Mauricio "Maltron" Leal
 
PDF
Spring Framework
NexThoughts Technologies
 
Struts(mrsurwar) ppt
mrsurwar
 
Wakanda - apps.berlin.js - 2012-11-29
Alexandre Morgaut
 
Asp.net MVC training session
Hrichi Mohamed
 
Spring MVC Framework
Hùng Nguyễn Huy
 
Asp 1a-aspnetmvc
Fajar Baskoro
 
ASP.NET MVC 5 - EF 6 - VS2015
Hossein Zahed
 
Asp.Net MVC3 - Basics
Saravanan Subburayal
 
Session 41 - Struts 2 Introduction
PawanMM
 
PUC SE Day 2019 - SpringBoot
Josué Neis
 
Introduction to ASP.NET MVC 1.0
Shiju Varghese
 
Introduction to ASP.NET MVC
Khaled Musaied
 
Spring
JyothirmaiG4
 
Introduction to Struts 1.3
Ilio Catallo
 
Struts introduction
Muthukumaran Subramanian
 
Introduction to Spring Framework
Raveendra R
 
Java modules using project jigsaw@jdk 9
Mauricio "Maltron" Leal
 
Spring Framework
NexThoughts Technologies
 

Viewers also liked (6)

KEY
Be a Great Product Leader (HBS ICE 2012)
Adam Nash
 
KEY
How to Get the Most Out of Your Product Manager
Adam Nash
 
PDF
Be A Great Product Leader (Dropbox / AirBnB 2013)
Adam Nash
 
PDF
Design in Tech Report 2015
John Maeda
 
PDF
Be a Great Product Leader (Zynga 2016)
Adam Nash
 
PDF
A Product Manager's Job
joshelman
 
Be a Great Product Leader (HBS ICE 2012)
Adam Nash
 
How to Get the Most Out of Your Product Manager
Adam Nash
 
Be A Great Product Leader (Dropbox / AirBnB 2013)
Adam Nash
 
Design in Tech Report 2015
John Maeda
 
Be a Great Product Leader (Zynga 2016)
Adam Nash
 
A Product Manager's Job
joshelman
 
Ad

Similar to Modern Java Web Development (20)

PPT
December 4 SDForum Java Sig Presentation
Jonathan Abrams
 
PPTX
Introduction to j2 ee frameworks
Mukesh Kumar
 
PPTX
java web framework standard.20180412
FirmansyahIrma1
 
PDF
Bledar Gjocaj - Java open source
Open Labs Albania
 
PPTX
Be faster then rabbits
Vladislav Bauer
 
PPT
Developing Java Web Applications
hchen1
 
PPTX
Introduction to ejb and struts framework
s4al_com
 
PPTX
5 Treding Java Frameworks Offshore Developers Should About
BJIT Ltd
 
PDF
Java Framework comparison
SIB Visions GmbH
 
PDF
Java and the Web
Dmitry Buzdin
 
PDF
Curious Coders Java Web Frameworks Comparison
Hamed Hatami
 
PPTX
Web application framework
Pankaj Chand
 
PDF
5 best Java Frameworks
Aegis Softtech
 
ODP
Web development in JavaEE7 with JSF, does it still matter?
Paris Apostolopoulos
 
PDF
[Challenge:Future] Chocoholic
Challenge:Future
 
PPTX
Frameworks Galore: A Pragmatic Review
netc2012
 
PPTX
Introduction Java Web Framework and Web Server.
suranisaunak
 
PPTX
Frameworks in java
Darshan Patel
 
PPTX
Comparison of Java Web Application Frameworks
Angelin R
 
PDF
Comparing JVM Web Frameworks - Devoxx 2010
Matt Raible
 
December 4 SDForum Java Sig Presentation
Jonathan Abrams
 
Introduction to j2 ee frameworks
Mukesh Kumar
 
java web framework standard.20180412
FirmansyahIrma1
 
Bledar Gjocaj - Java open source
Open Labs Albania
 
Be faster then rabbits
Vladislav Bauer
 
Developing Java Web Applications
hchen1
 
Introduction to ejb and struts framework
s4al_com
 
5 Treding Java Frameworks Offshore Developers Should About
BJIT Ltd
 
Java Framework comparison
SIB Visions GmbH
 
Java and the Web
Dmitry Buzdin
 
Curious Coders Java Web Frameworks Comparison
Hamed Hatami
 
Web application framework
Pankaj Chand
 
5 best Java Frameworks
Aegis Softtech
 
Web development in JavaEE7 with JSF, does it still matter?
Paris Apostolopoulos
 
[Challenge:Future] Chocoholic
Challenge:Future
 
Frameworks Galore: A Pragmatic Review
netc2012
 
Introduction Java Web Framework and Web Server.
suranisaunak
 
Frameworks in java
Darshan Patel
 
Comparison of Java Web Application Frameworks
Angelin R
 
Comparing JVM Web Frameworks - Devoxx 2010
Matt Raible
 
Ad

More from zenyk (13)

PDF
Semasearch Spring - 2015
zenyk
 
PDF
Проект Каскад
zenyk
 
PPTX
Ecois.me and uMuni
zenyk
 
PPTX
Semasearch Intro
zenyk
 
PPTX
Rapid Development of Big Data applications using Spring for Apache Hadoop
zenyk
 
PPTX
SEMASEARCH - Високі технології у боротьбі з корупцією та на захисті держави
zenyk
 
PPT
Introduction to Clojure - EDGE Lviv
zenyk
 
PPTX
Puppet / DevOps - EDGE Lviv
zenyk
 
PPTX
Spring for Apache Hadoop
zenyk
 
PPTX
Hadoop Solutions
zenyk
 
PPTX
Emotional Intelligence
zenyk
 
PPTX
Lviv EDGE 2 - NoSQL
zenyk
 
PPTX
Amazon Clouds in Action
zenyk
 
Semasearch Spring - 2015
zenyk
 
Проект Каскад
zenyk
 
Ecois.me and uMuni
zenyk
 
Semasearch Intro
zenyk
 
Rapid Development of Big Data applications using Spring for Apache Hadoop
zenyk
 
SEMASEARCH - Високі технології у боротьбі з корупцією та на захисті держави
zenyk
 
Introduction to Clojure - EDGE Lviv
zenyk
 
Puppet / DevOps - EDGE Lviv
zenyk
 
Spring for Apache Hadoop
zenyk
 
Hadoop Solutions
zenyk
 
Emotional Intelligence
zenyk
 
Lviv EDGE 2 - NoSQL
zenyk
 
Amazon Clouds in Action
zenyk
 

Recently uploaded (20)

PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Digital Circuits, important subject in CS
contactparinay1
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 

Modern Java Web Development

  • 1. Modern Java Web DevelopmentBy Zenyk Matchyshyn
  • 2. AgendaWeb frameworks classificationMajor frameworks in each classHow to select a framework and typical combinationsRapid web development on JavaModern approaches to development2
  • 3. Web Frameworks ClassificationWeb Frameworks can be classified into following categories:Request/Action Frameworks (Spring MVC, Struts 2, …)Component Frameworks (GWT, JSF, …)Server Side Frameworks (BlazeDS, Jax-RS, …)3
  • 4. Request/Action FrameworksFollows classic MVC patternNo notion of componentReusability of controllers and viewsHave similar structure and conceptsSimple and straightforwardBetter suited for simple sites Examples: Spring MVC, Struts 2Non Java examples: Ruby on Rails, ASP.NET MVC4
  • 5. Component FrameworksHave components at its coreBetter suited for RIA applications and Forms applicationsMore complex Examples: GWT, JSF, Tapestry 5Non Java examples: ASP.NET5
  • 6. Server Side FrameworksDivided into following groups:Web Services (SOAP and RESTful)Flex Server SideAjax libraries, Serialization/Marshaling libraries6
  • 7. Web ServicesSOAP basedFrameworks: Axis 1/2, Spring WS, JAX-WS XML basedRESTful (Jax-RS, Spring MVC, …):Frameworks: Follows REST guidelinesXML, JSON or other protocol7
  • 8. FlexMain frameworks: BlazeDS, WebORB, Granite DS, LiveCycle Data ServicesProvide serialization for AMF protocolSome have code generationJava is first class citizen in Flex worldMain features: remoting, proxy service, pub/sub over HTTP and JMS 8
  • 9. Ajax Libraries and custom serializationDirect Web Remoting (DWR)Custom serializators based on popular protocol (JSON, XML, YAML, …)Usually build on top of Servlet API or Action frameworks such as Spring MVC9
  • 11. Google Web ToolkitCurrent version – 2.2Evolves, supported by GoogleHave forks: GWT-Ext, Vaadin, SmartGWTGood tooling: Google Plugin for Eclipse, visual designerNot just for RIA (Odnoklasniki!)Heavy Java orientationDebug and deployment sometimes complicated11
  • 12. Spring MVCCurrent version – 3.1Led by SpringSource – doesn’t evolveLots of view resolversTooling is supported on a Spring Framework levelLots of documentation, implementations and examples12
  • 13. Java Server FacesCurrent version – 2.0Led by JCP (Oracle)Evolves, supported by big companiesPainful, but standardLibraries - Apache MyFaces, JbossRichFaces, Oracle ADFTooling is limitedSignificant version differences13
  • 14. Struts 2 and StripesAction/Request based frameworksActively developedStruts 2 – Apache project, latest release – 20 Dec 2010Struts 2 = Struts 1 + WebWorkStruts 2 uses OGNLStripes – latest release – 4 Jan 2011Some success storiesBooks, tutorials available14
  • 15. Tapestry 5 and WicketTapestry 5 and Wicket are Apache projectsBoth are component basedTapestry 5 latest release 15 Nov 2010Wicket latest release – 21 Jan 2011Tapestry uses OGNLWicket is more Java oriented15
  • 16. How to select a framework16
  • 17. Main factorsDeveloper productivityDeveloper perceptionLearning curveProject HealthDeveloper AvailabilityJob TrendsTemplatingComponentsAjaxPlugins or Add-Ons17
  • 18. Main factors – continuedScalabilityTestingI18n and i10nValidationMulti-Language supportQuality of documentationBooksREST supportMobile supportDegree of risk18
  • 19. ComparisonHigh traffic, internet facing, infinite scalability – Action/Request based frameworkIntranet based, few users, behind firewall – Component based frameworkProducts, to be maintained for 5-10 years – largest community, most vendor supportLegacy backend – same language as backendDone by Matt Raible - http://bit.ly/jvm-frameworks-matrixYou should have yours!19
  • 20. Typical frameworks combinationsConsider JavaScript librariesYUI/Ext JS/Dojo/jQuery + Action/Request based – gives separation of front end and server sideGWT + Spring MVC – gives components and flexibility where necessaryJSF + JAX-RS – gives components and REST access for JavaScript UI20
  • 22. Spring RooGenerates typical combinations between database, models, controllers and viewsSupports Hibernate, GWT, Spring MVC, Spring Security, Maven, JPA and tons more…Waving can be turned off (remove Spring Roo)Actively developedhttp://www.springsource.org/roo22
  • 23. AppFuseGenerates basic project using typical combinationsGood place to learn best practicesCan generate code based on DB schemaSomewhat evolvinghttp://appfuse.org23
  • 24. Custom FactoriesUse Maven!Use scripting!Use code generators – Skyway Builder, SpringFuseMost companies are doing it rightReuse experience24
  • 25. Modern Approaches to development25
  • 26. ToolsUse Eclipse/Idea/NetBeansMaven works, just use the latest version and Maven Shellm2eclipse, jetty plugin or tomcat pluginUse JRebel for zero turnaround Tomcat and Jetty – rocks!26
  • 27. ArchitectureUse JavaScript frameworksUse IoC frameworks (Spring, Guice, …) but keep classpath cleanKeep session isolatedAvoid JSPMinimize Controllers layerUse existing security solutions e.g. Spring SecurityEach module should have its own Maven artifact27
  • 28. Friends from neighborhood JRuby on Rails great for prototypingJRubydeveloped by OracleGroovy on Grails great for new small and medium projectsGroovy developed by SpringSourcePossible to use existing business login on other languagesLearn and apply best practices from non Java frameworks28
  • 29. Future – Java EE 6 Web ProfileServlet 3.0: Web Fragments, Async API, programmatic methods to add servlets and filters, Annotations, Security enhancements JSP 2.2 / EL 2.2 : method invocations, new properties Web BeansBean ValidationManaged Beans29