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