SlideShare una empresa de Scribd logo
1 de 45
Developing Java Web Applications Dr. Harry Chen CMSC 491S/691S February 11, 2008
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
A canonical Web architecture Do you see any technical issues in this architecture? Source: http://www.ibm.com/developerworks/ibm/library/it-booch_web/
Stateless communication ,[object Object],[object Object]
Thin client vs. Thick (fat) client ,[object Object],[object Object],[object Object],Thin clients live here. Thick clients live here.
How do we create View? ,[object Object],[object Object],[object Object],Raw data View (HTML, PDF, etc) How will be the Views be generated?
Overhead in access data ,[object Object],[object Object],SQL DB HTML Do I have to call “SELECT”, “INSERT”, “UPDATE” all the time?
Framework ,[object Object],Option 2: Use framework Your Goal Option1: Build everything from scratch…
Framework: It’s a juggle out there. ,[object Object],JavaScript Backbase   Clean AJAX   Dojo Toolkit   Echo   Ext   JQuery   Microsoft AJAX Library   Mochikit   MooTools   OpenLink  AJAX Toolkit   Prototype JavaScript Framework   qooxdoo   Rialto Toolkit   Rico   Script.aculo.us   SmartClient   Spry framework   Yahoo! UI Library   ASP.NET MonoRail   DotNetNuke   CSLA   ASP.NET MVC Framework   Java Apache Cocoon   Apache Struts   AppFuse   Aranea  framework   Click   [ fleXive ]   Google Web Toolkit   Grails   Hamlets   ICEfaces   IT Mill Toolkit   ItsNat   JavaServer  Faces   Java JBoss  Seam   Makumba   OpenLaszlo   OpenXava   Oracle ADF   Reasonable Server Faces   RIFE   Shale Framework (software)   SmartClient   Spring Framework   Stripes (framework)   Tapestry   ThinWire   WebObjects   WebWork   Wicket framework   ZK Framework   ztemplates   Perl Catalyst   Interchange   Maypole   Mason   PHP Akelos  PHP Framework   Antares  Framework   CakePHP   Canvas Framework   CodeIgniter   DIY Framework   Drupal   epesi   FUSE   Horde   Joomla !   KohanaPHP   MODx   PHP For Applications   PHPOpenbiz   PostNuke   PRADO   Qcodo   QPHP Framework   Seagull PHP Framework   Simplicity PHP framework   Symfony ColdFusion ColdBox   ColdFusion on Wheels   ColdSpring   Fusebox   Mach-II   Model-Glue   onTap
Java Servlet technology
Java Servlet technology ,[object Object],Source: http://www.informit.com/articles/article.aspx?p=26920
HelloWorld Servlet Set HTTP Header: Content-Type (HTML) Creates the HTML page content Implementation that handles HTTP GET request Outputs the HTML into the HTTP Response Do you see any technical issues with this implementation? Source: http://www.informit.com/articles/article.aspx?p=26920
JSP (Java Servlet Pages) ,[object Object],[object Object],[object Object],[object Object],[object Object]
HelloWorld JSP Source: http://mainline.brynmawr.edu/~dkumar/JSP/ Use Java as if it’s a scripting language
Open issues in Java Servlet technology ,[object Object],[object Object],[object Object],[object Object],[object Object]
MVC: Model-View-Control ,[object Object],[object Object],http://java.sun.com/blueprints/patterns/MVC-detailed.html
Example: J2EE webapp ,[object Object]
Example: J2EE webapp (cont.) ,[object Object],All DB access and update operations are implemented here. All business logic and applications states are stored here. HTML, PDF and whatever goes here. They read and parse data object from the Model
Problems with MVC ,[object Object],[object Object]
WebWork
WebWork ,[object Object],[object Object],http://www.opensymphony.com/webwork/
WebWork terminology ,[object Object],[object Object],[object Object],[object Object]
WebWork workflow Read:  http://www.javaworld.com/javaworld/jw-03-2004/jw-0329-webwork.html
WebWork HelloWorld ,[object Object],[object Object],[object Object],[object Object],[object Object]
Action: HelloWorld.java Extends a standard Action superclass. Implement the business logic How to access the Bean (the message)
View: helloworld.jsp Use JSP Tag lib to access our Bean (the message) If you don’t like to use JSP, you have other options:  Freemarker  and Velocity
WebWork Configuration: HelloWorld ,[object Object],Define our Action and name it “helloworld” If the action returns “ success ”, then apply the “ hello.jsp ” template
WebWork: HelloWorld Output Read: http://www.javaworld.com/javaworld/jw-10-2005/jw-1010-webwork.html
Spring IoC
Dynamic object instantiation ,[object Object],[object Object],[object Object],[object Object]
Inversion of Control (IoC) ,[object Object],[object Object],Problem : The use of “MovieFinderImpl” is hardwired into “MovieLister”. Change this logic will require code rewrite and re-compile “MovieFinderImpl” Read: http://martinfowler.com/articles/injection.html
IoC Solution ,[object Object],Solution : If you want to use a different “MovieFinder”, just change how “Assembler” calls <creates>. <creates>
Spring IoC ,[object Object],Spring IoC  implements a flexible “Assembler”. Developers can tell this “Assembler” how to perform “<create>” via XML configuration. http://static.springframework.org/spring/docs/2.0.x/reference/beans.html
Spring IoC: HelloWorld in gnizr ,[object Object],http://code.google.com/p/gnizr/wiki/HelloWorldDemo
Spring IoC: a more complex example (1) The Class object “folderTagListener” is dynamically associated with “bookmarkManager” via a configuration file, not hardwired in the source of “bookmarkManager”. (2) Developers also fine tune the number of WorkerThread to be instantiated by “bookmarkManager” in the same configuration file. (1) (2)
Apache Maven
Jave project management ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problems I have faced ,[object Object],[object Object],[object Object],[object Object]
Apache Maven ,[object Object],[object Object],[object Object],[object Object],[object Object],http://maven.apache.org/
POM file ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Maven: Create a project
Maven: POM file
Maven: build package
Try Maven in 5 minutes http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
Summary ,[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente (20)

Java swing
Java swingJava swing
Java swing
 
Java rmi
Java rmiJava rmi
Java rmi
 
Jsp ppt
Jsp pptJsp ppt
Jsp ppt
 
Applets
AppletsApplets
Applets
 
Basic Java Programming
Basic Java ProgrammingBasic Java Programming
Basic Java Programming
 
Chapter 3 servlet & jsp
Chapter 3 servlet & jspChapter 3 servlet & jsp
Chapter 3 servlet & jsp
 
Files in java
Files in javaFiles in java
Files in java
 
Presentation on Core java
Presentation on Core javaPresentation on Core java
Presentation on Core java
 
Applets in java
Applets in javaApplets in java
Applets in java
 
Basics of JAVA programming
Basics of JAVA programmingBasics of JAVA programming
Basics of JAVA programming
 
Enterprise JavaBeans(EJB)
Enterprise JavaBeans(EJB)Enterprise JavaBeans(EJB)
Enterprise JavaBeans(EJB)
 
Introduction to basics of java
Introduction to basics of javaIntroduction to basics of java
Introduction to basics of java
 
Java Exception handling
Java Exception handlingJava Exception handling
Java Exception handling
 
Jdbc Ppt
Jdbc PptJdbc Ppt
Jdbc Ppt
 
Java And Multithreading
Java And MultithreadingJava And Multithreading
Java And Multithreading
 
Jsp presentation
Jsp presentationJsp presentation
Jsp presentation
 
Introduction to EJB
Introduction to EJBIntroduction to EJB
Introduction to EJB
 
Swing
SwingSwing
Swing
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1
 
Socket programming in Java (PPTX)
Socket programming in Java (PPTX)Socket programming in Java (PPTX)
Socket programming in Java (PPTX)
 

Destacado

Web Application Development Fundamentals
Web Application Development FundamentalsWeb Application Development Fundamentals
Web Application Development FundamentalsMohammed Makhlouf
 
Architecture of a Modern Web App
Architecture of a Modern Web AppArchitecture of a Modern Web App
Architecture of a Modern Web Appscothis
 
An Introduction To Java Web Technology
An Introduction To Java Web TechnologyAn Introduction To Java Web Technology
An Introduction To Java Web Technologyvikram singh
 
java Servlet technology
java Servlet technologyjava Servlet technology
java Servlet technologyTanmoy Barman
 
Client server architecture
Client server architectureClient server architecture
Client server architectureBhargav Amin
 
Java Servlets
Java ServletsJava Servlets
Java ServletsNitin Pai
 
Fundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-DevelopersFundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-DevelopersLemi Orhan Ergin
 
Leverage Hibernate and Spring Features Together
Leverage Hibernate and Spring Features TogetherLeverage Hibernate and Spring Features Together
Leverage Hibernate and Spring Features TogetherEdureka!
 
Java web programming
Java web programmingJava web programming
Java web programmingChing Yi Chan
 
Web Application Architecture
Web Application ArchitectureWeb Application Architecture
Web Application ArchitecturePhilip
 
Web application architecture
Web application architectureWeb application architecture
Web application architectureJoshua Eckblad
 
Java Training Ahmedabad , how to Insert Data in Servlet, iOS Classes Ahmedabad
Java Training Ahmedabad , how to Insert Data in Servlet, iOS Classes AhmedabadJava Training Ahmedabad , how to Insert Data in Servlet, iOS Classes Ahmedabad
Java Training Ahmedabad , how to Insert Data in Servlet, iOS Classes AhmedabadNicheTech Com. Solutions Pvt. Ltd.
 
Yupp PHP Framework
Yupp PHP FrameworkYupp PHP Framework
Yupp PHP FrameworkPablo Pazos
 
Core web application development
Core web application developmentCore web application development
Core web application developmentBahaa Farouk
 
Chap 4 hardware & software
Chap 4 hardware & softwareChap 4 hardware & software
Chap 4 hardware & softwareUMaine
 
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)7bits
 

Destacado (20)

Web Application Development Fundamentals
Web Application Development FundamentalsWeb Application Development Fundamentals
Web Application Development Fundamentals
 
Architecture of a Modern Web App
Architecture of a Modern Web AppArchitecture of a Modern Web App
Architecture of a Modern Web App
 
An Introduction To Java Web Technology
An Introduction To Java Web TechnologyAn Introduction To Java Web Technology
An Introduction To Java Web Technology
 
java Servlet technology
java Servlet technologyjava Servlet technology
java Servlet technology
 
Client server architecture
Client server architectureClient server architecture
Client server architecture
 
Java Servlets
Java ServletsJava Servlets
Java Servlets
 
Basic Web Concepts
Basic Web ConceptsBasic Web Concepts
Basic Web Concepts
 
Web application architecture
Web application architectureWeb application architecture
Web application architecture
 
Fundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-DevelopersFundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-Developers
 
Leverage Hibernate and Spring Features Together
Leverage Hibernate and Spring Features TogetherLeverage Hibernate and Spring Features Together
Leverage Hibernate and Spring Features Together
 
Java web programming
Java web programmingJava web programming
Java web programming
 
Web Application Architecture
Web Application ArchitectureWeb Application Architecture
Web Application Architecture
 
Web application architecture
Web application architectureWeb application architecture
Web application architecture
 
Java Training Ahmedabad , how to Insert Data in Servlet, iOS Classes Ahmedabad
Java Training Ahmedabad , how to Insert Data in Servlet, iOS Classes AhmedabadJava Training Ahmedabad , how to Insert Data in Servlet, iOS Classes Ahmedabad
Java Training Ahmedabad , how to Insert Data in Servlet, iOS Classes Ahmedabad
 
Yupp PHP Framework
Yupp PHP FrameworkYupp PHP Framework
Yupp PHP Framework
 
Core web application development
Core web application developmentCore web application development
Core web application development
 
Chap 4 hardware & software
Chap 4 hardware & softwareChap 4 hardware & software
Chap 4 hardware & software
 
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
 
Angular Conceptos Practicos 1
Angular Conceptos Practicos 1Angular Conceptos Practicos 1
Angular Conceptos Practicos 1
 
Introducción a Angular JS
Introducción a Angular JSIntroducción a Angular JS
Introducción a Angular JS
 

Similar a Developing Java Web Applications

Introduction To Code Igniter
Introduction To Code IgniterIntroduction To Code Igniter
Introduction To Code IgniterAmzad Hossain
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | IntroductionJohnTaieb
 
Project Presentation on Advance Java
Project Presentation on Advance JavaProject Presentation on Advance Java
Project Presentation on Advance JavaVikas Goyal
 
Gnizr Architecture (for developers)
Gnizr Architecture (for developers)Gnizr Architecture (for developers)
Gnizr Architecture (for developers)hchen1
 
Using HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in JavaUsing HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in JavaSandeep Tol
 
Programming Server side with Sevlet
 Programming Server side with Sevlet  Programming Server side with Sevlet
Programming Server side with Sevlet backdoor
 
Apache Cordova In Action
Apache Cordova In ActionApache Cordova In Action
Apache Cordova In ActionHazem Saleh
 
Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01Prashanth Shivakumar
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorialsTIB Academy
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN StackRob Davarnia
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework tola99
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introductionvstorm83
 
Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)slire
 

Similar a Developing Java Web Applications (20)

AJppt.pptx
AJppt.pptxAJppt.pptx
AJppt.pptx
 
Introduction To Code Igniter
Introduction To Code IgniterIntroduction To Code Igniter
Introduction To Code Igniter
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
Jdbc
JdbcJdbc
Jdbc
 
Tomcat + other things
Tomcat + other thingsTomcat + other things
Tomcat + other things
 
Project Presentation on Advance Java
Project Presentation on Advance JavaProject Presentation on Advance Java
Project Presentation on Advance Java
 
Gnizr Architecture (for developers)
Gnizr Architecture (for developers)Gnizr Architecture (for developers)
Gnizr Architecture (for developers)
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Getting Started with J2EE, A Roadmap
Getting Started with J2EE, A RoadmapGetting Started with J2EE, A Roadmap
Getting Started with J2EE, A Roadmap
 
Using HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in JavaUsing HttpWatch Plug-in with Selenium Automation in Java
Using HttpWatch Plug-in with Selenium Automation in Java
 
Programming Server side with Sevlet
 Programming Server side with Sevlet  Programming Server side with Sevlet
Programming Server side with Sevlet
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Apache Cordova In Action
Apache Cordova In ActionApache Cordova In Action
Apache Cordova In Action
 
Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorials
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN Stack
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 
Month 2 report
Month 2 reportMonth 2 report
Month 2 report
 
Advance Java Topics (J2EE)
Advance Java Topics (J2EE)Advance Java Topics (J2EE)
Advance Java Topics (J2EE)
 

Más de hchen1

Semantic Web 2.0
Semantic Web 2.0Semantic Web 2.0
Semantic Web 2.0hchen1
 
Semantic HTML
Semantic HTMLSemantic HTML
Semantic HTMLhchen1
 
Geonames
GeonamesGeonames
Geonameshchen1
 
Google Maps API
Google Maps APIGoogle Maps API
Google Maps APIhchen1
 
Geospatial Web
Geospatial WebGeospatial Web
Geospatial Webhchen1
 
OpenSearch
OpenSearchOpenSearch
OpenSearchhchen1
 
RSS and Atom in the Social Web
RSS and Atom in the Social WebRSS and Atom in the Social Web
RSS and Atom in the Social Webhchen1
 
An Introduction to Ajax Programming
An Introduction to Ajax ProgrammingAn Introduction to Ajax Programming
An Introduction to Ajax Programminghchen1
 
Machine Tags
Machine TagsMachine Tags
Machine Tagshchen1
 
Web 2.0 Mashups
Web 2.0 MashupsWeb 2.0 Mashups
Web 2.0 Mashupshchen1
 
Folksonomy and Tagging in the Social Web
Folksonomy and Tagging in the Social WebFolksonomy and Tagging in the Social Web
Folksonomy and Tagging in the Social Webhchen1
 
Inside Gnizr
Inside GnizrInside Gnizr
Inside Gnizrhchen1
 
Social Web Technologies
Social Web TechnologiesSocial Web Technologies
Social Web Technologieshchen1
 

Más de hchen1 (13)

Semantic Web 2.0
Semantic Web 2.0Semantic Web 2.0
Semantic Web 2.0
 
Semantic HTML
Semantic HTMLSemantic HTML
Semantic HTML
 
Geonames
GeonamesGeonames
Geonames
 
Google Maps API
Google Maps APIGoogle Maps API
Google Maps API
 
Geospatial Web
Geospatial WebGeospatial Web
Geospatial Web
 
OpenSearch
OpenSearchOpenSearch
OpenSearch
 
RSS and Atom in the Social Web
RSS and Atom in the Social WebRSS and Atom in the Social Web
RSS and Atom in the Social Web
 
An Introduction to Ajax Programming
An Introduction to Ajax ProgrammingAn Introduction to Ajax Programming
An Introduction to Ajax Programming
 
Machine Tags
Machine TagsMachine Tags
Machine Tags
 
Web 2.0 Mashups
Web 2.0 MashupsWeb 2.0 Mashups
Web 2.0 Mashups
 
Folksonomy and Tagging in the Social Web
Folksonomy and Tagging in the Social WebFolksonomy and Tagging in the Social Web
Folksonomy and Tagging in the Social Web
 
Inside Gnizr
Inside GnizrInside Gnizr
Inside Gnizr
 
Social Web Technologies
Social Web TechnologiesSocial Web Technologies
Social Web Technologies
 

Último

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Último (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Developing Java Web Applications

  • 1. Developing Java Web Applications Dr. Harry Chen CMSC 491S/691S February 11, 2008
  • 2.
  • 3. A canonical Web architecture Do you see any technical issues in this architecture? Source: http://www.ibm.com/developerworks/ibm/library/it-booch_web/
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 11.
  • 12. HelloWorld Servlet Set HTTP Header: Content-Type (HTML) Creates the HTML page content Implementation that handles HTTP GET request Outputs the HTML into the HTTP Response Do you see any technical issues with this implementation? Source: http://www.informit.com/articles/article.aspx?p=26920
  • 13.
  • 14. HelloWorld JSP Source: http://mainline.brynmawr.edu/~dkumar/JSP/ Use Java as if it’s a scripting language
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 21.
  • 22.
  • 23. WebWork workflow Read: http://www.javaworld.com/javaworld/jw-03-2004/jw-0329-webwork.html
  • 24.
  • 25. Action: HelloWorld.java Extends a standard Action superclass. Implement the business logic How to access the Bean (the message)
  • 26. View: helloworld.jsp Use JSP Tag lib to access our Bean (the message) If you don’t like to use JSP, you have other options: Freemarker and Velocity
  • 27.
  • 28. WebWork: HelloWorld Output Read: http://www.javaworld.com/javaworld/jw-10-2005/jw-1010-webwork.html
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35. Spring IoC: a more complex example (1) The Class object “folderTagListener” is dynamically associated with “bookmarkManager” via a configuration file, not hardwired in the source of “bookmarkManager”. (2) Developers also fine tune the number of WorkerThread to be instantiated by “bookmarkManager” in the same configuration file. (1) (2)
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. Maven: Create a project
  • 44. Try Maven in 5 minutes http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
  • 45.