Week |
Day |
Topic |
1 |
L1 |
Course Introduction |
L2 |
Foundations of the WWW
- describe the purpose of a web client, such as a browser
- describe the purpose of a web server
- describe how HTTP is used to implement the www Request/Response
model of web client/web server communication
- for each of the HTTP methods (e.g. GET, POST, HEAD, etc), describe
the purpose of the method
- Explain what a "markup language" is
- Describe the history and various versions of HTML
- Describe the difference between HTML and XHTML
|
2 |
L1 |
HTML
- Explain the purpose of the various HTML tags, such as <h1>,
<body>, <div>, <table> etc
- Explain the difference between Block elements and Inline
elements
- Describe how HTML validators are used to check compliance of HTML markup to a standard
- describe how a browser can parse validated HTML document and model it as a
hierarchical structure of various objects
CSS
- Explain how a browser renders HTML elements
- Explain the difference between content and presentation of an
HTML
document
- Describe HTML element attributes
|
L2 |
The Document Object Model and JavaScript- describe how a
browser can parse validated HTML
document and model it as a
hierarchical structure of various objects that are accessible via
JavaScript
- write JavaScript code that accesses the Document Object Model to
perform various functions
|
3 |
L1 |
Introduction to JavaScript
- describe the primary elements and features of the JavaScript
language
- define typeless variables
- embed JavaScript into an html document
|
L2 |
The Browser Object Model-
describe how the browser models various objects, which are presented
through an object-oriented API accessible via JavaScript
- write JavaScript code that accesses the Browser Object Model to
perform various functions
Dynamic HTML
- write JavaScript code that accesses the Document Object Model to
modify the content of an HTML document
|
4 |
L1 |
DOM Events and JavaScript
- write JavaScript code that responds to events, such as button
clicks, originating from the DOM
|
L2 |
CSS
- Describe how to specify different CSS rules depending on browser
target
- Describe CSS specifiers, media selection, layout, and
positioning
- Explain how CSS validators are used to check compliance of CSS
to a standard
|
5 |
L1 |
jQuery
- Describe how jQuery uses a "selector" mechanism to locate DOM
elements
- Explain/write jQuery selector expressions that access DOM
elements
|
L2 |
jQuery
- Explain/write jQuery code to respond to DOM events
- Explain/write jQuery code to animate (ie move) the position of a
DOM element
|
6 |
L1 |
Java Servlets and the Tomcat Container
- describe the purpose of a CGI (Common Gateway Interface) helper
application
- describe the purpose of a Container such as Tomcat
- explain that fact that the Tomcat Container is generally capable
of functioning as a full web server (like Apache), but is not as
robust
- 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)
- describe the purpose of a Tomcat web app Deployment Descriptor
- describe how a Deployment Descriptor maps URLs to Servlet
- 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
- 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
- describe the main methods of the HTTPServlet interface that all
Java Servlet classes must implement
- describe how to protect resource files from HTTP access
- for each of the HTTP methods GET and POST, describe the
HTTPServlet method that corresponds to the HTTP method
- explain how a Servlet can generate dynamic HTML that it can
return in the HTTP response
- explain the Model-View-Controller design
pattern/architecture and the primary responsibility of each
component.
|
L2 |
Web Application Deployment- Deploy a web application as a WAR
file to a Tomcat server
HTML Forms/Accessing HTTP Request and Response headers
- describe the structure of an HTML <form> tag, and some of the
HTML elements that can be contained within a form
- 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)
- describe how HTML forms send their data as part of the GET or
POST HTTP request that is generated when the form is submitted
- for each of the HTTP methods GET and POST, describe how each
method sends optional user-defined data as part of the request
message
- describe the disadvantages and limitations of sending
user-defined data via a GET message
- 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
- 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
- explain how a Servlet can access an HTTP request's paramaters
via methods of an HTTPServletRequest
- explain that you can use an HTTPServletResponse to set other
HTTP headers, send HTTP errors, or add cookies to an HTTP Response
- explain how Servlets forward HTTP request parameters to other
Java classes
- 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
- explain how the Tomcat container always executes each
invocation of a Servlet's doGet() or doPost() method on a separate
thread
- explain the concept of "statefulness"
- explain how the HTTP Request/Response model is a stateless
protocol (making web applications "RESTful")
- 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
- define the concept of a Session and how it relates to
statefulness
|
L2 |
Sessions and Cookies
- explain how to create a Session
- explain how to retrieve a previously-created Session
- explain how to add/edit Session attributes
- explain the concept of a Cookie
- explain how cookies are used to represent Sessions
- explain how Sessions can be maintained even when Cookies are
disabled within a browser
|
8 |
L1 |
Java Server Pages (JSPs)- explain the motivation for using
JSPs rather than Servlets
- explain that a JSP is a special type of servlet
- explain how Tomcat compiles a JSP into a Servlet class
- 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)
- explain how regular Java code can be embedded in a JSP as a
Scriptlet using <%...%> tags
- identify or write JSP code for 1) directives, 2) scriptlet code,
3) comments, 4) declarations, 5) expressions
- write JSP code that uses the page and include directives
- describe the event sequence of the JSP page lifecycle
- write JSP code that uses implicit objects such as 1) request, 2)
response, 3) out, 4) session, 5) config
- 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- Describe the purpose of Ajax
- Write JavaScript code to execute Ajax methods
|
L2 |
XML and JSON- Explain how data is represented in XML and JSON
- Write JavaScript code that extracts data from an XML or JSON document
Ajax with jQuery- Write jQuery code to execute Ajax methods
|
10 |
L1 |
Security- Configure the DD for secure communication to (parts
of) a web application
- Explain the built-in security and authentication mechanism
implemented by the Tomcat container
- Write a custom login form
|
L2 |
HTML5: The <canvas> element
- write JavaScript code that accesses <canvas> to draw free-form
graphics
HTML5: Geolocation
- write JavaScript code that accesses the Geolocation services of
the Document Object Model
HTML5: Audio and Video
- write JavaScript code that accesses the Audio and Video services
of the Document Object Model
|