CSC 551: Web Programming
Spring 2004

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, Java, and PHP 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 CGI in C++, CGIinput class Perl free, portable, simple scripting language w/ support for CGI (CGI.pm) variables, strings, control statements, functions similar to JavaScript support for: handling form elements, file access, ... PHP free, server-side scripting language, can embed code in HTML using <?php ?> variables, strings, control statements, functions similar to JavaScript/Perl support for: handling form elements, file access, file uploading, ... other technologies server-side includes, Server-Side JavaScript, Active Server Pages, servlets Emerging technologies Dynamic HTML, XML, ActiveX