CSC 551: Web Programming
Spring 2003

Course Overview

Specific goals for the course To develop an understanding of the technology and protocols underlying the Web. To become familiar with the common tools and techniques for developing Web-based applications, both client-side and server-side. To develop a working knowledge of HTML, JavaScript, and Java as languages for developing Web applications. Skills developed programming & problem solving interface design and implementation ability to research and learn from external sources collaborative learning & development Internet & Web technologies history of Internet networking 7-layer model, TCP/IP protocols history of World Wide Web HyperText Transfer Protocol (HTTP) GET/POST requests, request headers (e.g., If-Modified-Since, ...) response headers (e.g., status code, Last-modified, ...) caching, cookies static vs. dynamic pages, client-side vs. server-side programming Web development HyperText Markup Language (HTML) tags vs. elements structural elements, text layout, text styles, lists hyperlinks, images, tables, frames style sheets STYLE attribute for an element vs. STYLE tag in HEAD vs. STYLE file Client-side Programming JavaScript language constructs variables, assignments, functions, classes/objects, ... serial programs SCRIPT tags, prompt, document.write event-driven programs form elements: button, text box, text area, selection list, ... properties: e.g., name, type value event handlers: e.g., onblur, onfocus, onchange, onclick, ... techniques: form validation, output to window/frame, timeouts, cookies Java design goals platform independence, portable, secure, simple, object-oriented, ... source code compiled into Java byte code, then interpreted language constructs class vs. instance variables/methods, primitive vs. reference types automatic garbage collection, inheritance from Object, class libraries Java applets inherit from Applet class, default methods include init, paint, ... APPLET & OBJECT tags, applet parameters & dimensions Graphics object, methods (drawRect, drawString, ...), double buffering GUI elements, JavaBeans, Java Archive (JAR) files Integrating JavaScript & Java calling applet methods from JavaScript: document.APPLET_NAME.METHOD_CALL(...) accessing HTML/JavaScript from an applet: more complex, use JSObject class Server-side programming advantages: cross-platform, more tools/power, code integrity Common Gateway Interface (CGI) language-neutral protocol for Web server/program communication reads from standard input: URL-encoded data containing field names & values writes to standard output: response header + blank + page data server-specific technologies Netscape ONE, including Server-Side JavaScript Microsoft DNA, including Active Server Pages server-independent technologies Java servlets: server-side applets, like CGI but executed as part of server PHP: server-side scripting language, similar to ASP not vendor specific Emerging technologies Dynamic HTML, ActiveX, XML