CSCI 345  Internet Programming
Fall 2010
Instructor: Dennis Higgins

This page is being updated for Fall 2010
Course syllabus
finals schedule (2010)
Text(s):
You don’t HAVE to buy these books but you will need references.  You may find books on spring, hibernate, struts, persistence, EJBs, servlets, network programming (including SOAP, RMI and XML) that are cheaper and provide sufficient reference for you.  There are many (!!!) tutorials on the web for Spring, Hibernate, Maven, Ant, Tomcat, and Servlets.  I will post ppt notes, but these may not provide enough detail for you. 

  1. for Servlets:
  • Core Servlets and Java Server Pages Vol1, Ed 2, Marty Hall and Larry Brown, 2004, SUN.
  • Java Servlet Programming Hunter & Crawford, 2nd Ed. (O’Reilly, 2001)  This is a good book, a bit old now but with no newer edition. Probably cheap used copies available online.
  1. for Struts:
  • Core Servlets and Java Server Pages Vol2, Ed 2, Marty Hall and Larry Brown, 2004, SUN.
  • Struts2 In Action, Brown, Davis, Stanlick, Manning Press
  1. for Spring: Spring in Action, Walls, Manning Press
  2. Ant tutorials and Maven text are online
  3. For EJBs?

This is an advanced programming course with prerequisite of CSCI 203.  Students are expected to know some rudimentary HTML - what it is, how it works, and how to create raw html.  Students must be capable programmers.  We will work principally in Java.  We will explore aspects of internet programming including main topics (not necessarily in this order):

  • XML:  XML: (eXtensible Markup Language) is the language used for configuration files in Spring, Hibernate, servlets, Struts, SOAP and other technologies. 
  • Servlets: Servlets are server-side programs and can access data in ways that applets cannot.  As Objects, they have persistence on the server. They can access the entire Java API and consequently can provide services similar to applets, albeit at a cost to the server.  Through the JDBC-ODBC bridge, servlets can be used to manipulate database information.
  • Ant: The build process.  File structure, copying & compilation of multiple files, deployment and un-deployment using Ant
  • Maven: The build process.  File structure, compilation of multiple files requiring different compilers, installation, deployment and un-deployment using Maven
  • MYSQL: Some rudimentary database queries
  • Spring: an MVC architecture model supporting IOC (inversion of control) and AOP (aspect-oriented-programming) to provide more elegant handling of security, transactions, and logging.
  • RMI:  Java has a proprietary way of handling distributed computing.  A process can invoke methods of remote objects located on networked computers.
  • Webservices: SOAP messaging.  We will use Axis if we cover this.  Since Flex can be easily configured to communicate with a webservice, we may build a Flex UI to connect to an Axis server. (SOAP uses an XML wrapper to package communications between a client and server and can run across platforms.  It provides RPC  which can be used like CORBA and RMI to distribute services across a network.)
  • Hibernate: decoupling database from the application.
  • Struts & Struts2 (which require JSP)

There will be projects or homework assignments involving our main course topics.

The campus labs have Java installed. If you use your own machine, you will want to install Java jdk and jre 1.6 including javax/servlets – or install Java EE -  which course ppts will help you find. You will probably want to install at least one IDE like Netbeans or Eclipse, although for some projects Textpad may work fine.   Be sure you install the Java Eclipse version, not the C++ version. Fitz 200 allows students to download and install software and modify the computer settings (particularly path and classpath settings).  This will be required for the course.  Students will need to run a servlet container. (Tomcat, Jetty, JBoss, and Glassfish are examples of servlet containers. The Netbeans IDE comes with Glassfish.  The Eclipse IDE can be configured with a Tomcat plugin.  Because of environment variables, Tomcat would need to go on a Fitz 200 lab machine or your own laptop.  Jetty can be “installed” and run on your p drive.  Details of where to find Netbeans, Eclipse, Tomcat and Jetty are in course references, available on the web, available online by searching, and in course powerpoints.)  Additionally, servlet programming will involve MySQL, now available from Oracle. Besides these, you will need many jar files, eg., the Spring jar files, java persistence and ejb jar files, and so on.

Links below will likely be updated:

Course Projects

21.  Extra credit project. Programming: GWT Project. Migrate the novice startup project into a full blown, albeit simple, CRUD using Java DTO and GWT datastore following notes at the end of this link.  Warning: this is pretty hard…Due at finals

 

 

 

Course PPT Links

Course HTML notes