Week 2 - Web Programming - Server Side

29
Server Side Scripting 8

Transcript of Week 2 - Web Programming - Server Side

Page 1: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 1/29

Server Side Scripting

8

Page 2: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 2/29

What is a server?

Many types of server

File server file: networked file space

FTP server ftp: remote file space, often

read-only Web server http: web pages and more

Mail server mail: email system

News server news: newsgroups messages

Page 3: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 3/29

Dynamic, Interactive Web Server

(3-tier Architecture)

Browser

Web

Server

RDBMS

Request

InternetResponse

 Apps

Tier 1

Tier 3

Tier 2

Page 4: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 4/29

General Multi-tier Architecture

BrowserHTTPServer

 ApplicationServer

BackendServer

Client Server

(Other Server)

Page 5: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 5/29

Web Content

HTML documents are static

Dynamic content

user-side programming Middleware

ColdFusion, etc.

server-side programming

scripting languages programming languages

Page 6: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 6/29

Server-Side Programming

Database

Searches

Form processing

Counters

Mailing lists

Customized pages etc.

Page 7: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 7/29

Why Server-Side Programming?

Accessibility

You can reach the Internet from any browser, any device, anytime, anywhere

Manageability

Does not require distribution of application code

Easy to change code

Security

Source code is not exposed Once user is authenticated, can only allow certain actions

Scalability

Web-based 3-tier architecture can scale out

Page 8: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 8/29

History of Dynamic Web Content

Common Gateway Interface (CGI) was the firstgeneration approach to providing dynamic web content

Used scripts

A process dispatched for each web page generated. Hence inefficient and did not scale well.

Numerous second generation alternatives wereinvented:

FastCGI

mod_perl

NSAPI ISAPI

Java Servlets

These embed HTML in programming code so that

programmers had to develop them. Costly.

Page 9: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 9/29

Scripting - the Third Generation Approach

Embed simple code in HTML pages

The HTML pages use the code to decide what

elements to display and what data should bedisplayed

Classes and/or subroutines can be called to

compute information for inclusion in the webpage. APIs can be invoked.

This is known as „scripting‟ 

Page 10: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 10/29

Scripting Language or Compiled?

Scripting Languages:

Server Side Includes (SSI)

Perl

PHP

ASP (VBScript) Python

Common to all scripting languages is some sort of real timeinterpreter that parses text and turns it into executable instructions

for the server

Compiled Languages:

C

C++

C#

ASP .Net

Java Servlets Java Server Pages (JSP)

Looks like a scripting language,but is actually compiled into aJava Servlet

Either portable byte code (such asa Java .class file) or a trueexecutable (native to themicroprocessor) is produced

Page 11: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 11/29

Some Approaches to Scripting

JavaServer Pages (JSP) by Sun Microsystems

Hypertext Preprocessor (PHP) [open-source]

ColdFusion (CFML) by Macromedia

Active Server Pages (ASP and ASP.NET) by

Microsoft

Page 12: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 12/29

Criteria Affecting Decisions

Web server availability

Knowledge of language

Scalability and efficiency

Personal preference

Page 13: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 13/29

What is JSP?

JavaServer Pages 

Java-based technology that simplifies thedevelopment of dynamic websites

Designed around the Java philosophy

Packaged with J2EE 

As all XML-based technologies – it separatespresentation aspects from programming logiccontained in the code

Page 14: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 14/29

J2EE Technology

Web container (Application Server)

EJB container

Java Servlet

is a simple, consistent mechanism for extending thefunctionality of a web server

Are precompiled Java programs that are executed on theserver side

Requires a Servlet container to run in

JSP (JavaServer Pages), Tag Library

Applets, XML, JDBC, JNDI, JMS, RMI, IIOP, JavaMail,

… 

Page 15: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 15/29

Servlet Container/Engine

Servlets/JSP require a Container

Apache Tomcat is the reference implementationof the Servlet/JSP Specs

It is open source, small, install quickly,and isFREE

Web Site: jakarta.apache.org/tomcat

It include a simple HTTP 1.1 server, goodenough for development and small intranets

Page 16: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 16/29

Servlets and JSP

WebContainer

(ApplicationServer)

servlets

JSPs

Request

Response

Load & Exec

servletsLoad & Exec

Compile

Page 17: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 17/29

JSP Basics

Individual JSP pages are text files stored on theweb server

When a page is first requested, the JSP engine

uses the page to generate a Servlet

The compiled Servlet is saved and used toservice additional requests

When a page is modified, the Servlet isregenerated

Precompilation of pages is also feasible

Page 18: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 18/29

A Simple JSP

<HTML><BODY>Hello, visitor, It is now <%= new java.util.Date().toString() %></BODY>

</HTML>

“new java.util.Date().toString()” 

This creates a date object and converts it to a String that canbe displayed.

The <% %> element can be used to insert regular Javacode to control the flow of a page

Page 19: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 19/29

What is PHP?

Open Source server-side scripting language designedspecifically for the web

Conceived in 1994, now used on +10 million web sites

Supports a wide-range of databases (20 + ODBC).

Tightly integrated with MySQL

Perl- and C-like syntax

It is cross platform, unlike ASP which generally worksonly on Microsoft web servers (IIS)

Website: http://www.php.net/ 

Page 20: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 20/29

What is PHP?

Designed similar to Active Server Pages

You embed PHP commands into your web pages

Commands are preprocessed by the PHPprocessor and appropriate HTML is sent to theweb server

Lots of free or low cost software:

http://www.hotscripts.com/PHP/Scripts_and_Programs/ lists over 4000 programs

PHP Nuke is an excellent example: free portalsoftware

Page 21: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 21/29

What is MySQL?

Relational database management system(RDBMS)

Free

Can run on UNIX, Windows and Mac OS

Website: http://www.mysql.com/ 

Page 22: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 22/29

PHP Process Flow

Web

Server

PHP

Pre-processor .php

source

fileBrowserInternet

Request for .php file

Raw .php sourceHTML is substituted for PHP code

HTML

Page 23: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 23/29

PHP Example

Begin and end script tags: <?php ?> can also use <? and ?>

PHP statements must be terminated with asemicolon (“;”) 

<html>

<body><?php echo "Hello, World! I'm using PHP!"; ?></body></html>

Page 24: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 24/29

PHP Form Data

Access to the HTTP POST and GET data is simple inPHP

The global variables $_POST[] and $_GET[] contain therequest data

<?phpif ($_POST["submit"])

echo "<h2>You clicked Submit!</h2>";else if ($_POST["cancel"])

echo "<h2>You clicked Cancel!</h2>";?><form action="post.php" method="post">

<input type="submit" name="submit" value="Submit"><input type="submit" name="cancel" value="Cancel">

</form>

Page 25: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 25/29

ASP.NET

Based on .NET framework and the Common LanguageRuntime (CLR)

Compiled language

New languages: Visual Basic .NET, C#, … 

Improved component model

Web Forms

ADO.NET

Web Services

Page 26: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 26/29

Server Side Scripting

ASP .NET vs. JSP vs. PHP

8

Page 27: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 27/29

ASP .NET

Microsoft only platforms

Closed source

Widely supported

Not only limited to one language (C++, C#, VB, J#)

One deployment choice -> “Wintel” [Windows and Intel] 

Page 28: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 28/29

JSP

Not widely supported by web hosting companies

Not a JavaScript, includes all Java technology for use

Real Java, not scripting language

Many deployment choices

Page 29: Week 2 - Web Programming - Server Side

8/3/2019 Week 2 - Web Programming - Server Side

http://slidepdf.com/reader/full/week-2-web-programming-server-side 29/29

PHP

Platform independent

Origins in the C programming language

Open source

Many deployment choices

Easy to learn

Widely supported