Server-Side Scripting Environments CSE 135 Server Side Web Languages Lecture # 5 Server Side Scripting Intro

Server-Side Scripting Environments CSE 135 Server Side Web Languages Lecture # 5 Server Side Scripting Intro

CSE 135 Server Side Web Languages Lecture # 5 Server-Side Scripting Environments CSE 135 Server Side Web Languages Lecture # 5 Server Side Scripting Intro • Server-side scripting offers a balance between complexity and performance – Not as hard as server-modules (or maybe CGI), but not as performance oriented as server-modules • The general idea is to add scripting directives with template files (often thought of as modified HTML files) – The scripted pages are intercepted by a Web server on the way out and the code converted into the appropriate output – generally HTML CSE 135 Server Side Web Languages Implementing a Server-Side Scripting Language • Consider the idea of writing a special BozoScript server module that looks to see if a file is being requested with an extension .bozo – The server module either intercepts the page, parses and produces or a result or passes it on without parsing – The trigger for interception is generally a file extension, though some may foolishly intercept anything by setting interception on .html • Good because it hides implementation, bad because you may parse something you don’t need to CSE 135 Server Side Web Languages Lecture # 5 How Server-Side Scripting Works Contd. HTTP Request for file.bozo Web Server Script Engine Browser receives File.bozo response with appropriate Resulting MIME type (usually page text/html) and renders Script engine intercepts and evaluates “BozoScript” code CSE 135 Server Side Web Languages Lecture # 5 Server-Side Scripting Language Characteristics • When looking at server-side scripting languages you see some common characteristics – Syntax variations • Tag like or script like – Focus on troubles of Web programming • Session management, form handling, database programming – Occasionally understanding of separation of programmer, designer, and markup specialists • Through syntax, separation of presentation and logic, etc. – Reliance on external objects for “heavy lifting” CSE 135 Server Side Web Languages Lecture # 5 Server-Side Scripting Language Characteristics • Generations of Server-side scripting? – Zero Generation: SSI (server-side includes) – 1st Generation: Classic ASP, ColdFusion, PHP – 2nd Generation: JSP, ASP.NET – 3rd Generation: Declarative style- Flex –OR- 4GL like - Ruby on Rails • Yet for all their supposed differences server-side scripted environments suffer from an exchange of ease for scalability and performance, some also suffer from portability being tied to a particular platform. • The main thrust of 2nd generation efforts being performance and/or support for larger system development. • Oddly the thrust of 3rd generation is a pendulum swing back to the ease of development offered by 1st generation server-side scripting which made it so popular. • And in all this maybe we are right back JavaScript which was 1st generation - the immovable rock of the Internet. (see Node.js) CSE 135 Server Side Web Languages Lecture # 5 Parsed Script Intro • We review a few of the basic issues with the first generation server- side scripting languages here before studying PHP more in-depth. • Server Side Includes (SSI) – .shtml files – In the form of a comment – <!--#include file=“footer.html”--> – SSI is common to nearly every Web server, though not always enabled. Some Web servers may have unique features • Already even with SSI you see the main issues – How do you indicate the file has some script in it (file extension) – Within the file how do you delimit or separate template from script (in this case HTML comment) – Performance hit vs. the productivity gain • Some editors like Dreamweaver provide this same type of template style without the use of server-side page composition CSE 135 Server Side Web Languages Lecture # 5 ColdFusion Markup Overview • ColdFusion initially invented by Allaire, merged with Macromedia now Adobe – Simple server-parsed tag based scripting language that is very focused on connecting databases to Web pages – ColdFusion requires a special Application Server and it runs on Windows, Linux, and Solaris – Like other server parsed scripting solutions the app server is engaged when a file of a particular extension (.cfm) is requested • Cold Fusion markup looks like basic HTML tags and thus is popular with people who are new to programming – Some black-eyes from syntax and security concerns • Main purpose of CF is to connect to a database – Either using ODBC or native database drivers CSE 135 Server Side Web Languages Lecture # 5 ColdFusion Markup Overview • You need to specify basic SQL (Structured Query Language) statements to use CF • Given a DB table called Positions with the fields Position-Num, JobTitle, Location, Description, Hiring Manager, and PostDate. It is easy to query the table using statements like – SELECT * FROM Positions – SELECT * FROM Positions WHERE Location="Austin" – SELECT * FROM Positions WHERE ((Location="Austin" OR (Location="Los Angeles") AND (Position="Game Tester")) CSE 135 Server Side Web Languages Lecture # 5 <CFQUERY> <CFQUERY NAME="ListJobs" DATASOURCE="CompanyDataBase"> SELECT * FROM Positions </CFQUERY> Note: The DATASOURCE attribute is set equal to CompanyDataBase, which is the ODBC data source that contains a database called Company, which contains the Positions table from which data is pulled. <CFQUERY> supports attributes like NAME, DATASOURCE, MAXROWS, USERNAME, PASSWORD, TIMEOUT, and DEBUG CSE 135 Server Side Web Languages Lecture # 5 <CFOUTPUT> • Once you have data for example from variables, calculations or a from a database query you can output it with <CFOUTPUT> <CFOUTPUT QUERY="ListJobs"> <hr noshade><br> Position Number: <b>#PositionNum#</b><br><br> Title: #JobTitle#<br><br> Location: #Location#<br><br> Description: #Description# </CFOUTPUT> • Notice the use of # symbols to relate the fields of the database with output “slots” Also notice how HTML and database fields are intermixed. CSE 135 Server Side Web Languages Lecture # 5 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <CFQUERY NAME="ListJobs" DATASOURCE="CompanyDataBase"> SELECT * from Positions </CFQUERY> <html> <head><title>Demo Company Job Listings</title></head> <body bgcolor="#FFFFFF"> <h2 align="center">Job Listings</h2> <hr> <CFOUTPUT QUERY="ListJobs"> <hr noshade><br> Position Number: #PositionNum#<br><br> Title: #JobTitle#<br><br> Location: #Location#<br><br> Description: #Description# </CFOUTPUT> <hr> <address> Demo Company, Inc. </address> </body> </html> CSE 135 Server Side Web Languages Lecture # 5 Common CFML Elements • <CFABORT> • <CFINSERT> • <CFAPPLICATION> • <CFLOCATION> • <CFLOOP> • <CFCOL> • <CFMAIL> • <CFCONTENT> • <CFOUTPUT> • <CFCOOKIE> • <CFPARAM> • <CFERROR> • <CFQUERY> • <CFFILE> • <CFREPORT> • <CFHEADER> • <CFSET> • <CFIF> • <CFTABLE> • <CFUPDATE> • <CFINCLUDE> CSE 135 Server Side Web Languages Lecture # 5 CFM Summary • Very focused on building DB driven sites • Very high level (like a 4GL) • Tag like so integrates well with HTML • Some programmers find clumsy because not script like. However, later versions of ColdFusion addressed this, yet never lost that “baby coding” feeling for some people • Still Windows oriented despite appearing cross server – Attempt to revive platform in Flash/RIA/declarative guise • Interesting recent rise of tag based systems like XUL, XAML and others suggest CF might have been onto something all along CSE 135 Server Side Web Languages Lecture # 5 ASP Intro • Microsoft’s Active Server Pages (ASP) was (and still is to some degree) a very popular server parsed scripting framework – Bundled with IIS directly – Indicated by files ending in .asp – Does not specify language used is a framework • Not understood and often confused with VBScript or Jscript (MS JavaScript clone) – More code like but slightly less friendly than PHP and ColdFusion – With the rise of ASP.NET many class ASP folks unable to make the complexity leap moved to PHP or even Ruby CSE 135 Server Side Web Languages Lecture # 5 ASP Example Note <script> tag showing location of execution and language and script is delimited by <% %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <script language="VBScript" runat="Server"></script> <html> <head> <title>ASP Example</title> </head> <body> <h1>Breaking News</h1> <% = date() %> <p>Today the stock of a major software company <br> reached an all time high, making the Demo Company CEO<br> the world's first and only trillionaire.</p> </body> </html> CSE 135 Server Side Web Languages Lecture # 5 ASP Summary • ASP syntax can get more familiar to programmers, for example consider a similar database example – <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open ODBCPositions SQL = "SELECT JobTitle, Location, Description, HiringManager, PostDate FROM Positions" Set RS = Conn.Execute(SQL) Do While Not RS.EOF %> • Yet is it correct to want to get more complicated with script? Instead should we do simple tasks with scripts and do heavy lifting with objects? • Script + objects makes sense and in this respect you would find that CFM and ASP are more similar than they are dissimilar. Syntax issues more than anything. CSE 135 Server Side Web Languages Lecture # 5 Classic ASP is Back to the Future? • Today server-side scripting is taking a hard right turn towards JavaScript • Obvious reasons – All things JavaScript – Better to use one language than 2 or 3 or ... – Callback / Event Style Architecture makes sense for some types of network apps • Interestingly classic ASP was often written in JScript (it was language neutral and usually VBScript

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    86 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us