Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Final Exam
Tues 6/8/10 @ 4-5:50pm
(normal class time and room)
worth 35% of your course grade
17 Questions
All short answer questions
No Multiple Choice
No Programming
No questions about language syntax
1
Topics Covered
•
•
•
•
•
•
•
•
•
•
•
Client/Server Web Programming
Basic Web Development Concepts
Web Server Concepts – Apache, Tomcat
NO – HTTP, HTML, XHTML, Form Controls or CSS
JavaScript
PHP
Perl
CGI
Python
JSP and Servlets
Internet Databases Concepts and JDBC
• No JavaBeans and No Java Programming Language Questions
2
INFORMATION FROM LECTURES
No questions from:
• Lecture 4, 5, 6, 7, 8, 14
No programming questions.
No language syntax or symantec questions.
Read (questions are from):
• Lecture 1, 2, 3, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20,
21 and 22.
3
Some of the Course goals:
 Understand the technology and protocols underlying the World Wide
Web
 Become familiar with common tools and techniques for developing
Web-based applications, both client-side and server-side
 Develop a working knowledge of various scripting web languages as
languages for developing Web applications
 Have an understanding of what technologies can be used for various
web projects and what makes the technology appropriately suited for
the desired application.
 Become familiar with some of the challenges and issues related to
Internet Development.
4
Client-side programming
can download program with Web page, execute on client machine
 simple, generic, but insecure
JavaScript
 a scripting language for Web pages, developed by Netscape in 1995
 uses a C++/Java-like syntax, so familiar to programmers, but simpler
 good for adding dynamic features to Web page, controlling forms and GUI
Java applets
 can define small, special-purpose programs in Java called applets
 provides full expressive power of Java (but more overhead)
 good for more complex tasks or data heavy tasks, such as graphics
5
Server-side programming
can store and execute program on Web server, link from Web page
 more complex, requires server privileges, but secure
CGI programming
 programs can be written to conform to the Common Gateway Interface
 when a Web page submits, data from the page is sent as input to the
CGI program
 CGI program executes on server, sends its results back to browser as
a Web page
 good if computation is large/complex or requires access to private data
Active Server Pages, Java Servlets, PHP, Server Side Includes
 vendor-specific alternatives to CGI
 provide many of the same capabilities but using HTML-like tags
6
Lecture 3
This lecture introduces the web technologies of SQL,
ASP, ADO, ODBC, JDBC, PHP, CGI, Java Applets,
JavaScript, Servlets, JSP.
Only 4 question from this lecture.
No questions on .NET or Java Webstart.
7
Client vs. Server Side Scripting Technologies
Lecture 9 - Client-Side JavaScript
Lecture 10 - Server-Side Java Servlets
Lecture 11 - JSP
4 questions from these lectures.
8
Lecture 9 - JavaScript
client-side programming with JavaScript
JavaScript is not Java
•
•
•
•
JavaScript is a very simple scripting language.
Syntax is similar to a subset of Java.
Interpreted language.
Uses objects, but doesn't really support the creation
of new object types
10
Scripts vs. programs
a scripting language is a simple, interpreted programming language
 scripts are embedded as plain text, interpreted by application
 simpler execution model: don't need compiler or development
environment
 saves bandwidth: source code is downloaded, not compiled
executable
 platform-independence: code interpreted by any script-enabled
browser
 but: slower than compiled code, not as powerful/full-featured
11
Common scripting tasks
adding dynamic features to Web pages
 validation of form data
 image rollovers
 time-sensitive or random page elements
defining programs with Web interfaces
 utilize buttons, text boxes, clickable images, prompts, frames
limitations of client-side scripting
 since script code is embedded in the page, viewable to the world
 for security reasons, scripts are limited in what they can do
e.g., can't access the client's hard drive
 since designed to run on any machine platform, scripts do not contain platform
specific commands
 script languages are not full-featured
e.g., JavaScript objects are crude, not good for large project development
12
JavaScript
JavaScript code can be embedded in a Web page using SCRIPT tags
 the output of JavaScript code is displayed as if directly entered in HTML
<html>
<!-- js01.html -->
<head>
<title>JavaScript Page</title>
</head>
<body>
<script type="text/javascript">
// silly code to demonstrate output
document.write("Hello world!");
document.write("<p>How are <br />" +
"<i>you</i>?</p>");
</script>
<p>Here is some static text as well.
</p>
</body>
</html>
document.write displays text in page
text to be displayed can include HTML
tags
the tags are interpreted by the browser
when the text is displayed
as in C++/Java, statements end with ;
JavaScript comments similar to C++/Java
//
starts a single line comment
/*…*/ enclose multi-line comments
13
The Python Programming Language
From lectures 19, 20, and 21
Only 1 question about python
14
PHP
See lecture 18
Only 1 question on PHP
15
What is this “PHP” thing?
Official description:
“PHP, which stands for "PHP: Hypertext Preprocessor"
is a widely-used Open Source general-purpose
scripting language that is especially suited for Web
development and can be embedded into HTML. Its
syntax draws upon C, Java, and Perl, and is easy to
learn.
16
What does PHP do?
Most commonly: used inside a web server to
parse pages and dynamically generate content.
Differs from a language like Javascript in that it is
Server Side (processed on the server)
17
PHP Document
In order to be correctly read and processed, must be
parsed through a server capable of parsing PHP code.
Server processes code: formats a standard HTML
document out of the PHP code, then transfers via
HTTP to client browser. No client software required
(other than web browser).
18
Simple Transfer of Normal HTML
Server
.HTML HTML
File
Web
Server
Application
(Apache)
Client
HTML
Client’s
Browser
(MSIE,
Netscape,
Etc)
19
Simple Transfer of PHP
Server
.PHP
File
Web
PHP
PHP HTML
Server
&
Parsing
Application
HTML Module
(Apache)
Client
HTML
Client’s
Browser
(MSIE,
Netscape,
Etc)
20
What does a PHP file look like?
<html>
<p>Hello
<?php
echo “world!”;
?>
</p>
</html>
21
Parsing…
<html>
<p>Hello
<?php
echo “world!”;
?>
</p>
</html>
<html>
<p>Hello
world
</p>
</html>
22
CGI Programming
See lecture 15
Only 2 question on CGI
23
Client-side recap
JavaScript provides for client-side scripting
 source code is downloaded with the Web page
 interpreted by the browser as the page is loaded
 simple execution model, language is closely integrated with HTML
Java Applets provides for client-side programming
 source code is compiled into Java byte code on server
 byte code is downloaded with the Web page
 interpreted by the Java Virtual Machine in the browser
 more complicated model, requires compiler on server
 (slightly) faster execution, full-featured with extensive library support
both approaches yield platform independence
 requires JavaScript/Java enabled browser for desired platform
24
Server-side vs. client-side programming
instead of downloading the program and executing on the client,
 have the client make a request
 execute the program on the server
 download the results to the client
advantages
 cross-platform support
browser variations/bugs yield differences with JavaScript & Java applets
with server-side, only have to test & optimize program for server platform
 more options for applications
server-side program not limited for security reasons, can access files & databases
 increased power
server machines tend to be more powerful, better tools
 code integrity
do not have to give client access to source code or data in order to execute
25
Common server-side applications
search engines
 must maintain a large database of links & documents
 must be able to index, sort data, perform complex searches
 requires lots of storage, optimum performance  server-side
database access
 Web page can serve as front-end to a database
 make requests from browser, passed on to Web server, calls CGI
program to access the database, sends the results back to the browser
chat & bulletin board services
 user enters messages in a Web interface, passed on to server
 chat: CGI program distributes messages to all connected users
 bulletin board: CGI program adds to accessible database of messages
26
CGI programming
CGI (Common Gateway Interface)
 protocol for input/output of a server-side program
 program can be written in any language as long as it accepts input
and produces output as specified by CGI
 server must be able to recognize a URL as being a CGI program
generally done by placing program in special cgi-bin directory
to execute a CGI program
 server receives a request
 server must recognize that the URL maps to a program, not a
document
 server executes program
• feeds data from request message to program as output
• takes program output, adds appropriate HTTP headers, and
sends back
27
CGI output
The output of a CGI program consists of
 HTTP headers
 blank line
 program output to be displayed/downloaded
At minimum, HTTP header must specify content type
 which is then passed on by the Web server as an HTTP header
e.g.,
Content-Type: text/html
At minimum, output can be plain text
 which is passed on by the Web server as the HTML document
e.g.,
Hello and welcome to my page
28
CGI example
// hello.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Content-Type: text/html" << endl
<< endl;
cout << "Hello and welcome to my page " << endl;
return 0;
}
executable is stored in the
cgi-bin under the name
hello.cgi
GET request executes the
program
29
Introduction to Perl
See lecture 16
2 questions on Perl
30
What is Perl?
Practical Extraction and Report Language
A scripting language which is both relatively
simple to learn and yet remarkably powerful.
31
Introduction to Perl
• A “glue” language. Ideal for connecting things
together, such as a GUI to a number cruncher, or a
database to a web server.
• Has replaced shell programming as the most popular
programming language for text processing and Unix
system administration.
• Runs under all operating systems (including
Windows).
• Extremely popular for CGI and GUI programming.
32
Why use Perl ?
• It is easy to gain a basic understanding of the
language and start writing useful programs quickly.
• There are a number of shortcuts which make
programming ‘easier’.
• Perl is popular and widely used, especially for system
administration and WWW programming.
33
Why use Perl?
Perl is free and available on all computing platforms.
 Unix/Linux, Windows, Macintosh, Palm OS
There are many freely available additions to Perl
(‘Modules’).
Most importantly, Perl is designed to understand and
manipulate text and lists.
34
A Simple Perl script
#!/usr/bin/perl
#This script prints a friendly greeting to the screen
print “Hello World\n”;
• Scripts are first “compiled” and then “executed” in the order in
which the lines of code appear
• You can write a script with any text editor. The only rule is that
it must be saved as plain text.
35
Database Connectivity and Internet Technologies Overview
Lecture 22 – This is a nice summary lecture that provides a lot of Server
Technology conclusions.
No questions on Cold Fusion, No questions on Server Tiers. This is just a
good summary lecture.
There are 5 scenario questions asking you to pick scripting languages
and/or server technologies to solve a problem.
36
Class Summary questions to ponder…
•
•
•
•
•
•
What technologies are available for the internet?
Why would you want to use a particular scripting languages?
How does one language support something another does not?
The difference between client side and server side applications.
What are the basic parts of an HTML, Perl, PHP, CGI document?
How would you use these technologies to accomplish a task or
provide a solution to a problem?
• If given a scenario, which language and/or technology would you
choose and why?
37
Final Exam
Tues 6/8/10 @ 4-5:50pm
(normal class time and room)
worth 35% of your course grade
17 Questions
All short answer questions
No Multiple Choice
No Programming
No questions about language syntax
38