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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ivargrimstad
May 22, 2015
Programming
1
2.1k
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 Past, Present, and Future of Enterprise Java
ivargrimstad
0
33
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
610
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
990
Duke on CRaC with Jakarta EE
ivargrimstad
0
980
Developing Specifications - Jakarta EE: a Real World Example
ivargrimstad
0
850
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.1k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.1k
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
1.1k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.1k
Other Decks in Programming
See All in Programming
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
140
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
CSC307 Lecture 09
javiergs
PRO
1
840
並行開発のためのコードレビュー
miyukiw
0
1k
2026年 エンジニアリング自己学習法
yumechi
0
140
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
620
高速開発のためのコード整理術
sutetotanuki
1
410
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
220
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
CSC307 Lecture 01
javiergs
PRO
0
690
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Why Our Code Smells
bkeepers
PRO
340
58k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
It's Worth the Effort
3n
188
29k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
How to train your dragon (web standard)
notwaldorf
97
6.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
340
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
310
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