CPSC 371: Topics in Computer Science:
Server-side Java with JSP, Servlets, and Struts


   Department of Mathematics and Computer Science
   Hobart and William Smith Colleges

   Fall, 2003.

   Instructor:  David J. Eck  (eck@hws.edu)

   Monday, Wednesday, Friday, 1:55--2:50 PM.
         Room Lansing 300.


About The Course

Although Java first became famous as a technology for writing applets that run in Web browsers, the real force driving its increasing popularity has been server-side applications. On the server side, Java is used to create large-scale, high-performance interactive Web sites and Web applications. These applications use a variety of Java technologies that are collectively known as "J2EE" or "Java 2 Enterprise Edition." This course will cover some of the J2EE technologies, including servlets, JSP, and JDBC. Servlets are just objects that run on server computers. JSP (Java Server Pages) lets you use Java code in HTML pages. JDBC is used for accessing data stored in databases and is necessary because many Web applications use databases for long-term storage. Our book for this part of the course is Murach's Java Servlets and JSP, by Andrea Steelman and Joel Murach.

It's not easy to make complex interactive Web sites. Recently, a framework known as "Struts" has become popular for building such sites. Struts is built on top of servlets and JSP. You will learn about Struts in the second part of the course. We will be using Struts Kickstart, by James Turner and Kevin Bedell, as the textbook for this part of the course.


Assignments and Projects

A major goal of the course is for each person to create a Web site using Java server-side programming. There will be assigments throughout the course that will let you apply the material that we are learning to your site. To give some focus to the project, the site -- or a significant portion of it -- must be organized as a "Web portal" that provides services to some putative user community. The portal will have a user login facilty and will have other features such as customizable pages, message posting, and a ratings service. The topic of the site and the exact set of features will be up to you. In addition to grades for individual assignments along the way, your site will receive an overall grade at the end of the term based on the overall design and implementation.

There are many more topics related to server-side programming and interactive Web site development than we will be able to cover in the course. To bring some of these topics into the course to at least a small extent, you will do a group paper and presentation on some technology that is not otherwise covered in the course. Possible topics include Web services, Enterprise JavaBeans (EJB), the Java API for XML (JAX), XSLT, the JSP Standard Tags Library (JSTL), and the Expression Language (a new feature in the next version of JSP). Your group will research the chosen technology and prepare a paper summarizing what it is and how it is used. During the last week of the term, each group will do a presentation of their topic to the rest of the class.


Tests

There will be two tests in the course, plus a final exam. The tests will be given on Wednesday, October 8 and on Wednesday, November 19. The final exam will be in our usual classroom during the officially scheduled exam period, Tuesday, December 16, at 8:30. Although three hours are scheduled for the exam, it will only be a little longer than the one-hour in-class tests. The exam will cover material from throughout the course.


Grading

Your grade will be computed as follows:

                   First Test:           15%
                   Second Test:          15%
                   Final Exam:           20%
                   Your Web Site:        10%
                   Paper/Presentation:   15%
                   Other Assignments:    25%

Office Hours, E-mail, WWW

My office is room 301 in Lansing Hall. My office phone extension is 3398. I am on campus most days, and you are welcome to come in anytime you can find me there. I will announce office hours and post them on my office door as soon as my schedule is determined, but note that your office visits are certainly not restricted to my regular office hours.

My e-mail address is eck@hws.edu. E-mail is good way to communicate with me, since I usually answer messages within a day of receiving them. Occasionally, I will send out email to everyone in the class. You should be able to receive email at your "@hws.edu" email address. If you do not use your HWS email account regularly, you should set up that account to forward your mail to the email account that you do use.

The home page for this course on the World Wide Web is located at http://math.hws.edu/eck/cs371. This page will contain a weekly guide to the course.


Tentative Schedule for the Course

Week Of: Topics Reading
Sept. 1 Introduction to the course;
Overview of Web applications.
Murach, Chapters 1 and 2.
Sept. 8 Quick review of Java and HTML;
Introduction to JSP.
Murach, Chapters 3 and 4.
Sept. 15 More about JSP;
Introduction to Servlets.
Murach, Chapters 4 and 5.
Sept. 22 Web applications with JSP and Servlets;
Model 1 and Model 2 architectures.
Murach, Chapter 6;
Struts, Chapter 2.
Sept. 29 Using Sessions; HTTP. Murach, Chapter 7;
Struts, Chapter 4.
Oct. 6 Using JavaBeans for data.
TEST on Wednesday.
Murach, Chapter 8;
Struts, Chapter 5.
Oct. 13 Custom JSP tags.
(Fall Break; no class Monday.)
Murach, Chapter 9.
Oct. 20 Databases, SQL, and MySQL. Murach, Chapter 10.
Oct. 27 Using JDBC. Murach, Chapter 11.
Nov. 3 Introduction to Struts. Struts, Chapters 3 and 6.
Nov. 10 MVC in Struts. Struts, Chapters 7, 8, and 9.
Nov. 17 Struts configureation.
TEST on Wednesday.
Struts, Chapter 10.
Nov. 24 Introduction to Struts tags.
(Thanksgiving; no class Wed. or Fri.)
Struts, Chapter 11.
Dec. 1 Using Struts tags. Struts, Chapters 12, 13, and 14.
Dec. 8 Group presentations. None.
Dec. 15 Final Exam: Tuesday, Dec. 16, 8:30 AM