Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Mvc 1.0 - by Example @JEEConf 2015
Search
ivargrimstad
May 22, 2015
Programming
1
2k
Mvc 1.0 - by Example @JEEConf 2015
Overview, introduction and code samples. Includes links and how to get started.
ivargrimstad
May 22, 2015
Tweet
Share
More Decks by ivargrimstad
See All by ivargrimstad
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
260
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
550
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
1
1.1k
What Spring Developers Should Know About Jakarta EE
ivargrimstad
1
1.5k
Duke on CRaC with Jakarta EE
ivargrimstad
1
1.3k
Boost Your Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
1.5k
Jakarta EE Meets AI
ivargrimstad
0
1.6k
Boost Your Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
2.9k
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
3.2k
Other Decks in Programming
See All in Programming
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
2
200
Claude Code派?Gemini CLI派? みんなで比較LT会!_20250716
junholee
1
530
システム成長を止めない!本番無停止テーブル移行の全貌
sakawe_ee
1
360
PicoRuby on Rails
makicamel
2
140
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
180
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
0
200
ISUCON研修おかわり会 講義スライド
arfes0e2b3c
1
470
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
5
1.1k
テスト駆動Kaggle
isax1015
1
620
Startups on Rails in Past, Present and Future–Irina Nazarova, RailsConf 2025
irinanazarova
0
250
The Modern View Layer Rails Deserves: A Vision For 2025 And Beyond @ RailsConf 2025, Philadelphia, PA
marcoroth
2
730
ニーリーにおけるプロダクトエンジニア
nealle
0
950
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
35
6.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Optimizing for Happiness
mojombo
379
70k
Side Projects
sachag
455
42k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Six Lessons from altMBA
skipperchong
28
3.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Transcript
@ivar_grimstad JEEConf 2015 MVC 1.0 - by Example Ivar Grimstad
@ivar_grimstad JEEConf 2015 Background JSR 371 - MVC for Java
EE 8 Demo Summary
@ivar_grimstad JEEConf 2015 @ivar_grimstad https://github.com/ivargrimstad https://www.linkedin.com/in/ivargrimstad http://lanyrd.com/profile/ivargrimstad/
@ivar_grimstad JEEConf 2015 Background
@ivar_grimstad JEEConf 2015 What?
@ivar_grimstad JEEConf 2015 Controller Model View Request Update Update Get
MVC Pattern
@ivar_grimstad JEEConf 2015 Component-based MVC
@ivar_grimstad JEEConf 2015 Controller Model View Request Update Update Get
Component-based MVC
@ivar_grimstad JEEConf 2015 Action-based MVC
@ivar_grimstad JEEConf 2015 Controller Model View Request Update Update Get
Action-based MVC
@ivar_grimstad JEEConf 2015 Why?
@ivar_grimstad JEEConf 2015 https://java.net/downloads/javaee-spec/JavaEE8_Community_Survey_Results.pdf
@ivar_grimstad JEEConf 2015 http://glassfish.org/survey
@ivar_grimstad JEEConf 2015 How?
@ivar_grimstad JEEConf 2015 JSR 371 MVC for Java EE 8
@ivar_grimstad JEEConf 2015 Action-based MVC
@ivar_grimstad JEEConf 2015 Existing Java EE Technologies
@ivar_grimstad JEEConf 2015 JSR 371 Expert Group
@ivar_grimstad JEEConf 2015 Key Decisions
@ivar_grimstad JEEConf 2015 Key Decisions
@ivar_grimstad JEEConf 2015 Build MVC 1.0 on top of JAX-RS
@ivar_grimstad JEEConf 2015 Show me the CODE !
@ivar_grimstad JEEConf 2015 Controllers
@ivar_grimstad JEEConf 2015 public class HelloController { }
@ivar_grimstad JEEConf 2015 @Path(“hello”) public class HelloController { }
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController {
}
@ivar_grimstad JEEConf 2015 @Controller @Path( public } Views
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController {
}
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController { @GET
public String hello() { return “hello.jsp”; } }
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController { @GET
public Viewable hello() { return new Viewable(“hello.jsp”); } }
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController { @GET
public Response hello() { return Response.status(OK) .entity(“hello.jsp”) .build(); } }
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController { @View(“hello.jsp”)
@GET public void hello() { } }
@ivar_grimstad JEEConf 2015 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController {
@GET public void hello() { } }
@ivar_grimstad JEEConf 2015 Models using CDI
@ivar_grimstad JEEConf 2015 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController {
@GET public void hello() { } }
@ivar_grimstad JEEConf 2015 @Named(“greeting”) @RequestScoped public class Greeting { private
String message; public void setMessage(String message) { this.message = message; } public String getMessage() { return message; } }
@ivar_grimstad JEEConf 2015 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController {
@Inject private Greeting greeting; @GET public void hello() { greeting.setMessage(“Hello Kiev”); } }
@ivar_grimstad JEEConf 2015 <%@page contentType=“text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head>
<title>MVC 1.0 Hello Demo</title> </head> <body> <h1>Hello ${greeting.message}</h1> </body> </html>
@ivar_grimstad JEEConf 2015 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController {
@GET public void hello() { } }
@ivar_grimstad JEEConf 2015 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController {
@Inject private Models model; @GET public void hello() { model.put(“message”,“Hello Kiev”); } }
@ivar_grimstad JEEConf 2015 <%@page contentType=“text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head>
<title>MVC 1.0 Hello Demo</title> </head> <body> <h1>Hello ${message}</h1> </body> </html>
@ivar_grimstad JEEConf 2015 Demo
@ivar_grimstad JEEConf 2015 Create MVC Project Advanced Example Comparison with
Spring MVC
@ivar_grimstad JEEConf 2015 Road Map
@ivar_grimstad JEEConf 2015 Q3 2014 Expert Group formed Q1 2015
Early Draft Q3 2015 Public Review Q1 2016 Proposed Final Draft Q3 2016 Final Release
@ivar_grimstad JEEConf 2015 Reference Implementation https://ozark.java.net
@ivar_grimstad JEEConf 2015 Summary
@ivar_grimstad JEEConf 2015 Existing Java EE Technologies CDI, JAX-RS, Bean
Validation New Annotations @Controller @View Community Support Summary
@ivar_grimstad JEEConf 2015 Getting Started Specification https://mvc-spec.java.net Reference Implementation https://ozark.java.net
@ivar_grimstad JEEConf 2015 Demo Source https://github.com/ivargrimstad/mvc-samples https://github.com/ivargrimstad/javaee-mvc-spring
@ivar_grimstad JEEConf 2015 www.cybercom.com