CSIS 6962: Server-Side Web Development and Programming

Instructor:

Dr. John R. Sullins

Office hours:    

Monday and Wednesday 9:00 – 10:00, 4:00 – 5:00,

Friday 11:00 – 12:00,

Or by appointment

Office: 314 Meshel Hall

Phone: (330) 941-1806

Email: john@cis.ysu.edu

Web site: http://cis.ysu.edu/~john/

   Check the web site regularly, as assignments and announcements will be posted here.

Description:

Configuration of web server software and the use of server-side programming. Server-side scripting in languages such as PHP and Java Server Pages. Database access and drivers. Security issues, including access control and secured transmissions.


Objectives:

  • Experience with server-side technologies for handling client requests.
  • Experience with a web container such as Tomcat.
  • Understanding of related technologies such as database drivers and email management.
  • Knowledge of web server security issues and tools.
  • Knowledge of server-side design methodologies such as session handling, validation, and the model-view-controller pattern.
  • Modification of content for specific platforms (such as mobile devices).

     

Prerequisites:

o     CSIS 2617: Data Structures and Objects or CSCI 6901: Principles of Computer Programming, or equivalent experience with programming. It is assumed that you are familiar with the basic concepts of object-oriented programming and software development.

o     CSIS 3722: Development of Databases, or equivalent experience with databases. Most server-side programming involves storing/accessing client-submitted information in a database.

Note that it is permissible to take CSIS 3722 concurrently with this course.

It is also assumed that you are familiar with html at least at a level covered in CSIS 1590 (including html tables), as we will be using the server-side tools to dynamically generate html response pages.


Textbooks:

     Required:

  • Murach’s Java Servlets and JSP, Second Edition, Andrea Steelman and Joel Murach, Murach Books, ISBN 978-1-890774-44-8.

Optional:

  • HTML for the World Wide Web with XHTML and CSS: Visual QuickStart Guide, Student Edition, 5th Edition by Elizabeth Casto, Peachpit Press, ISBN-10: 0-321-15068-6. If you have never worked with HTML before, you might find this very helpful.
  • If you have not programmed in Java before, a Java book might be useful. I have gotten recommendations from former students for either Sams Teach Yourself Java 2 in 21 Days (4th Edition) Cadenhead and Lemay, Sams, ISBN 978-0672326288 or Head First Java, 2nd Edition Sierra and Bates, O'Reilly Media, ISBN 978-0596009205.

 

Programming Assignments:

There will be 3 or 4 web server assignments during the course, in order to introduce you to server pages, servlets, and session management. These can be implemented on your home computer by installing the Java SDK, Jakarta Tomcat, and MySql software from the web. As with any other programming course, work on these assignments must be your own. See the policy sheet for more details.

 

Final Project:

The latter portion of the course will involve implementation of a multi-page web site of your own design, possibly as part of a group. This site will be a model-view-control architecture involving server pages, servlets, and sessions, as well as at least one other advanced concept (such as database access or mobile device design). More details will be provided later. .

 

Grading:                     

Exam 1 (date TBA)

20%

Exam 2 (date TBA)

20%

Server Programming Assignments

30%

Final Project (due last day of class)

30%

    Last day to withdraw with a "W": Thursday, October 30.
 

Tentative Course Outline:

WEEK

TOPICS

8/25

Introduction to client/server programming concepts, the Jakarta Tomcat web container

9/1

Introduction to Java Server Pages (no class Monday)

9/8

Advanced JSP tags and concepts; Simple form handling

9/15

Introduction to Java servlets

9/22

Error handling, validation, and redirection

9/29

Server-side site structure, modular site design, servlet mapping

10/6

Session management, implementing shopping carts

10/13

Client-side session management: cookies and URL rewriting

10/20

Sever-side database drivers; Java Database Connectivity programming

10/27

Efficient database access; The model-view-controller pattern for web server design

11/3

HTTP requests and responses; Understanding client capabilities

11/10

Designing content for mobile devices; WURFL and WALL

11/17

Using the Java Standard Tag Library in WALL; Server-created email

11/24

SSL and secure connections; Authentication and access restriction

12/1

Final project testing and presentation