Extending Web Functionality - PowerPoint PPT Presentation

About This Presentation
Title:

Extending Web Functionality

Description:

Programs (compiled or interpreted) running on the server ... JavaScript / VBScript / DHTML. JavaScript is quite different from Java ... – PowerPoint PPT presentation

Number of Views:20
Avg rating:3.0/5.0
Slides: 24
Provided by: mathUaa
Category:

less

Transcript and Presenter's Notes

Title: Extending Web Functionality


1
Extending Web Functionality
  • Programming tools are needed to extend web
    functionality beyond pure publishing.
  • CGI
  • Common Gateway Interface
  • Server Side Includes
  • Java / Java Applet / Java Servlet / JSP
  • ActiveX
  • JavaScript / VBScript

2
CGI
  • Programs (compiled or interpreted) running on the
    server
  • Provide interactivity with the user for forms,
    images (e.g. counters)
  • User inputs data on a form
  • Upon submit, the data is transmitted to the CGI
  • CGI program operates on the data and typically
    transmits something back (HTML, image, etc.)

3
CGI
Web Server
Html page
HTTP Server
Browser
Form Data
CGI Program
Results - HTML or Image or Sound or ...
Global Environment Variables
4
CGI Problems
  • Load on the server
  • Security issues
  • if a leak, user could get access to the web
    server
  • Inefficiencies
  • Program is loaded for each request
  • Possible to have in-memory modules for better
    efficiency

5
Two Methods of Sending Data
  • GET method
  • Sends data like invoking a program with command
    line arguments
  • /cgi-bin/mycgi.exe?parm1yesparm2no
  • POST method
  • Invokes program first, then the program waits for
    the parameter data from the web server
  • Somewhat more secure than the GET method

6
CGI Examples
  • Web bulletin board
  • Graphical Counters
  • CGI returns an image, not HTML
  • Guestbook
  • Web log analysis
  • CGI program generates the HTML that your browser
    sees

7
CGI Programming
  • Often in Perl, ASP (Active Server Pages)
  • Can use C, C, .NET Languages
  • We will use PHP
  • Either an interpreted or compiled language
  • NOT a language implemented in your browser, like
    Javascript or VBScript

8
Server Side Includes
  • Hidden directives in your HTML to execute a
    program and insert its output into the web page
  • lt!-- comment tag --gt
  • Format varies on different browsers

HTML Here blah blah... lt!--include
file"testssi.inc"--gt More html here lt!--exec
cgicgiprogram.exe--gt
9
Java Applet
Applets downloaded to local PC, execute there
10
Java Applet Usage
  • The applet is embedded like a HTML tag

ltapplet codejavaprog.class widthx
heightygt ltparam nameX valueYgt lt/appletgt
11
JavaScript / VBScript / DHTML
  • JavaScript is quite different from Java
  • JavaScript started as LiveScript by Netscape
  • VBScript started by Microsoft
  • Scripting language interpreted by the web
    browser code is embedded in the HTML itself
  • Often used for glue between browsers and
    programs on the server (e.g. databases)

12
JavaScript
Html page with JavaScript
Web Server
HTTP Server
Browser with Javascript Interpreter
Possible Communications with web server only
Javascript Code
13
Example JavaScript Code
ltscript language"JavaScript"gt var
num1 numnum5 document.write("Hello world!
The number is ") document.writeln(num) document.
write("ltpgt") document.writeln var dnew
Date() document.writeln("The time is
"d) lt/scriptgt
14
Java vs. JavaScript?
  • Both run on the client
  • Interpreted Java/VBScript runs slower
  • Somewhat limited programming language constructs
    available in JavaScript
  • Easier to do simple tasks, formatting tasks,
    interface with Fields in Forms in JavaScript

15
Java Servlet
16
Java Server Pages (JSP)
17
Sample JSP Code
lthtmlgt lttitlegt Displaying Heading Tags with
JSP lt/titlegt   ltbodygt lt! private static final
int LASTLEVEL 6 gt   ltpgt This page uses JSP to
display Heading Tags from Level 1 to Level lt
LASTLEVEL gtlt/pgt   lt int i for (i 1 i
lt LASTLEVEL i) out.println("ltH" i
"gt" "This text is in Heading Level "
i "lt/H" i "gt") gt lt/bodygt lt/html
gt
18
COM/ActiveX
  • Microsoft-specific format
  • Architecture that enables binary programs to be
    distributed and interface with one another
  • For a web browser, the end result is similar to
    Java
  • Native compiled programs downloaded to the
    browser
  • Run on the client

19
ActiveX
Html page ActiveX Program
Web Server
HTTP Server
Browser
ActiveX Program - A regular Windows Program!
Possible Communications with anywhere. Lax
security restrictions.
20
Basic CGI Example
  • Receiving, Printing GET/POST Data

HTML lthtmlgt ltbodygt Here is a form ltform
name"foo" methodpost action"test.php"gt ltinput
typetext namebahgt ltinput typehidden namefoo
value"hello"gt ltinput typesubmitgt lt/formgt lt/bodygt
lt/htmlgt
21
Form
22
CGI Code, in PHP
lt?php header("Content-Type text/html")
print("lthtmlgtltheadgtlttitlegtCGI Testlt/titlegtlt/headgtlt
bodygt") print("ltcentergt")
print("lth2gtSubmission Receivedlt/h2gt")
print("lt/centergt") if (_SERVER'REQUEST_METHOD
' 'GET') print(" GET Query ltPgt
") print_r(_GET) print("ltPgtfoo " .
_GET'foo' . "ltBRgtbah " . _GET'bah' . "ltpgt
") else print(" POST Query ltPgt
") print_r(_POST) print("ltPgtfoo " .
_POST'foo' . "ltBRgtbah " . _POST'bah' .
"ltpgt ") ?gt
23
Results
Write a Comment
User Comments (0)
About PowerShow.com