Java Web Applications: Course Timeline - Contents of Lectures

Lecture 1: Getting Started

  • Course Introduction
  • Course Schedule
  • Course Grading
  • Intro to Kiel University of Applied Sciences
  • Image Film Kiel University of Applied Sciences
  • Content Java Web Application
  • Retrospective Java

Lecture 2: Introduction to Java

  • History of Java
  • Programming Languages, Programming Language Paradigms
  • Object-Oriented Programming (OOP)
  • Software Life Cycle
  • Software Development: Waterfall Model, V-Model, Spiral Model
  • The first computer programmer, short computer history
  • Programming languages and compilers (high-level, low-level languages)
  • Compiler and Interpreter
  • Elements of Java: Programming language, VM, API
  • Java Environments
  • Java Implementations
  • JDK Programming Environment
  • Comparison Java vs. C#
  • Java File Structure
  • Java Basics, Language comparison, Properties of Java

Lecture 3: Introduction to Java

  • Java Definitions and Syntax
  • Syntax vs. Semantics
  • Java Operators
  • Fundamental (Primitive) Data Types in Java
  • Java Expressions
  • Java Program Structure - Control Flow
  • Object-Oriented Programming: Terminology: class, object, method
  • First Example: Hello World in Java
  • Programm Structure of "Hello World"
  • Java Comment
  • Nassi-Shneiderman Diagrams

Lecture 4: Introduction to Java

  • Programming Paradigms
  • Smalltalk
  • Process-oriented model, Object-oriented model
  • OOP mechanisms: encapsulation, inheritance, polymorphism
  • Member (instance) variables
  • Creating objects, "new" operator, instantiation
  • Objects and messages
  • Sequence, Conditional Statement, Loops
  • Iteration: Pre-condition test, Post-condition test
  • Counting for-loop
  • Example: Power of 2, overflow problem
  • Java Resources, JDK 1.5, 5, 6
  • Java 2 SDK, Tools and Utilities
  • Command Line Input (CLI), args.length
  • String input, numerical input values
  • String Concatenation, "+" operator
  • Programming Paradigms
  • Smalltalk
  • Process-oriented model, Object-oriented mode
  • OOP mechanisms: encapsulation, inheritance, polymorphism
  • Member (instance) variables
  • Creating objects, "new" operator, instantiation
  • Objects and messages

Lecture 5: Introduction to Java

  • Inheritance, subclassing, hierarchy
  • Information passing, parameter lists
  • Object-Oriented Design concepts: ADT - Abtract Data Type
  • Unified Modelling Language (UML), class diagram, generalization
  • Creating instances, objects
  • Methods, parameter passing
  • Constructor, constructor methods

Lecture 6: Introduction to Java

  • Information hiding, "this"
  • Method overloading, method signature, constructor overloading
  • Method overriding, dynamic method dispatch
  • Argument passing: call-by-value, call-by-reference
  • Java class diagrams
  • Modifiers and protection
  • Accessors: getter and setter methods
  • Type casting, coercion, implicit and explicit casting, widening casting

Lecture 7: Introduction to Java

  • Laboratory Exercises 1

Lecture 8: Introduction to Java

  • Type casting, coercion
  • Implicit and explicit casting, widening casting
  • Wrapper classes
  • Wrapper class methods
  • Accessing superclasses: "super"
  • Abstract methods
  • Abstract classes
  • Interfaces
  • multiple inheritance in Java, inheritance of interfaces
  • Special classes, Math class

Lecture 9: Introduction to Java, Arrays

  • Special classes, Math class
  • Arrays in Java, properties of arrays
  • Array element and index
  • Semidynamic arrays
  • Declaration, creation, initialisation of arrays, "new"
  • Primitive arrays, arrays of objects
  • Bound checking, "length" method
  • ArrayIndexOutOfBoundsException
  • Arrays and For-Loops
  • Common Programming Errors
  • Java Class Diagrams

Lecture 10: Sport

Lecture 11: Arrays, Exceptions

  • Random generator, Math.random()
  • Multidimensional Arrays
  • Initialising Arrays
  • Collection types, dynamic arrays
  • String class, String methods: length(), charAt(), substring()
  • Comparision of strings, "equals"
  • Command Line Input, String args[]
  • Exception Programming:
  • Errors and Exceptions, Exception Handling
  • Throwable Objects
  • Errors, Exceptions, Runtime Exceptions
  • Throw, Catch
  • Exception types, Exception classes
  • Call stack
  • Leaf classes, node classes
  • Checked / Unchecked exceptions

Lecture 12: Exceptions, Streams

  • try / catch statements
  • e: exception handler parameter, available methods
  • Writing exemptions, sample exceptions
  • Stack trace
  • Check or specify
  • Java Streams, stream concept
  • Standard IO, error output
  • package java.io, IO types
  • Reader, Writer, InputStream, OutputStream

Lecture 13: Streams, Applets

  • Abstract classes
  • FileWriter, "close"
  • Stream Exceptions, IOException
  • Plug-Together
  • Buffered File Output
  • Cascading Streams
  • DataInputStream, DataOutput
  • BufferedReader, BufferedWriter
  • Keyboard Input
  • Scanner
  • Random Access
  • Programming Applets:
  • Internet Programming, CGI, Applets
  • AWT, Swing

Lecture 14: Applets

  • Building and Viewing Applets
  • Programming Applets, Applet, JApplet
  • HelloWorld Applet
  • Graphics, Coordinate System
  • Applet Methods, init(), paint()
  • Graphics
  • Example: Curve Plotting
  • Parameter Passing HTML to Applet
  • Null Reference
  • Special classes: Color, Font
  • Graphical User Interface (GUI)
  • Special classes: SystemColor
  • Classes and interfaces in package AWT
  • AWT structure
  • Font styles: plain, bold, italics

Lecture 15: Applets

  • FontMetrics
  • FontMetrics Demo
  • Short introduction to the MVC-Architecture
  • Model, View, Controller
  • Comparison AWT (Abstract Windowing Toolkit) - Swing
  • Swing APIs, classes, packages
  • JApplet
  • JFC - Java Foundation Classes
  • Architecture of the Swing Class Library
  • Swing Components, concept of Java peers
  • Heavyweight, Lightweight components
  • MVC - Model-View-Controller Architecture
  • Java UI Delegate
  • PLAF - Pluggable Look and Feel
  • Example: JButton
  • Swing structure: RootPane

Lecture 16 to 18: Introduction to Java

  • Laboratory Exercises 2 to 4

Lecture 19: Java Swing, Java Servlets

  • Swing Components
  • Layout Managers
  • Short Introduction to Servlet Programming
  • Applet - Servlet
  • CGI, Servlet, Threads
  • CGI, Server Extension APIs, Servlet
  • CGI vs. Servlet
  • Servlet and JSP Engines
  • Three-Tier, Multitier Architecture
  • Three-Tier Servlet Model
  • Servlet Package / API
  • Servlet Interface
  • Client/Server Interaction

Lecture 20: Servlets

  • ServletRequest, ServletResponse
  • HTTP, Header Information
  • HTTP Request Header, Response Header
  • HTTP Methods: Get, Post, Head
  • HTTP Response Codes
  • Servlet Packages: javax.servlet, javax.servlet.http
  • Servlet Interface: javax.servlet.Servlet
  • Generic Servlet, HTTP Servlet
  • doGet(), doPost()
  • Request / Response Objects, Methods
  • HttpServletRequest, HttpServletResponse
  • Servlet Life-Cycle, init(), service (), destroy ()
  • PrintWriter, getWriter()
  • ServletConfig, web.xml
  • ServletContext, Methods of ServletContext
  • Methods of ServletRequest
  • javax.servlet package, javax.http.servlet package
  • HTTP Servlet
  • "Hello World" Servlet

Lecture 21: Servlets

  • HTTP Request Header (Servlet)
  • Form Handling with GET/POST
  • URI, URL, URN
  • Unicode, UCS, and UTF-8
  • HTTP Support Classes
  • Server-Side Include (SSI) with Servlets
  • Servlet Chaining, Servlet Filters
  • Session, Session Tracking, Cookies
  • Stateless protocol
  • Session tracking: Cookies, URL-rewriting, Hidden form fields

Lecture 22: Introduction to Java

  • Laboratory Exercises 5

Lecture 23: Servlets

  • Cookie Constructor, RFC2109
  • Creating cookies
  • getParameter(), setMaxAge()
  • Cookie Methods
  • Session Cookies, Persistent Cookies
  • Problems with Cookies
  • Set Cookies, Show Cookies
  • Session Tracking API
  • Obtaining a Session

Lecture 24: Introduction to Java

  • Laboratory Exercises 6

Lecture 25: Servlets, JSP

  • Storing and Getting data from a session
  • Session ID
  • HttpSession, Life Cycle, Methods
  • Java Server Pages (JSP)
  • JSP Code Example, Code Errors
  • JSP Engine, JSP Translation and Processing
  • JSP vs. ASP
  • JSP vs. Servlets
  • JSP Architecture
  • JSPPage, HttpJspPage
  • Methods: jspInit(), jspDestroy(), jspService

Lecture 26: Introduction to Java

  • Laboratory Exercises 7

Lecture 27: JSP

  • JSP Elements: Directive, Action, Scripting
  • Scripting: Declarative, Scriptlets, Expressions
  • JSP Comment
  • Scripting: Implicit JSP Objects
  • JSP Session, Example
  • JSP XML-Syntax
  • Starting Applications: MS Excel
  • JSP Taglibs
  • Tag Handler: Tag, BodyTag
  • TLD - Tag Library Descriptor
  • Tag action methods, Tag interaction
  • HelloWorld Example
  • JSTL - JavaServer Pages Standard Tag Library
  • Comparison: Servlet - Java Server Pages
  • Combining Servlets with JSP

Lecture 28-30: Introduction to Java

  • Laboratory Exercises 8 - 10

Lecture 31: Introduction to Java

  • Review and Exam Preparation

Lecture 32: Introduction to Java

  • Final Examination