Submit Search
Upload
Javatwo2012 java frameworkcomparison
•
Download as PPTX, PDF
•
1 like
•
896 views
Jini Lee
Follow
The javatwo ( Taiwan Java Develpers' Day ) to compare the hot java frameworks .
Read less
Read more
Technology
Education
Report
Share
Report
Share
1 of 74
Download now
Recommended
Java Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet Advanced
IMC Institute
Java Web Programming [2/9] : Servlet Basic
Java Web Programming [2/9] : Servlet Basic
IMC Institute
Java Web Programming [6/9] : MVC
Java Web Programming [6/9] : MVC
IMC Institute
The Rails Way
The Rails Way
Michał Orman
Java Web Programming [7/9] : Struts2 Basics
Java Web Programming [7/9] : Struts2 Basics
IMC Institute
JBoss Seam vs JSF
JBoss Seam vs JSF
Markos Fragkakis
Java Web Development with Stripes
Java Web Development with Stripes
Samuel Santos
Stripes Framework
Stripes Framework
Johannes Carlén
Recommended
Java Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet Advanced
IMC Institute
Java Web Programming [2/9] : Servlet Basic
Java Web Programming [2/9] : Servlet Basic
IMC Institute
Java Web Programming [6/9] : MVC
Java Web Programming [6/9] : MVC
IMC Institute
The Rails Way
The Rails Way
Michał Orman
Java Web Programming [7/9] : Struts2 Basics
Java Web Programming [7/9] : Struts2 Basics
IMC Institute
JBoss Seam vs JSF
JBoss Seam vs JSF
Markos Fragkakis
Java Web Development with Stripes
Java Web Development with Stripes
Samuel Santos
Stripes Framework
Stripes Framework
Johannes Carlén
Java Web Programming [4/9] : JSP Basic
Java Web Programming [4/9] : JSP Basic
IMC Institute
JavaServer Faces 2.0 - JavaOne India 2011
JavaServer Faces 2.0 - JavaOne India 2011
Arun Gupta
Resthub lyonjug
Resthub lyonjug
Sébastien Deleuze
Suportando Aplicações Multi-tenancy com Java EE
Suportando Aplicações Multi-tenancy com Java EE
Rodrigo Cândido da Silva
AtlasCamp 2010: Understanding the Atlassian Platform - Tim Pettersen
AtlasCamp 2010: Understanding the Atlassian Platform - Tim Pettersen
Atlassian
AtlasCamp 2013: Modernizing your Plugin UI
AtlasCamp 2013: Modernizing your Plugin UI
colleenfry
Lecture 9 - Java Persistence, JPA 2
Lecture 9 - Java Persistence, JPA 2
Fahad Golra
What's new in Java EE 7
What's new in Java EE 7
gedoplan
Introducing Rendr: Run your Backbone.js apps on the client and server
Introducing Rendr: Run your Backbone.js apps on the client and server
Spike Brehm
Java Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [2/3] : Datastore
IMC Institute
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
IMC Institute
Implicit object.pptx
Implicit object.pptx
chakrapani tripathi
Lecture 5 JSTL, custom tags, maven
Lecture 5 JSTL, custom tags, maven
Fahad Golra
TechDays 2013 Jari Kallonen: What's New WebForms 4.5
TechDays 2013 Jari Kallonen: What's New WebForms 4.5
Tieturi Oy
JSP - Part 2 (Final)
JSP - Part 2 (Final)
Hitesh-Java
Fifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 Minutes
glassfish
Jdbc
Jdbc
BindhuBhargaviTalasi
10 J D B C
10 J D B C
guest04b824
Rich Portlet Development in uPortal
Rich Portlet Development in uPortal
Jennifer Bourey
ASP.Net Presentation Part3
ASP.Net Presentation Part3
Neeraj Mathur
Java 開發者的函數式程式設計
Java 開發者的函數式程式設計
Justin Lin
GCPUG meetup 201610 - Dataflow Introduction
GCPUG meetup 201610 - Dataflow Introduction
Simon Su
More Related Content
What's hot
Java Web Programming [4/9] : JSP Basic
Java Web Programming [4/9] : JSP Basic
IMC Institute
JavaServer Faces 2.0 - JavaOne India 2011
JavaServer Faces 2.0 - JavaOne India 2011
Arun Gupta
Resthub lyonjug
Resthub lyonjug
Sébastien Deleuze
Suportando Aplicações Multi-tenancy com Java EE
Suportando Aplicações Multi-tenancy com Java EE
Rodrigo Cândido da Silva
AtlasCamp 2010: Understanding the Atlassian Platform - Tim Pettersen
AtlasCamp 2010: Understanding the Atlassian Platform - Tim Pettersen
Atlassian
AtlasCamp 2013: Modernizing your Plugin UI
AtlasCamp 2013: Modernizing your Plugin UI
colleenfry
Lecture 9 - Java Persistence, JPA 2
Lecture 9 - Java Persistence, JPA 2
Fahad Golra
What's new in Java EE 7
What's new in Java EE 7
gedoplan
Introducing Rendr: Run your Backbone.js apps on the client and server
Introducing Rendr: Run your Backbone.js apps on the client and server
Spike Brehm
Java Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [2/3] : Datastore
IMC Institute
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
IMC Institute
Implicit object.pptx
Implicit object.pptx
chakrapani tripathi
Lecture 5 JSTL, custom tags, maven
Lecture 5 JSTL, custom tags, maven
Fahad Golra
TechDays 2013 Jari Kallonen: What's New WebForms 4.5
TechDays 2013 Jari Kallonen: What's New WebForms 4.5
Tieturi Oy
JSP - Part 2 (Final)
JSP - Part 2 (Final)
Hitesh-Java
Fifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 Minutes
glassfish
Jdbc
Jdbc
BindhuBhargaviTalasi
10 J D B C
10 J D B C
guest04b824
Rich Portlet Development in uPortal
Rich Portlet Development in uPortal
Jennifer Bourey
ASP.Net Presentation Part3
ASP.Net Presentation Part3
Neeraj Mathur
What's hot
(20)
Java Web Programming [4/9] : JSP Basic
Java Web Programming [4/9] : JSP Basic
JavaServer Faces 2.0 - JavaOne India 2011
JavaServer Faces 2.0 - JavaOne India 2011
Resthub lyonjug
Resthub lyonjug
Suportando Aplicações Multi-tenancy com Java EE
Suportando Aplicações Multi-tenancy com Java EE
AtlasCamp 2010: Understanding the Atlassian Platform - Tim Pettersen
AtlasCamp 2010: Understanding the Atlassian Platform - Tim Pettersen
AtlasCamp 2013: Modernizing your Plugin UI
AtlasCamp 2013: Modernizing your Plugin UI
Lecture 9 - Java Persistence, JPA 2
Lecture 9 - Java Persistence, JPA 2
What's new in Java EE 7
What's new in Java EE 7
Introducing Rendr: Run your Backbone.js apps on the client and server
Introducing Rendr: Run your Backbone.js apps on the client and server
Java Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [2/3] : Datastore
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Implicit object.pptx
Implicit object.pptx
Lecture 5 JSTL, custom tags, maven
Lecture 5 JSTL, custom tags, maven
TechDays 2013 Jari Kallonen: What's New WebForms 4.5
TechDays 2013 Jari Kallonen: What's New WebForms 4.5
JSP - Part 2 (Final)
JSP - Part 2 (Final)
Fifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 Minutes
Jdbc
Jdbc
10 J D B C
10 J D B C
Rich Portlet Development in uPortal
Rich Portlet Development in uPortal
ASP.Net Presentation Part3
ASP.Net Presentation Part3
Viewers also liked
Java 開發者的函數式程式設計
Java 開發者的函數式程式設計
Justin Lin
GCPUG meetup 201610 - Dataflow Introduction
GCPUG meetup 201610 - Dataflow Introduction
Simon Su
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
Justin Lin
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
Kuo-Chun Su
lwdba – 開放原始碼的輕量級資料庫存取程式庫
lwdba – 開放原始碼的輕量級資料庫存取程式庫
建興 王
JCConf 2015 - Google Dataflow 在雲端大資料處理的應用
JCConf 2015 - Google Dataflow 在雲端大資料處理的應用
Simon Su
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
Justin Lin
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Justin Lin
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Justin Lin
淺談JavaFX 遊戲程式
淺談JavaFX 遊戲程式
CodeData
Joda-Time & JSR 310 – Problems, Concepts and Approaches
Joda-Time & JSR 310 – Problems, Concepts and Approaches
Justin Lin
淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合
Kyle Lin
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
Justin Lin
JDK8 Functional API
JDK8 Functional API
Justin Lin
淺談 Java GC 原理、調教和新發展
淺談 Java GC 原理、調教和新發展
Leon Chen
如何用JDK8實作一個小型的關聯式資料庫系統
如何用JDK8實作一個小型的關聯式資料庫系統
なおき きしだ
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
Justin Lin
全文搜尋引擎的進階實作與應用
全文搜尋引擎的進階實作與應用
建興 王
Spock:願你的測試長長久久、生生不息
Spock:願你的測試長長久久、生生不息
Shihpeng Lin
Block chain
Block chain
Jini Lee
Viewers also liked
(20)
Java 開發者的函數式程式設計
Java 開發者的函數式程式設計
GCPUG meetup 201610 - Dataflow Introduction
GCPUG meetup 201610 - Dataflow Introduction
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
lwdba – 開放原始碼的輕量級資料庫存取程式庫
lwdba – 開放原始碼的輕量級資料庫存取程式庫
JCConf 2015 - Google Dataflow 在雲端大資料處理的應用
JCConf 2015 - Google Dataflow 在雲端大資料處理的應用
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
淺談JavaFX 遊戲程式
淺談JavaFX 遊戲程式
Joda-Time & JSR 310 – Problems, Concepts and Approaches
Joda-Time & JSR 310 – Problems, Concepts and Approaches
淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 AWS 雲端應用開發整合
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
JDK8 Functional API
JDK8 Functional API
淺談 Java GC 原理、調教和新發展
淺談 Java GC 原理、調教和新發展
如何用JDK8實作一個小型的關聯式資料庫系統
如何用JDK8實作一個小型的關聯式資料庫系統
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
全文搜尋引擎的進階實作與應用
全文搜尋引擎的進階實作與應用
Spock:願你的測試長長久久、生生不息
Spock:願你的測試長長久久、生生不息
Block chain
Block chain
Similar to Javatwo2012 java frameworkcomparison
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
Skills Matter
Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)
DSBW 2011/2002 - Carles Farré - Barcelona Tech
Java EE7 Demystified
Java EE7 Demystified
Ankara JUG
Symfony2 - from the trenches
Symfony2 - from the trenches
Lukas Smith
Jsf
Jsf
Anis Bouhachem Djer
Dropwizard
Dropwizard
Scott Leberknight
Spring 3: What's New
Spring 3: What's New
Ted Pennings
Symfony2 from the Trenches
Symfony2 from the Trenches
Jonathan Wage
From 0 to Spring Security 4.0
From 0 to Spring Security 4.0
robwinch
Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6
Michael Plöd
jQuery and Rails: Best Friends Forever
jQuery and Rails: Best Friends Forever
stephskardal
Spring Framework Petclinic sample application
Spring Framework Petclinic sample application
Antoine Rey
Let's react - Meetup
Let's react - Meetup
RAJNISH KATHAROTIYA
Spring Web Flow. A little flow of happiness.
Spring Web Flow. A little flow of happiness.
Alex Tumanoff
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Arun Gupta
Java EE 8 security and JSON binding API
Java EE 8 security and JSON binding API
Alex Theedom
Apache Wicket Web Framework
Apache Wicket Web Framework
Luther Baker
AnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFaces
Ankara JUG
Javascript ui for rest services
Javascript ui for rest services
Ioan Eugen Stan
Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6
Arun Gupta
Similar to Javatwo2012 java frameworkcomparison
(20)
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
In The Brain of Cagatay Civici: Exploring JavaServer Faces 2.0 and PrimeFaces
Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)
Java EE7 Demystified
Java EE7 Demystified
Symfony2 - from the trenches
Symfony2 - from the trenches
Jsf
Jsf
Dropwizard
Dropwizard
Spring 3: What's New
Spring 3: What's New
Symfony2 from the Trenches
Symfony2 from the Trenches
From 0 to Spring Security 4.0
From 0 to Spring Security 4.0
Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6
jQuery and Rails: Best Friends Forever
jQuery and Rails: Best Friends Forever
Spring Framework Petclinic sample application
Spring Framework Petclinic sample application
Let's react - Meetup
Let's react - Meetup
Spring Web Flow. A little flow of happiness.
Spring Web Flow. A little flow of happiness.
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Java EE 8 security and JSON binding API
Java EE 8 security and JSON binding API
Apache Wicket Web Framework
Apache Wicket Web Framework
AnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFaces
Javascript ui for rest services
Javascript ui for rest services
Boston 2011 OTN Developer Days - Java EE 6
Boston 2011 OTN Developer Days - Java EE 6
More from Jini Lee
Dev ops 顛覆新時代創新論壇
Dev ops 顛覆新時代創新論壇
Jini Lee
Quartz
Quartz
Jini Lee
Javaee7 jsr356-websocket
Javaee7 jsr356-websocket
Jini Lee
Java8 javatime-api
Java8 javatime-api
Jini Lee
Maji BP
Maji BP
Jini Lee
Tencent case study-2015
Tencent case study-2015
Jini Lee
投資組合規劃 Group8
投資組合規劃 Group8
Jini Lee
SoftLeader Jackson Training
SoftLeader Jackson Training
Jini Lee
Software project-part1-realworld
Software project-part1-realworld
Jini Lee
More from Jini Lee
(9)
Dev ops 顛覆新時代創新論壇
Dev ops 顛覆新時代創新論壇
Quartz
Quartz
Javaee7 jsr356-websocket
Javaee7 jsr356-websocket
Java8 javatime-api
Java8 javatime-api
Maji BP
Maji BP
Tencent case study-2015
Tencent case study-2015
投資組合規劃 Group8
投資組合規劃 Group8
SoftLeader Jackson Training
SoftLeader Jackson Training
Software project-part1-realworld
Software project-part1-realworld
Recently uploaded
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
jimielynbastida
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Fwdays
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Florian Wilhelm
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Alan Dix
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
BookNet Canada
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Wonjun Hwang
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
null - The Open Security Community
Key Features Of Token Development (1).pptx
Key Features Of Token Development (1).pptx
LBM Solutions
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Andrey Dotsenko
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April Automation LPDG
MarianaLemus7
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
carlostorres15106
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
ngoud9212
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions
The transition to renewables in India.pdf
The transition to renewables in India.pdf
Competition Advisory Services (India) LLP
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Scott Keck-Warren
Recently uploaded
(20)
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Key Features Of Token Development (1).pptx
Key Features Of Token Development (1).pptx
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April Automation LPDG
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
The transition to renewables in India.pdf
The transition to renewables in India.pdf
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Javatwo2012 java frameworkcomparison
1.
SoftLeader Tech. Corp. 李日貴
jini 王文農 steven
2.
Java 熱門 Framework
運用與比較
3.
About us.. • Demo
codes http://code.google.com/p/javatwo2012-java-framework-comparison/ • My facebook page https://www.facebook.com/EnterpriseJava • Javaworld@Tw ( javaworld.com.tw ) jini atpqq
4.
JavaEE Multi-Tiers architecture HttpServletRequest
Web Business DAO DB Tier Tier Tier HttpServletResponse
5.
Lots of frameworks
6.
Java Persistence
( DAO )
7.
JPA 2
8.
• 簡化 JDBC •
Native SQL • 設定容易 • XML or Annotation
9.
10.
Customer.java public class Customer
{ private Long id; private String name; private Integer age; // getters and setters }
11.
Customer-mapper.xml <mapper namespace=“javatwo2012.dao.mybatis.Customer”> <select id=“getCustomerById” parameterType=“Long”
resultType=“customer”> <!-- select SQL with #id --> </select> </mapper>
12.
mybatis-config.xml <configuration> <settings> …
</settings> <mappers> <mapper resource=“javatwo2012/dao/mybatis/Customer- mapper.xml”/> </mappers> </configuration>
13.
CustomerDao.java SqlSession session = sqlSessionFactory.openSession(); try
{ Customer customer = session.selectOne(“javatwo2012.dao.mybatis.Cust omer.getCustomerById”, new Long(101)); } finally { session.close(); }
14.
• 完整 ORM •
易於更換資料庫 • 多種查詢機制 • 支援多種 Cache • 多元的資料 Initialize
15.
Customer.java @Entity @Table(name=“CUSTOMER”) public class Customer
{ @Id @GeneratedValue(strategy=GenerationType.Identity) @Column(name=“ID”) private Long id; // getters and setters }
16.
hibernate-cfg.xml <hibernate-configuration> <session-factory>
<property name=“dialect”>DB_Dialect</property> <mapping class=“javatwo2012.dao.hibernate.Customer”/> </seesion-factory> </hibernate-configuration>
17.
CustomerDao.java public Customer findById(Long
id) { SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession(); Criteria crit = session.createCriteria(Customer.class); crit.add(Restrictions.idEq(id)); return (Customer) crit.uniqueResult(); }
18.
• JavaEE 標準
• 吸收了各家的優點 JPA 2 • 多種查詢機制 • 支援多種 Cache • 多元的資料 Initialize • Transaction Control
19.
Customer.java
@Entity @Table(name=“CUSTOMER”) public class Customer { JPA 2 @Id @GeneratedValue(strategy=GenerationType.Identity) @Column(name=“ID”) private Long id; // getters and setters }
20.
persistence.xml
<persistence> <persistence-unit name=“javatwo2012demo” transaction- type=“RESOURCE_LOCAL” > JPA 2 <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties>..</properties> </persistence-unit> </persistence>
21.
CustomerDao.java
public Customer findById(Long id) { EntityManagerFactory emFactory = Persistence.createEntityManagerFactory(“javatwo2012demo”); JPA 2 EntityManager manager = emFactory.createEntityManager(); return (Customer) manager.find(Customer.class, id); }
22.
項目
JPA 2 學習容易度 容易 複雜 複雜 查詢 API 少 多 多 SQL優化容易度 較簡單 複雜 複雜 資料庫方言依賴程度 高 低 低 效能 佳 佳 依實作而定 可移植性 普通 佳 依實作而定 社群支援 多 多 多
23.
Java Web (
MVC )
24.
• Annotation Driven •
AJAX inside • UnitTest • REST Integration • Multi-Languages • HTML5 + CSS3
25.
• Action-Based
• Component-Based JSF 2
26.
web.xml <filter-class> org.apache.struts2.dispatcher.ng.StrutsPrepareAndExecu teFilter </filter-class>
27.
struts.xml <struts> <package name=“javatwo2012”
extends=“struts-default”> <action name=“hello” class=“…HelloAction”> <result>/hello.jsp</result> <result name=“input”>/hello.jsp</result> </action> </package> </struts>
28.
HelloAction.java public class HelloAction
extends ActionSupport { private String message; public String getMessage() { return this.message; } public String execute() { return SUCCESS; } }
29.
hello.jsp <%@ taglib prefix=“s”
uri=“/sturts-tags”%> <s:property value=“message”/>
30.
AuthAction.java public class AuthAction
extends ActionSupport { public String validate() { if( … ) { addFieldError(“account”, “Account can’t be empty”); } } public String execute() { …. } }
31.
32.
• 優點 – 很多人用,
工作機會多 – 豐富的 Taglibs – 很多擴充的 plugins • 缺點 – struts.xml – 需要用 result 對應 – Source-Codes 混亂
33.
web.xml <filter-class> net.sourceforge.stripes.controller.StripesFilter </filter-class> <servlet-class> net.sourceforge.stripes.controller.DispatcherServlet </servlet-class>
34.
HelloActionBean.java public class HelloActionBean
implements ActionBean { private ActionBeanContext context; pirvate String message; @DefaultHandler public Resolution init() { message = “Hello Stripes !” return new ForwardResolution(“/hello.jsp”); } }
35.
hello.jsp ${actionBean.message}
36.
AuthActionBean.java @Validate(required=true) private String account; @Validate(required=true,
minlength=4, maxlength=6) private String password;
37.
login.jsp <%@taglib prefix=“stripes” uri=“http://stripes.sourceforge.net/stripes.tld” %> <stripes:errors/> <stripes:form
action=“/Auth.action” focus=“account”> <stripes:text id=“account” name=“account”/> <stripes:password id=“password” name=“password”/> <stripes:submit name=“login” value=“LOGIN”/> </stripes:form>
38.
39.
• 優點 –
利用 ActionContext 處理 HttpServletRequest – 使用 Resolution 作為 forward / redirect 物件 – 在 JSPs 中直接使用 ${actionBean.obj} • 缺點 – 很少人使用 – 開發週期長 – V1.5.6(2011-03-14), v1.5.7(2012-05-18)
40.
web.xml <servlet> <servlet-name>spring</servlet-name> <servlet-class>
org.springframework.web.servlet.DispatcherServlet </servlet-class> </sevlet> /WEB-INF/spring-servlet.xml
41.
spring-servlet.xml <beans …> <context:component-scan
base-package=“javatwo2012.mvc”/> <bean class=“org.springframework.web.servlet.view.InternalResourceViewResolver ”> <property name=“prefix” value=“/WEB-INF/jsp/”/> <property name=“suffix” value=“.jsp”/> </bean> </beans>
42.
HelloController.java @Controller public class HelloController
{ @RequestMapping(“/hello”) public String hello(ModelMap model) { model.addAttribute(“message”, “Hello SpringMVC !”); return “hello”; } }
43.
LoginForm.java public class LoginForm
{ @NotEmpty private String account; @NotEmpty @Size(min=4, max=6) private String password; }
44.
AuthController.java @Controller public class AuthController
{ @RequestMapping(“/auth/doLogin”) public String hello(@Valid LoginForm loginForm, BindingResult result) { if( result.hasErrors() ) return “login”; //.. } }
45.
login.jsp <%@ taglib prefix=“form” uri=“http://www.springframework.org/tags/form”%> <form:form
action=“/auth/doLogin” commandName=“loginForm”> <form:input path=“account”/><form:errors path=“account”/> <form:password path=“password”/><form:errors path=“password”/> <input type=“submit” value=“LOGIN”/> </form:form>
46.
47.
• 優點 –
彈性且清晰的框架 – View 端可整合多種解決方案 – 強大的 RESTful 支援 – JSR 303 Bean Validation • 缺點 – 過於彈性, 規範不易 – 沒有內建 AJAX
48.
web.xml <context-param> <param-name>tapestry.app-package</param-name> <param-value>javatwo2012.mvc.tapestry.web</param-value> </context-param> <filter-name>app</fitler-name> <filter-class>org.apache.tapestry5.TapestryFilter</filter-class>
49.
javatwo2012.mvc.tapestry.web • components
– Layout.java • pages – Hello.java – Hello.tml • services – AppModule.java
50.
Login.java public class Login
{ @Property private String account; @Property private String password; public Class<?> onSuccess() { return Welcome.class; } }
51.
Login.tml <html xmlns:t=“…”> <t:form
t:id=“loginForm”> <t:textField t:id=“account” value=“account” validate=“required”/> <t:passwordField t:id=“password” value=“password” validate=“required, minLength=4, maxLength=6”/> <t:submit value=“LOGIN”/> </html>
52.
53.
• 優點 –
物件開發容易 – 執行效能卓越 – 異常報告完整 • 缺點 – 學習曲線高 – 使用者較少, 工作數量也不多
54.
web.xml <filter-class> org.apache.wicket.protocol.http.WicketFilter </filter-class> <init-param> <param-name>applicationClassName</param-name>
<param-value>javatwo2012.mvc.wicket.HelloApp</param-value> </init-param>
55.
HelloApp.java public class HelloApp
extends WebApplication { public Class<? extends Page> getHomePage() { return HelloPage.class; } }
56.
HelloPage.java public class HelloPage
extends WebPage { public HelloPage() { add( new Label(“message”, “Hello Wicket !!”); } } HelloPage.html <span wicket:id=“message”> Message on here </span>
57.
• 優點 –
Swing-based UI 動態開發方式 – 元件可重複使用性高 – 熱血的社群 • 缺點 – 學習曲線高 – Server-side 所需硬體較高 ( cpu/ram) – 效能調校需要長足經驗 – 使用者較少, 工作數量也不多
58.
web.xml
<servlet-class> Javax.faces.webapp.FacesServlet </servlet-class> JSF 2
59.
HelloBean
@ManagedBean @SessionScoped public class HelloBean { JSF 2 private String message = “Hello JSF 2.0 !”; private String getMessage() { return message; } }
60.
hello.xhtml
<html xmlns:f=“http://java.sun.com/jsf/core” xmlns:h=“http://java.sun.com/jsf/html”> <h:head><title>JSF 2.0 Hello</title></h:head> JSF 2 <h:body> #{helloBean.message} </h:body> </html>
61.
AuthBean
public class AuthBean { public String checkLogin() { if(true) { JSF 2 forward=“login”; return “Login Success”; } else { return “Login Failed”; } } public String doLogin() { return forward; } }
62.
login.xhtml
<form id=“loginForm”> <h:inputText id=“account” value=“#{authBean.account}” required=“true”/> <h:message for=“account” style=“color:red”/> JSF 2 <h:inputSecret id=“password” value=“#{authBean.password}” required=“true”> <f:validateLength minimum=“4” maximum=“6”/> </h:inputSecret> <h:commandButton id=“loginBtn” value=“LOGIN” actionListener=“#{authBean.checkLogin}” action=“#{authBean.doLogin}”/> </form>
63.
JSF 2
64.
• 優點
– JavaEE 標準, 官方支援 – 具有非常多實作專案 – 進入門檻低 – 有視覺化設計的 IDE 介面 JSF 2 • 缺點 – 大多元件需要使用 SessionScope 浪 費 Server-side 資源 – 大量與繁瑣的 JSPs (xhtml) 開發
65.
hello.gwt.xml <module> <inherits
name=“com.google.gwt.user.User” /> <source path=“client”/> <entry-point class=“javatwo2012.mvc.gwt.client.Hello” /> </module>
66.
client/HelloService.java @RemoteServiceRelativePath(“hello”) public interface HelloService
extends RemoteService { public String getMessage(); } client/HelloServiceAsync.java public interface HelloServiceAnsyc { void getMessage(AsyncCallback<String> callback); }
67.
client/Hello.java public class Hello
implements EntryPoint { private final HelloServiceAsync helloService = GWT.create(HelloService.class); private final Label message = new Label(); public void onModuleLoad() { RootPanel.get().add(message); helloService.getMessage(new AsyncCallback<String>() { public void onSuccess(String result) { .. } public void onFailure(Throwable caught) { … } }); }
68.
server/HelloServiceImpl public class HelloServiceImpl
extends RemoteServiceServlet implements HelloService { public String getMessage() { return “Hello GWT !”; } }
69.
web.xml <servlet-class> Javatwo2012.mvc.gwt.server.HelloServiceImpl </servlet-class>
70.
hello.jsp <script type=“text/javascript” language=“javascript” src=“…/nocache.js”></script>
71.
hello.gwt.xml <module> <inherits
name=“com.google.gwt.user.User” /> <source path=“client”/> <entry-point class=“javatwo2012.mvc.gwt.client.Hello” /> </module>
72.
73.
• 優點 –
Rich-client – 有 GWT Designer 支援 – UI 編寫容易, 無須理解 Javascript ? – 有許多延伸實作的專案 • 缺點 – 學習曲線高 – 開發效率慢 – 都是在 Java 上開發
74.
Conclusion
Download now