SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
MVC 1.0 / JSR 371
Report
David Delabassee
Follow
DevRel - Java Platform Group - Oracle
Mar. 24, 2015
•
0 likes
•
12,685 views
1
of
42
MVC 1.0 / JSR 371
Mar. 24, 2015
•
0 likes
•
12,685 views
Download Now
Download to read offline
Report
Technology
MVC 1.0 /JSR 371, presented at JavaLand 2015
David Delabassee
Follow
DevRel - Java Platform Group - Oracle
Recommended
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
David Delabassee
1.8K views
•
50 slides
EJB and CDI - Alignment and Strategy
David Delabassee
31.9K views
•
43 slides
Java EE 8 - An instant snapshot
David Delabassee
10.7K views
•
91 slides
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
Edward Burns
19.2K views
•
82 slides
Servlet 4.0 at GeekOut 2015
Edward Burns
19.3K views
•
87 slides
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Heather VanCura
6.5K views
•
13 slides
More Related Content
What's hot
Down-to-Earth Microservices with Java EE
Reza Rahman
103.6K views
•
17 slides
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Arshal Ameen
10.5K views
•
44 slides
Reactive Java EE - Let Me Count the Ways!
Reza Rahman
104.5K views
•
39 slides
What's New in WebLogic 12.1.3 and Beyond
Oracle
20.3K views
•
16 slides
Finally, EE Security API JSR 375
Alex Kosowski
13.4K views
•
80 slides
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Edward Burns
3.4K views
•
67 slides
What's hot
(17)
Down-to-Earth Microservices with Java EE
Reza Rahman
•
103.6K views
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Arshal Ameen
•
10.5K views
Reactive Java EE - Let Me Count the Ways!
Reza Rahman
•
104.5K views
What's New in WebLogic 12.1.3 and Beyond
Oracle
•
20.3K views
Finally, EE Security API JSR 375
Alex Kosowski
•
13.4K views
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Edward Burns
•
3.4K views
Ed presents JSF 2.2 and WebSocket to Gameduell.
Edward Burns
•
3.9K views
JavaOne 2014 BOF4241 What's Next for JSF?
Edward Burns
•
29.7K views
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
•
1.4K views
WebSocket in Enterprise Applications 2015
Pavel Bucek
•
1.9K views
Have You Seen Java EE Lately?
Reza Rahman
•
37.1K views
How to Thrive on REST/WebSocket-Based Microservices
Pavel Bucek
•
1.2K views
Testing Java EE Applications Using Arquillian
Reza Rahman
•
25.7K views
Java EE Revisits GoF Design Patterns
Murat Yener
•
15.9K views
JSF 2.2 Input Output JavaLand 2015
Edward Burns
•
1.9K views
Java EE 8: On the Horizon
Josh Juneau
•
13.3K views
Modern web application development with java ee 7
Shekhar Gulati
•
24K views
Viewers also liked
Updates to the java api for json processing for java ee 8
Alex Soto
4.8K views
•
49 slides
HTML5 Media Elements
Javier Antonio Humarán Peñuñuri
2.2K views
•
10 slides
JSR 375 Segurança em Java EE 8
Helder da Rocha
4.9K views
•
68 slides
New MVC 1.0 JavaEE 8 API
Trayan Iliev
932 views
•
33 slides
Gráficos Vetoriais na Web com SVG
Helder da Rocha
2.7K views
•
117 slides
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
David Delabassee
13.8K views
•
69 slides
Viewers also liked
(12)
Updates to the java api for json processing for java ee 8
Alex Soto
•
4.8K views
HTML5 Media Elements
Javier Antonio Humarán Peñuñuri
•
2.2K views
JSR 375 Segurança em Java EE 8
Helder da Rocha
•
4.9K views
New MVC 1.0 JavaEE 8 API
Trayan Iliev
•
932 views
Gráficos Vetoriais na Web com SVG
Helder da Rocha
•
2.7K views
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
David Delabassee
•
13.8K views
Java EE 8 - February 2017 update
David Delabassee
•
6K views
Java EE 8 Recipes
Josh Juneau
•
3.8K views
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Josh Juneau
•
8K views
Padrão Arquitetural MVC e suas aplicações para WEB
Rafael França
•
5.2K views
Model View Controller (MVC)
Javier Antonio Humarán Peñuñuri
•
35.9K views
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Masatoshi Tada
•
15.5K views
Similar to MVC 1.0 / JSR 371
2015 UJUG, MVC 1.0 portion
mnriem
1.9K views
•
26 slides
Oracle JET overview
Steven Davelaar
2.3K views
•
19 slides
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Bruno Borges
3.9K views
•
36 slides
Mastering DevOps with Oracle
jeckels
17.7K views
•
39 slides
JavaOne2015報告会 in Okinawa
Takashi Ito
745 views
•
44 slides
Oracle WebLogic Server 12.2.1 Do More with Less
Ed Burns
1.5K views
•
72 slides
Similar to MVC 1.0 / JSR 371
(20)
2015 UJUG, MVC 1.0 portion
mnriem
•
1.9K views
Oracle JET overview
Steven Davelaar
•
2.3K views
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Bruno Borges
•
3.9K views
Mastering DevOps with Oracle
jeckels
•
17.7K views
JavaOne2015報告会 in Okinawa
Takashi Ito
•
745 views
Oracle WebLogic Server 12.2.1 Do More with Less
Ed Burns
•
1.5K views
How to Obtain Peak Performance from Your Virtual Environment
eG Innovations
•
1.1K views
JDK versions and OpenJDK
Wolfgang Weigend
•
1.8K views
Coding from Application Container Cloud to Oracle JET
Geertjan Wielenga
•
504 views
20160123 java one2015_feedback @ Osaka
Takashi Ito
•
466 views
Java fx
Attune World Wide
•
475 views
2015 JavaOne LAD JSF 2.3 & MVC 1.0
mnriem
•
624 views
Modernizing an Existing SOA-based Architecture with APIs
Apigee | Google Cloud
•
2.3K views
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
Toon Koppelaars
•
18 views
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
Edward Burns
•
3.6K views
Migrating Oracle Forms Using Oracle Application Express
DavidPeake15
•
345 views
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Bart Jonkers
•
553 views
Oracle Enterprise Manager for MySQL
Mario Beck
•
752 views
Rapid private cloud with oracle vm and oracle openstack for oracle linux
OTN Systems Hub
•
1.5K views
Using MySQL Enterprise Monitor for Continuous Performance Improvement
Mark Matthews
•
731 views
More from David Delabassee
JVMs in Containers - Best Practices
David Delabassee
722 views
•
37 slides
JVMs in Containers
David Delabassee
1.3K views
•
38 slides
Serverless Java Challenges & Triumphs
David Delabassee
1.2K views
•
46 slides
Serverless Java - Challenges and Triumphs
David Delabassee
280 views
•
41 slides
Randstad Docker meetup - Serverless
David Delabassee
321 views
•
37 slides
Java Serverless in Action - Voxxed Banff
David Delabassee
231 views
•
22 slides
More from David Delabassee
(20)
JVMs in Containers - Best Practices
David Delabassee
•
722 views
JVMs in Containers
David Delabassee
•
1.3K views
Serverless Java Challenges & Triumphs
David Delabassee
•
1.2K views
Serverless Java - Challenges and Triumphs
David Delabassee
•
280 views
Randstad Docker meetup - Serverless
David Delabassee
•
321 views
Java Serverless in Action - Voxxed Banff
David Delabassee
•
231 views
Serverless Kotlin
David Delabassee
•
251 views
REST in an Async World
David Delabassee
•
2.3K views
JAX-RS 2.1 Reloaded
David Delabassee
•
1.7K views
Java EE Next
David Delabassee
•
2.2K views
Java EE Next - BeJUG JavaOne Afterglow 2016
David Delabassee
•
433 views
HTTP/2 comes to Java
David Delabassee
•
5.9K views
Java EE 8 - Work in progress
David Delabassee
•
2.5K views
HTTP/2 comes to Java (Dec. 2015 version)
David Delabassee
•
690 views
HTTP/2 Comes to Java
David Delabassee
•
2.9K views
Java EE 8 - What’s new on the Web front
David Delabassee
•
959 views
HTTP/2 Comes to Java
David Delabassee
•
10.8K views
What's coming in Java EE 8
David Delabassee
•
2.3K views
Avatar 2.0
David Delabassee
•
1.9K views
Java EE 8 - An instant snapshot
David Delabassee
•
1.7K views
Recently uploaded
roomos_webinar_280923_v2.pptx
ThousandEyes
31 views
•
29 slides
Dev Dives: Mastering AI-powered Document Understanding
UiPathCommunity
549 views
•
44 slides
Google cloud Study Jam 2023.pptx
GDSCNiT
489 views
•
56 slides
How is AI changing journalism? Strategic considerations for publishers and ne...
Damian Radcliffe
125 views
•
108 slides
10 reasons to choose Galaxy Tab S9 for work on the go
Samsung Business USA
95 views
•
13 slides
9C Monthly Newsletter - SEPT 2023
PublishingTeam
258 views
•
11 slides
Recently uploaded
(20)
roomos_webinar_280923_v2.pptx
ThousandEyes
•
31 views
Dev Dives: Mastering AI-powered Document Understanding
UiPathCommunity
•
549 views
Google cloud Study Jam 2023.pptx
GDSCNiT
•
489 views
How is AI changing journalism? Strategic considerations for publishers and ne...
Damian Radcliffe
•
125 views
10 reasons to choose Galaxy Tab S9 for work on the go
Samsung Business USA
•
95 views
9C Monthly Newsletter - SEPT 2023
PublishingTeam
•
258 views
Need for Speed: Removing speed bumps in API Projects
Łukasz Chruściel
•
140 views
OpenAI API crash course
Dimitrios Platis
•
22 views
How resolve Gem dependencies in your code?
Hiroshi SHIBATA
•
169 views
Knowledge Graphs and Generative AI_GraphSummit Minneapolis Sept 20.pptx
Neo4j
•
49 views
"Software Architecture for Humans!", Eberhard Wolff
Fwdays
•
22 views
EuroBSDCon 2023 - (auto)Installing BSD Systems - Cases using pfSense, TrueNAS...
Vinícius Zavam
•
81 views
Product Research Presentation-Maidy Veloso.pptx
MaidyVeloso
•
43 views
Empowering City Clerks
OnBoard
•
101 views
Omada Pitch Deck
sjcobrien
•
31 views
Accelerating Data Science through Feature Platform, Transformers and GenAI
FeatureByte
•
127 views
UiPath Tips and Techniques for Debugging - Session 3
DianaGray10
•
57 views
CamundaCon NYC 2023 Keynote - Shifting into overdrive with process orchestration
Bernd Ruecker
•
69 views
"Building Asynchronous SOA for Modern Applications", Sai Pragna Etikyala
Fwdays
•
33 views
Product Research Presentation-Maidy Veloso.pptx
MaidyVeloso
•
41 views
MVC 1.0 / JSR 371
1.
MVC 1.0 JavaLand March
2015 David Delabassee @delabassee Oracle Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 1
2.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. The following is intended to outline our g eneral product direction. It is intended for i nformation purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Safe Harbor Statement 2
3.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Lorem ipsum dolor sit amet, MVC, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua, Action-‐Based MVC. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. JSR 371 duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Ozark excepteur sint occaecat cupidatat non proident. My Own Statement 3
4.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Agenda Context MVC 1.0 JSR Conclusion 1 2 3 4
5.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Agenda Context MVC 1.0 JSR Conclusion 1 2 3 5
6.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 7 ENTERPRISE EDITION • Batch • Concurrency • Simplified JMS • More annotated POJOs • Less boilerplate code • Cohesive integrated platform DEVELOPER PRODUCTIVITY • WebSockets • JSON • Servlet 3.1 NIO • REST MEETING ENTERPRISE DEMANDS Java EE 7 6
7.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Cloud Mobile HTTP/2 SECURITY Reactive Programming User Experience 7
8.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 Community Survey Should Java EE provide support for MVC alongside JSF? Is there any one de-‐facto standard technology in this space to which we should look for inspiration? 8
9.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. 9
10.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Community-‐Prioritized Features 10 http://glassfish.org/survey
11.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. What is MVC? • Pattern used to implement a User Interface • Consists of 3 major components – Model – View – Controller • Each of the components has a distinct responsibility 11
12.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. The M(odel) • Interim state you want to keep when you are building an UI • Examples – Who is logged in – What are they trying to buy – What page are they on in a multi page flow 12
13.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. The V(iew) • What your user interacts with – In a web application that would be the web page or web pages • your JSP page • your CSS styles • your JavaScript – In a thick client scenario it would be the entire UI – In an embedded scenario it could be the touch screen, hardware buttons etc. 13
14.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. The C(ontroller) • Work horse of the pattern: – Executes the business logic • Run a credit card transaction – Updates the model • Mark the transaction as successful in the model object – Ask the view to render itself • Shows the transaction was successful 14
15.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Different styles of MVC • Component-‐based MVC • Action-‐based MVC • Others 15
16.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Component-‐based MVC • A specific style of MVC made popular by component frameworks • Controller provided by the framework • Examples – JavaServer Faces – Wicket – Tapestry – Seam (discontinued) – Apache Click (retired) 16
17.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Action-‐based MVC • Controller(s) defined by the application • Examples – Struts 1 (end of life), Struts 2 – Spring MVC • No standard Java EE implementation – Good news we are creating one! – Targeted for inclusion in Java EE 8 17
18.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Action-‐based MVC – Manual request parameter processing – No view kept around – Request centric – Developer responsible for all HTML / JS – Limited support for re-‐usable behavior – No automatic input conversion – No automatic input validation Component-‐based MVC – Automatic request parameter processing – View kept around – Page centric – Components handle HTML / JS – Component implement re-‐usable behavior – Automatic input conversion – Automatic input validation Compare and contrast 18
19.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Agenda Context MVC 1.0 JSR Conclusion 1 2 3 19
20.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Model-‐View-‐Controller (MVC 1.0) Specification • “Action-‐based” MVC 1.0 JSR • Why? – UI landscape is not one size fits all – Java EE 8 Community Survey – Talking to our customers, etc. • EG formed – Oracle, RedHat, innoQ, IBM, Caelum, LifeRay, and 6 individuals members • You can contribute too! JSR 371 20
21.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Model-‐View-‐Controller (MVC 1.0) Specification • Ozark – https://ozark.java.net • Open Source – git://java.net/ozark~sources – https://github.com/spericas/ozark Reference Implementation 21
22.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. MVC 1.0 • Action-‐based MVC • Glues together key Java EE technologies – Model : CDI, Bean Validation, JPA – View : Facelets, JSP, more? – Controller : Invent new technology Vs. Leverage existing technologies 22 Principles
23.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Controller • Combine data models and views to produce web application pages @Path("hello") public class HelloController { @GET @Controller public String hello() { return "hello.jsp"; } } 23
24.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Controller • Class/method decorated with @Controller @Path(“hello") @Controller public class HelloController { @GET @View(“hello.jsp") public void hello() { } } 24
25.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Controller @Path(“hello") @Controller public class HelloController { @GET public Viewable hello() { return new Viewable("hello.jsp"); } } 25
26.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Controller … @GET @Controller public Response getById(@PathParam("id") String id) { if (id.length() == 0) { return Response.status(Response.Status.BAD_REQUEST) .entity(“error.jsp") .build(); } } 26
27.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Model • “Refers to the data” • 2 types – javax.mvc.Models interface – CDI @Named bean (recommended) 27
28.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Model @Named(“greeting”) @RequestScoped public class Greeting { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } 28
29.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Model @Path(“hello”) public class HelloController { @Inject private Models models; @GET @Controller public String hello() { models.set(“greeting”, new Greeting(“Hi JavaLand”)); return “hello.jsp”; } } 29
30.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. View • Define the structure of the output • Can refer to model(s) • Rendered by a View Engine – JSP – Facelets • Not accessible as static resources – /WEB-‐INF/views/ 30
31.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. View <%@ page contentType=“text/html;charset=UTF-8” language=“java” %> <html> <head> <title>Hello</title> </head> <body> <p>Hello ${user.name}</p> </body> </html> 31
32.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. View Engine • CDI based extension mechanism • javax.mvc.engine.ViewEngine interface boolean supports(String view); void processView(ViewEngineContext context) throws ViewEngineException; • Ozark – JSP & Facelets – FreeMarker, Velocity, Thymeleaf, Mustache & Handlebars 32
33.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Miscellaneous • Bootstrap – javax.ws.rs.core.Application • Validation • Exception Mapping Providers • @Produces • CDI Events • Tooling 33
34.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Demos? 34 Lorem ipsum dolor sit amet, Intial consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua, Ozark Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Velit duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. milestone build excepteur sint occaecat cupidatat non proident.
35.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Agenda Context MVC 1.0 JSR Conclusion 1 2 3 35
36.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Conclusion • Doing MVC now is not a bad idea, because we are: – Leveraging CDI, JAX-‐RS, Facelets, BV – More? Servlet 4.0’s ServerPush – Delivering an easy migration path if you are using JSPs • Offers more choices • New annotations – @Controller – @View 36
37.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Java EE 8 • Java EE 8 Platform (JSR 366) • CDI 2.0 (JSR 365) • JSON Binding 1.0 (JSR 367) • JMS 2.1 (JSR 368) • Java Servlet 4.0 (JSR 369) • JAX-‐RS 2.1 (JSR 370) • MVC 1.0 (JSR 371) • JSF 2.3 (JSR 372) • Java EE Management 2.0 (JSR 373) • JSON-‐P 1.1 (JSR 374) • Java EE Security 1.0 (JSR 375) So far….. 37
38.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Roadmap • Q3 2014 Expert Group formed • Q1 2015 Early Draft • Q3 2015 Public Review • Q1 2016 Proposed Final Draft • Q3 2016 Final Release 38
39.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Contribute! • Join the JCP • “Adopt-‐A-‐JSR” – http://glassfish.java.net/adoptajsr • Get involved – Join MVC users mailing list – Tweet, blog, socialize to raise awareness about MVC 1.0 – Test MVC SNAPSHOT and milestone builds (https://ozark.java.net) – Fill issues! 39
40.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Links • MVC specification – http://mvc-‐spec.java.net, users@mvc-‐spec.java.net • MVC implementation – http://ozark.java.net, users@ozark.java.net • Spec leads – Santiago (@spericas) – Manfred (@mnriem, http://mvc.zeef.com/manfred.riem ) • The Aquarium Blog – https://blogs.oracle.com/theaquarium/ 40
41.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. Danke! 41
42.
Copyright © 2015,
Oracle and/or its affiliates. All rights reserved. 42