O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Web Applications with Javascript or Java

Book Description

Today, web applications are the most important type of software applications. This textbook shows how to design and implement them, using a model-based engineering approach that covers general information management concepts and techniques and the two most relevant technology platforms: JavaScript and Java. The book provides an in-depth tutorial for theory-underpinned and example-based learning by doing it yourself, supported by quiz questions and practice projects. Volume 1 provides an introduction to web technologies and model-based web application engineering, discussing the information management concepts of constraint-based data validation, enumerations and special datatypes. Volume 2 discusses the advanced information management concepts of associations and inheritance in class hierarchies.

Web apps are designed using UML class diagrams and implemented with two technologies: JavaScript for front-end (and distributed NodeJS) apps, and Java (with JPA and JSF) for back-end apps. The six example apps discussed in the book can be run, and their source code downloaded, from the book’s website.

Gerd Wagner

is Professor of Internet Technology at Brandenburg University of Technology, Germany, and Adjunct Associate Professor at Old Dominion University, Norfolk, VA, USA. He works in the areas of web engineering and modeling and simulation.

Mircea Diaconescu

is a Software Architect and Technical Team Leader at Entri GmbH, Berlin. He enjoys to work with the newest web technologies and to build Web of Things projects. Java, JavaScript/NodeJS and C# are his favorite programming languages.

Table of Contents

  1. Cover
  2. Title Page
  3. Copyright
  4. Dedication
  5. Contents
  6. Foreword
    1. 1 Mastering App Development Requires More than Coding Skills
    2. 2 Why is JavaScript a Good Choice for Building Web Apps?
    3. 3 Why is Java a Good Choice for Building Web Apps?
    4. 4 Comparing Java with JavaScript
    5. 5 Good Programs Are: Effective, Robust, Efficient and Maintainable
    6. 6 Run the Apps and Get Their Code
  7. List of Figures
  8. List of Tables
  9. Part I Getting Started
    1. 1 A Quick Tour of the Foundations of Web Apps
      1. 1.1 The World Wide Web (WWW)
      2. 1.2 HTML and XML
      3. 1.3 Styling Web Documents and User Interfaces with CSS
      4. 1.4 JavaScript – “the assembly language of the Web”
      5. 1.5 Accessibility for Web Apps
      6. 1.6 Quiz Questions
    2. 2 More on JavaScript
      1. 2.1 JavaScript Basics
      2. 2.2 Storing Database Tables with JavaScript’s localStorage API
    3. 3 Building a Minimal Web App with Plain JS in Seven Steps
      1. 3.1 Step 1 – Set up the Folder Structure
      2. 3.2 Step 2 – Write the Model Code
      3. 3.3 Step 3 – Initialize the Application
      4. 3.4 Step 4 – Implement the Create Use Case
      5. 3.5 Step 5 – Implement the Retrieve/List All Use Case
      6. 3.6 Step 6 – Implement the Update Use Case
      7. 3.7 Step 7 – Implement the Delete Use Case
      8. 3.8 Run the App and Get the Code
      9. 3.9 Possible Variations and Extensions
      10. 3.10 Points of Attention
      11. 3.11 Practice Projects
    4. 4 Building a Minimal Web App with Java EE in Seven Steps
      1. 4.1 Java Basics
      2. 4.2 Step 1 – Set up the Folder Structure
      3. 4.3 Step 2 – Write the Model Code
      4. 4.4 Step 3 – Configure the App
      5. 4.5 Step 4 – Implement the Create Use Case
      6. 4.6 Step 5 – Implement the Retrieve/List All Use Case
      7. 4.7 Step 6 – Implement the Update Use Case
      8. 4.8 Step 7 – Implement the Delete Use Case
      9. 4.9 Style the User Interface with CSS
      10. 4.10 Run the App and Get the Code
      11. 4.11 Possible Variations and Extensions
      12. 4.12 Points of Attention
      13. 4.13 Practice Projects
      14. 4.14 Quiz Questions
    5. 5 Information Modeling
      1. 5.1 Classes with Properties and Methods
      2. 5.2 Connecting Classes with Associations
      3. 5.3 From a Conceptual Model via a Design Model to Class Models
      4. 5.4 Excursion: Formalizing Information Models with RDF and OWL
      5. 5.5 Summary
      6. 5.6 Exercises
    6. 6 Application Architecture
      1. 6.1 The Model-View-Controller (MVC) Architecture Metaphor
      2. 6.2 The Onion Architecture Metaphor
      3. 6.3 “Logical” versus “Physical” User Interface
      4. 6.4 MVC Web Applications
      5. 6.5 Deployment Architectures
  10. Part II Constraint Validation
    1. 7 Integrity Constraints and Data Validation
      1. 7.1 Introduction
      2. 7.2 Integrity Constraints
      3. 7.3 Responsive Validation
      4. 7.4 Constraint Validation in MVC Applications
      5. 7.5 Adding Constraints to a Design Model
      6. 7.6 Summary
      7. 7.7 Criteria for Evaluating the Validation Support of Frameworks
      8. 7.8 Quiz Questions
    2. 8 Implementing Constraint Validation in a Plain JS Web App
      1. 8.1 Introduction
      2. 8.2 New Issues
      3. 8.3 Make a JavaScript Class Model
      4. 8.4 Set up the Folder Structure Adding Some Library Files
      5. 8.5 Write the Model Code
      6. 8.6 Write the View Code
      7. 8.7 Run the App and Get the Code
      8. 8.8 Possible Variations and Extensions
      9. 8.9 Points of Attention
      10. 8.10 Practice Projects
      11. 8.11 Quiz Questions
    3. 9 Implementing Constraint Validation in a Java EE Web App
      1. 9.1 Java Annotations for Persistent Data Management and Constraint Validation
      2. 9.2 New Issues
      3. 9.3 Make an Entity Class Model
      4. 9.4 Write the Model Code
      5. 9.5 Write the View Code
      6. 9.6 Defining a Custom Validation Annotation
      7. 9.7 Run the App and Get the Code
      8. 9.8 Possible Variations and Extensions
      9. 9.9 Practice Projects
      10. 9.10 Quiz Questions
  11. Part III Enumerations
    1. 10 Enumerations and Enumeration Attributes
      1. 10.1 Enumerations
      2. 10.2 Enumeration Attributes
      3. 10.3 Enumerations in Computational Languages
      4. 10.4 Dealing with Enumeration Attributes in a Design Model
      5. 10.5 Quiz Questions
    2. 11 Implementing Enumeration Attributes in a Plain JS Web App
      1. 11.1 New Issues
      2. 11.2 Make a JavaScript Class Model
      3. 11.3 Add the Library File Enumeration.js
      4. 11.4 The Meta-Class Enumeration
      5. 11.5 Write the Model Code
      6. 11.6 Write the View Code
      7. 11.7 Run the App and Get the Code
      8. 11.8 Practice Projects
      9. 11.9 Quiz Questions
    3. 12 Implementing Enumeration Attributes in a Java EE Web App
      1. 12.1 New Issues
      2. 12.2 Make an Entity Class Model
      3. 12.3 Write the Model Code
      4. 12.4 Write the View Code
      5. 12.5 Displaying Value Sets for Multi-Valued Enumeration Attributes
      6. 12.6 Run the App and Get the Code
      7. 12.7 Practice Projects
      8. 12.8 Quiz Questions
  12. Part IV Special Datatypes and Derived Properties
    1. 13 Special Datatypes
      1. 13.1 Boolean Values
      2. 13.2 String Patterns
      3. 13.3 Special Numeric Data Types
      4. 13.4 Calendar Dates and Times
      5. 13.5 Quantities
      6. 13.6 Complex Data Types
    2. 14 Derived Properties
      1. 14.1 Virtual Derived Properties
      2. 14.2 Materialized Derived Properties
      3. 14.3 Dealing with Derived Properties in the User Interface
  13. Glossary
  14. Index