CS-4220 Web Application Development

Daily Detailed Outcomes

Week Day Topic
1 L1 Course Introduction
L2 Foundations of the WWW
  1. describe the purpose of a web client, such as a browser
  2. describe the purpose of a web server
  3. describe how HTTP is used to implement the www Request/Response model of web client/web server communication
  4. for each of the HTTP methods (e.g. GET, POST, HEAD, etc), describe the purpose of the method
  5. Explain what a "markup language" is
  6. Describe the history and various versions of HTML
  7. Describe the difference between HTML and XHTML
2
L1 HTML
  1. Explain the purpose of the various HTML tags, such as <h1>, <body>, <div>, <table> etc
  2. Explain the difference between Block elements and Inline elements
  3. Describe how HTML validators are used to check compliance of HTML markup to a standard
  4. describe how a browser can parse validated HTML document and model it as a hierarchical structure of various objects

CSS

  1. Explain how a browser renders HTML elements
  2. Explain the difference between content and presentation of an HTML document
  3. Describe HTML element attributes
L2 The Document Object Model and JavaScript
  1. describe how a browser can parse validated HTML
     document and model it as a hierarchical structure of various objects that are accessible via JavaScript
  2. write JavaScript code that accesses the Document Object Model to perform various functions
3 L1 Introduction to JavaScript
  1. describe the primary elements and features of the JavaScript language
  2. define typeless variables
  3. embed JavaScript into an html document
L2 The Browser Object Model
  1. describe how the browser models various objects, which are presented through an object-oriented API accessible via JavaScript
  2. write JavaScript code that accesses the Browser Object Model to perform various functions

Dynamic HTML

  1. write JavaScript code that accesses the Document Object Model to modify the content of an HTML document
4
L1 DOM Events and JavaScript
  1. write JavaScript code that responds to events, such as button clicks, originating from the DOM
L2 CSS
  1. Describe how to specify different CSS rules depending on browser target
  2. Describe CSS specifiers, media selection, layout, and positioning
  3. Explain how CSS validators are used to check compliance of CSS to a standard
5 L1 jQuery
  1. Describe how jQuery uses a "selector" mechanism to locate DOM elements
  2. Explain/write jQuery selector expressions that access DOM elements
L2 jQuery
  1. Explain/write jQuery code to respond to DOM events
  2. Explain/write jQuery code to animate (ie move) the position of a DOM element
6 L1 Java Servlets and the Tomcat Container
  1. describe the purpose of a CGI (Common Gateway Interface) helper application
  2. describe the purpose of a Container such as Tomcat
  3. explain that fact that the Tomcat Container is generally capable of functioning as a full web server (like Apache), but is not as robust
  4. list the five major functional aspects of a Container as 1) communications support, 2) Servlet lifecycle management, 3) Servlet multithreading support, 4) declarative deployment and security, 5) JSP support (including compiling JSP)
  5. describe the purpose of a Tomcat web app Deployment Descriptor
  6. describe how a Deployment Descriptor maps URLs to Servlet
  7. describe the 5-part event sequence of the Servlet life cycle as managed by a Container as 1) Servlet class loading, 2) Servlet instantiation, 3) init() method invocation, 4) service() method invocation, 5) destroy() method invocation
  8. illustrate the file and directory structure of a web application that may contain 1) static content, 2) JSP pages, 3) Servlet classes, 4) the Deployment Descriptor, 5) JSP tag libraries, 6) JAR files, 7) Java class files
  9. describe the main methods of the HTTPServlet interface that all Java Servlet classes must implement
  10. describe how to protect resource files from HTTP access
  11. for each of the HTTP methods GET and POST, describe the HTTPServlet method that corresponds to the HTTP method
  12. explain how a Servlet can generate dynamic HTML that it can return in the HTTP response
  13. explain the Model-View-Controller design pattern/architecture and the primary responsibility of each component.
L2 Web Application Deployment
  1. Deploy a web application as a WAR file to a Tomcat server

HTML Forms/Accessing HTTP Request and Response headers

  1. describe the structure of an HTML <form> tag, and some of the HTML elements that can be contained within a form
  2. explain how that, when a form is "submitted", the browser generates either a GET or POST request to another web server resource (to process the data entered within the form)
  3. describe how HTML forms send their data as part of the GET or POST HTTP request that is generated when the form is submitted
  4. for each of the HTTP methods GET and POST, describe how each method sends optional user-defined data as part of the request message
  5. describe the disadvantages and limitations of sending user-defined data via a GET message
  6. explain that a web server's reaction to receiving a GET message should always be idempotent (ie cause no change to state), while a POST message generally invokes a non-idempotent reaction
  7. explain how the Tomcat container packages HTTP Request and Response parameters into HTTPServletRequest and HTTPServletResponse objects that are passed to a Servlet's doGet() and doPost() methods
  8. explain how a Servlet can access an HTTP request's paramaters via methods of an HTTPServletRequest
  9. explain that you can use an HTTPServletResponse to set other HTTP headers, send HTTP errors, or add cookies to an HTTP Response
  10. explain how Servlets forward HTTP request parameters to other Java classes
  11. explain how Servlet can either internally dispatch a request to another resource, or alternately redirect the browser to request another resource.

 

7 L1

Threading and Sessions

  1. explain how the Tomcat container always executes each invocation of a Servlet's doGet() or doPost() method on a separate thread
  2. explain the concept of "statefulness"
  3. explain how the HTTP Request/Response model is a stateless protocol (making web applications "RESTful")
  4. explain the consequences of the stateless HTTP protocol with respect to the fact that a Servlet can obtain no "knowledge" of which of possibly many web clients it is responding to
  5. define the concept of a Session and how it relates to statefulness
L2 Sessions and Cookies
  1. explain how to create a Session
  2. explain how to retrieve a previously-created Session
  3. explain how to add/edit Session attributes
  4. explain the concept of a Cookie
  5. explain how cookies are used to represent Sessions
  6. explain how Sessions can be maintained even when Cookies are disabled within a browser
8 L1 Java Server Pages (JSPs)
  1. explain the motivation for using JSPs rather than Servlets
  2. explain that a JSP is a special type of servlet
  3. explain how Tomcat compiles a JSP into a Servlet class
  4. describe the six different kinds of JSP elements (Scriptlets, Directives, Java Expressions, EL Expressions, Declarations, and Comments), and what the purpose of each is
L2 Java Server Pages (JSPs)
  1. explain how regular Java code can be embedded in a JSP as a Scriptlet using <%...%> tags
  2. identify or write JSP code for 1) directives, 2) scriptlet code, 3) comments, 4) declarations, 5) expressions
  3. write JSP code that uses the page and include directives
  4. describe the event sequence of the JSP page lifecycle
  5. write JSP code that uses implicit objects such as 1) request, 2) response, 3) out, 4) session, 5) config
  6. explain how Servlet serve as the Controller, JSPs serve as the View, and regular Java classes serve as the Model components
9 L1 JavaScript and Ajax
  1. Describe the purpose of Ajax
  2. Write JavaScript code to execute Ajax methods
L2 XML and JSON
  1. Explain how data is represented in XML and JSON
  2. Write JavaScript code that extracts data from an XML or JSON document
Ajax with jQuery
  1. Write jQuery code to execute Ajax methods
10 L1 Security
  1. Configure the DD for secure communication to (parts of) a web application
  2. Explain the built-in security and authentication mechanism implemented by the Tomcat container
  3. Write a custom login form
L2 HTML5: The <canvas> element
  1. write JavaScript code that accesses <canvas> to draw free-form graphics

HTML5: Geolocation

  1. write JavaScript code that accesses the Geolocation services of the Document Object Model
     
HTML5: Audio and Video
  1. write JavaScript code that accesses the Audio and Video services of the Document Object Model