Post on 22-Feb-2017
GWT A 'new' way to program dynamic web applications
- Usman- Pavan
- Rajakumar
Overview of AJAX development Problems with AJAX What is GWT ? Why GWT ? Sample application User Interface with GWT RPC Cons
Agenda
Classic web application model (synchronous)
Ajax web application model (asynchronous)
Server - sideClient – side
Javascript JAVA
+ no page transition, no blocking- No IDE- Debugging is difficult- weakly typed
+ eclipse: debugging, easy development- good IDE’s- Debugging is easy- strongly typed
Asynchronous JavaScript and XML (AJAX)
AJAX Asynchronous JavaScript and XML.
Clientside javascript to asynchronously fetch the data
Using the DOM API dynamically modify the page
Based on javascript,html,xml,css.xhtml,DOM.
Web browser UI to be more interactive and to respond quickly to inputs
Drawbacks Multiple languages and framework across
stack Mixing the js,jsp,xml,java leads maintenance
problem Less modularization Less reusable code Breaks MVC principle. Complicated debugging and testing with
different browsers. Browsers back button and history maintains
problem OOPS
What is GWT ?A FrameWork for building highly perfomant, Ajax
enabled , Javascript front-end web applications .
Provides Java-to-javaScirpt Compiler . Allow to use the java development tools like
netbeans and eclipse. Shell to test and debug modules without compilation Simple asynchronous browser-to-server RPC
Why GWT ?
Rich user Interface Open source No need to learn Javascript language No need to learn DOM Api( use java Api) No plugIns required in client side Junit integration
Why GWT ? (Cont ... )
OOPS Asynchronous Calls To share load between client and server Keeping only insensitive data on client side Not for validation but for the better and rich user
interface.
GWT Application Architecture
Modes of Running Gwt application
Gwt Application can run in two modes .Host Mode
Hosted Mode is a 'simulated' mode Run entirely from Eclipse using the GWT Shell. * Consists of a customized Tomcat Web container. * Makes debugging easier . Web Mode Run as pure JavaScript and HTML,compiled from
your original Java source code with the GWT
Google Web Toolkit (GWT)@ deployment time@ development time
<html>[...]<script type="text/javascript">[...]xmlhttp.open("POST", url, true);xmlhttp.onreadystatechange = function(func) { if (xmlhttp.readyState == 4) { [...] }}xmlhttp.setRequestHeader('MessageType', 'CALL');xmlhttp.setRequestHeader('Content-Type', 'text/xml');</script><body>[...]</body></html>
JAV
A/e
clip
se
java
scrip
t
Hosted modeJVMIDE
Com
pile
to J
AVA
byte
code
Compile toJavascript
GWT: project structurePackage Purpose
it/sella/gwt/The project root package contains module XML files
it/sella/gwt/client/ Client-side source files and subpackages
it/sella/gwt/server/ Server-side code and subpackages
it/sella/gwt/public/ Static resources that can be served publicly
GWT Modules *.gwt.xml
Jsp,Html, ...
Entry point class (java class)
Css , Images ,other xmls …
External java script file
UI widget library
GWT-RPC
These are Asynchronous Calls.
A framework used to exchange java objects .
Based on the java servlet architecture .
GWT handle the serialization of java objects.
GWT-RPC services are not same as web services . .
RPC plumbing diagram
Corns of GWT Browser compatibility pretty good but issues
with some browsers. Although java to javascript convertion takes
place, not all features of java can be implemented .eg multi threading,Calender etc
Gwt generated javascript and html are very difficult to understand .
Layouts,panels and some widgets have bugs .
Corns of GWT ( Cont... ) The appearance of the application depends
on the browser. Take long time to load and heavily uses the
client resources.
Reference Documentation & Tutorial : http://code.google.com/webtoolkit/ http://code.google.com/webtoolkit/tutorials/1.6/
index.html Libraries http://gwt-ext.com/ http://extjs.com/products/gxt/ Showcase http://gwt.google.com/samples/Showcase/Sho
wcase.html http://www.gwt-ext.com/demo/#credits