1 / 30

CSCI 6962: Server-side Design and Programming

CSCI 6962: Server-side Design and Programming. Course Introduction and Overview. Topics. Introduction to Client-Server Web Architectures Java Server Faces and Active Server Pages Problems and Topics in Server-side Programming Programming Assignments. Client-Server Web Architecture.

etana
Download Presentation

CSCI 6962: Server-side Design and Programming

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. CSCI 6962: Server-side Design and Programming Course Introduction and Overview

  2. Topics • Introduction to Client-Server Web Architectures • Java Server Faces and Active Server Pages • Problems and Topics in Server-side Programming • Programming Assignments

  3. Client-Server Web Architecture • Client browser sends request for page to server • May contain form data and other information • Server sends response page and sends to client • May need to generate response page dynamically • Form parameters • Previous requests (such as items purchased so far) • Information in database Focus of this course

  4. Client-Server Web Architecture Request to www.csis.ysu.edu for Syllabus.html port Server john public_html Client Browser Syllabus.html www.csis.ysu.edu/~john/Syllabus.html Response containing Syllabus.htm as a long string (<html><head><title>CSCI 6962 Syllabus</title> </head><body>…)

  5. Dynamic Form Handling • Form data appended to request string Generates the request: http://www.cis.ysu.edu/~john/cgi-bin/test.pl&quantity=3 <FORM NAME="purchaseform" METHOD=GET ACTION=http://www.csis.ysu.edu/~john/cgi-bin/test.pl > Quantity: <INPUT TYPE="text" NAME="quantity" /> <BR /><BR /> <INPUT TYPE="submit" VALUE="SUBMIT"> /FORM>

  6. Form Handling Server must: • Listen on port for requests • Parse request to determine values of parameters • Dynamically generate appropriate response page based on parameter values • Send response page back to client

  7. Web Containers • Program running continuously on server • Runs code to handle requests • Built-in methods for parsing requests, generating responses • Handles other important functions: • Session tracking • Database access • Email generation • Security and encryption • …

  8. Web Containers http://homer.cis.ysu.edu/reciept.jsp&quantity=3 Port Client Server Browser Web Container Listen on port Execute code in requested server page Generate corresponding html page Constantly running in background

  9. Web Containers • Glassfish • Written in Java • Built on Apache Tomcat • NetBeans IDE • Acts as engine for Java servlets, Java Server Pages and Java Server Faces • Microsoft Internet Information Server (IIS) • Visual Basic/C# • Acts as engine for Active Server Pages

  10. Server-side Evolution • Servlets • Programmatically generating response page • Server pages • Inserting dynamically generated code into web page • Goal: separate web designand dynamic code • Server faces/Active server pages • Directly linking client-side form elements to server-side objects (JavaBeans) • Goal: separate web page development from underlying business logic

  11. Java Servlets Create output to response Get quantity from request Write response page as string to output with quantity inserted

  12. Java Server Pages Java code executed inside web page Resulting value inserted into html

  13. Java Server Faces • Use managed beans to control information • Data storage between pages • Computation methods (total bill, taxes, etc.) • Validation methods (positive quantity, items available) • Long-term storage (database read/write of orders) JSF web page JSF managed bean Web design team Business logic team

  14. Java Server Faces Bean stores quantity Getters and setters to allow access

  15. Java Server Faces Input bound to quantity property of bean XML tags specific to JSF

  16. Java Server Faces widgetBean quantity: 3 3

  17. Active Server Pages • Active Server Page approach:Create “form” which is translated to html

  18. Active Server Pages • Server-side code manipulates “form elements” • Subroutine called when page submitted • Data read from elements (actually request string) • Used to set value of other elements

  19. Active Server Pages • Resulting form translated to response page

  20. Why Two Platforms • Both widely used in practice • Other platforms (Springs, Ruby, etc.) based on JSF model • Different approaches but common ideas • Same underlying representation • Same best practices for web site design

  21. Other Major Topics • Session management • Modular web site design • Validation and error handling • Database manipulation • AJAX client-server communication • Security

  22. Session Handling • Most web transactions are sessions consisting of series of requests and responses • Must associate steps if multiple clients Who submitted this request?

  23. Modular Web Pages • Most pages on same site have similar content,layout, etc. • Goal: Write once, include in all pages • Tools: • Facelets (Java) • Master Pages (ASP)

  24. Form Validation • Detecting user error • Built-in validation tools • Correcting user error • Providing information or how to correct error • Preventing user error • Field types/values • Error tolerance

  25. Database Manipulation • Database driver provides access to databases • Built-in tools to manipulate/display data • JDBC: classes to query/manipulate database • Java Persistence API beans • ASP Data Source objects web container database server database database driver JSF page JPA bean JDBC DBMS

  26. AJAX Asynchronous JavaScript and XML Based on JavaScript running in browser JavaScript code sends data to server, reads response Response is simple data instead of entire page JavaScript code then modifies page without re-rendering it completely Method call Web Page Server JavaScript Return value

  27. Web Site Security • SSL/TLS for encryption • Certificates for server authentication • Secure programming against attacks • SQL injection • Cross-site scripting Server Request database server Client database Response Certificate

  28. Programming Assignments • Introductory Assignments • Simple Java Server Faces web site • Simple Active Server Pages web site • Web Site Project (four parts) • Modular user interface design • Validation and error handling • Database access • Shopping cart and other support objects

  29. Web Site Project • “E-Commerce” site of your design • You choose platform (JSF or ASP) Shipping/payment/ etc. information List of products List of products “Cart” of added products List of products List of products Individual Product pages with “add” option \Database of products and orders

  30. Background Knowledge • Java or C++ (for JSP) • May want to get Java reference • I will cover basics in class • Visual Basic or C# (for ASP) • Basics covered in class • If more familiar with C# can get corresponding text • Basic html (including forms and tables) • Basic SQL

More Related