1 / 15

CSE 190: Internet E-Commerce

CSE 190: Internet E-Commerce. Lecture 9: Application Tier Programming. App Tier Languages. Language paradigms, declarations, control flow, domain objects JSP -> Java ASP -> VB, C++ PHP -> PHP, Java, COM. JSP. Java paradigms

kita
Download Presentation

CSE 190: Internet E-Commerce

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE 190: Internet E-Commerce Lecture 9: Application Tier Programming

  2. App Tier Languages • Language paradigms, declarations, control flow, domain objects • JSP -> Java • ASP -> VB, C++ • PHP -> PHP, Java, COM

  3. JSP • Java paradigms • All functionality encapsulated in objects; functionality provided through methodspublic Classname { instance-variables-block; Type functionOne() { …. } Type2 functionTwo() { …. }} • Static typing • Garbage collection • Language reference: Java in a Nutshell, http://java.sun.com • Namespaces: major components located in hierarchical namespaces (e.g. com.sun.net.*) • Methods accessible outside of the class must be prefixed with ‘public’ token • Essentially C-like syntax (including // and /* … */ comments ) • Variables • TypevariableName [= initial-value]; • E.g. String auctionTitle = “BMW motorcycle”; • Array syntax: variableName[ index ] • Overloaded “+” for string concatenation • “one “+”two” == “onetwo” • Visibility: variables within methods visible until end of method • Visibility: variables within class are visible to all methods of class • Lifetime: intrinsic variables (e.g. int, float) have auto scope • Within page declaration: <jsp:useBean id=“variableName” class=“ClassName” scope=“[request | session | application | page]”> • Property initialization: <jsp:setProperty name=“variableName” property=“[propertyName | *”>

  4. JSP Control flow • Sequence • statement1;statement2; • All statements terminated by semicolon • Selection • if( boolean-value ) block • block ::= statement or { block } • switch( integral-type ) {case integral-value1: statement-list; break;default: statement-list; break;}

  5. JSP Control Flow • Iteration • for( int i = 0; i < 10; i ++ ) block; • while( boolean-condition ) block; • do { statement-list; } while( condition ); • No goto • Method invocation • object.actOnArguments( arg1, arg2, arg3 ); • Multithreading explicit • Use synchronized( variable ) to avoid raceconditions; may ignore this issue for DB calls

  6. JSP Types • Intrinsics • int, float, boolean, char, String • String is an intrinsic object, with methods length(), etc. • User defined types are always classes • No enum, structs, typedefs

  7. JSP domain objects • Request • getParameter(), getCookies() • Response • addCookie(), encodeURL(), setStatus(), sendError() • Out • print, println • Session • getId(), getAttribute(), invalidate(), setAttribute(), removeAttribute() • in • pageContext • config • exception • Overview: http://jakarta.apache.org/tomcat/tomcat-4.0-doc/servletapi/overview-summary.html

  8. JSP Review • How would I create a class accessible to my JSP page that would provide access to a list of Auction objects, each with a small set of attributes?

  9. JSP Review import java.util.*; public class Auctions { Vector _auctions; public Auctions() { reset(); } public int getNumAuctions() { return _auctions.size(); } public Auction getAuction( int num ) { return (Auction) _auctions.elementAt( num ); } public void reset() { _auctions.clear(); Auction auction = new Auction(); auction.setTitle( "BMW motorcycle" ); auction.setDescription( "Never used. Motivated seller moving to "+ "new location. Cash only." ); auction.setHighBidder( "southcorner17" ); _auctions.add( auction );

  10. JSP Review auction = new Auction(); auction.setTitle( "LOTR hobbit doll!!" ); auction.setDescription( "Limited edition cloth doll showing all "+ "Frodo's features, including leaf clasp." ); auction.setHighBidder( "(none)" ); _auctions.add( auction ); auction = new Auction(); auction.setTitle( "Automatic labeler" ); auction.setDescription( "The Brother X7 creates labels on demand "+ "through a simple keyboard. No waiting"+ " for the computer to boot up!" ); auction.setHighBidder( "compulsive_collector" ); _auctions.add( auction ); } }

  11. JSP Review public class Auction { Properties _properties; public Auction() { _properties = new Properties(); } public String getTitle() { return _properties.getProperty( "title" ); } public void setTitle( String title ) { _properties.setProperty( "title", title ); } public String getDescription() { return _properties.getProperty( "description" ); } public void setDescription( String description ) { _properties.setProperty( "description", description ); }

  12. JSP Review public String getHighBidder() { return _properties.getProperty( "highbidder" ); } public void setHighBidder( String bidder ) { _properties.setProperty( "highbidder", bidder ); } }

  13. PHP • PHP paradigms • Perl-inspired syntax (mix of C, shell, and more) • Functionality provided through functions or less commonly through methodsfunction printPage( $arg1, $arg2 ) { statement-list;}class MyClass { function foo() { … } } • Dynamically typed • Garbage collection • Language reference: http://www.php.net • Shell style comments: # this is a comment • Variables • $auctionTitle = “BMW motorcycle”; • Arrays: $arrayName[ $index ]. Are associative arrays! Created with array(). • String concatenation (dot operator): “one” . “two” == “onetwo” • Visibility: Auto scope

  14. PHP Control Flow • Sequence • statement1;statement2; • Selection • if( condition ) [ statement | { statement-list } ] [else …. ] • if( condition ) block elseif [ statement | block ] • switch()

  15. PHP Control Flow • Iteration • for(), while(), do {} while() • foreach( $arrayname as $val ) { … } • No goto • Method invocation: • $object->actionToPerform( $arg1, $arg2 ); • Persistent DB connections built in

More Related