This class will cover database applications using SQL and Java as the
main programming languages. We will start with simple Java line-oriented
user interaction for database applications, and later cover web-based
GUIs, working up to web-enabled applications involving database back ends.
You need proficient Java programming skills and CS430/630 for SQL, or an
equivalent introductory database course covering SQL, E-R diagrams, and
client programming (in C, Java or PL/SQL) including elementary
transactions. It is good to know basic HTML, including forms, and basic
XML, but these topics will be covered in homework. There are plenty of
tutorials for HTML and XML on the Web.
Note that I also teach CS437/637 Database-Backed Web Sites and Web Services, another web applications course, usually in the spring. You may take both classes if you wish. Both classes use databases for holding persistent data and use HTML5 and MVC for web UI, so there is some overlap. If you want to take both classes in different terms, please consider taking cs637 first, since it is more elementary. Here is a quick comparison of these classes:
|uses Java for business logic||uses PHP for business logic|
|requires Java expertise (cs210 or equivalent)||requires intermediate Java (cs110 or equivalent)|
|focus on large or enterprise sites||focus on smaller sites|
|basic HTML5, minimal CSS||more HTML5, CSS|
|layered architecture (presentation/service/DAO)||simpler sites, less layering emphasis|
|use MVC (Model/View/Controller) pattern for web UI||use MVC (Model/View/Controller) pattern for web UI|
|use Oracle or mysql interchangeably||use mysql|
|default to using eclipse IDE||default to using NetBeans IDE|
|run your own tomcat application server||run XAMPP, your own Apache webserver, mysql, PHP site|
|only discuss web services||study and implement web services|
If you are interested in preparing to use .NET, you should probably take CS436/636, since .NET is an enterprise platform, like JEE.
Student Information sheet,
with list of essential skills needed for this course
Text: print edition required for open-book exam use Java Servlets and JSP , third edition, by Joel Murach and Andrea Steelman, Murach & Assoc, 2014, ISBN 978-1-890774-44-8, available for example at Amazonor the bookstore. This book cover basic web technology (HTTP, HTML), servlets, JSP, using the MySQL database, JDBC and tomcat. Follow the book link for free sample chapters and code.
Check out your development PC: A Windows 7 system with at least 2GB of memory works well with these tools. Windows 8 or 10 is also OK. Alternatively, a Linux system or recent MacOSX system will work well. Setup directions are provided for Windows, Linux, and MacOSX.
First week: Get a UNIX/Linux account for cs636 by running apply, even if you already have a UNIX account here. This should be done end of the first week to list your username for Oracle and mysql accounts. Follow the Java/ant setup instructions for UNIX/Linux and your own home system.
Piazza Class Site
tomcat-8.5.zip Linux tomcat setup instructions Your port assignment
Notes, etc. from Fall, 2016
Access to cs.umb.edu systems from offsite Logging in and transferring files.
Student Information Form (in case you missed the first class)
Development Setup Installing Java and ant (if necessary) on your home system. Installing eclipse. A few things needed on cs.umb.edu hosts as well.
Database Setup Setting up direct SQL access for Oracle, setting up the needed tunnels to our database servers, using eclipse to access databases.
Java We are using version 7 or 8. JDK API Java classpath explained. javac tool doc java tool doc
eclipse : We are using version Oxygen, of the Eclipse
IDE for Java EE Developers Advanced
Java debugging tips
ant: We are using version 1.8 or 1.9. Apache Ant documentation site. For the tutorial, select the topic "Developing with Ant", and within that, "Hello World with Ant".
SQL Try out SQL queries at sqlzoo.net, Also see product SQL manuals below under Oracle, Mysql, HSQLDB. We will write portable SQL, so one script will work on all three databases, as much as possible.
JDBC: jdbc directory for JdbcCheckup and drivers tutorial Note that the JDBC API is part of the standard Java library. Chap. 12 of Murach has useful coverage.
at www.w3schools.com forms
tutorial tag reference,
with HTML 4/5 info HTML5
carosel (wait a bit for this to start) dropdown
in menu bar (also www.cs.umb.edu)
Web App Development, by Semmy Purewal (best to get a print copy,
for example $26 at amazon.com)
XML: XML tutorial at www.w3schools.com. We need basic XML for ant from the start, and for JPA configuration later
JUnit4: We are using version 4.12. JUnit4 in eclipse tutorial Calculator example project (zip)
Oracle: We are using version 12c. Sign up (free) for Oracle Technical Network. Oracle 12c documentation (SQL) Oracle error messages info.
MySQL MySql Setup We are using version 5.6 on topcat.cs.umb.edu. docs (SQL)
HSQLDB : We are using version 2.3.4. HSQLDB is an open-source in-memory DB with JDBC, great for unit testing. docs (SQL)
curl HTTP tool (do HTTP GETs, POSTs using command line, or from build.xml) Windows install instructions (usually available on Mac/Linux)
JEE, Java Enterprise Edition (API) We are using version 7, but only certain of its technologies: servlets, JSP, EL, JSTL, and JPA2, so all we need are certain jar files in addition to the Java JDK, plus tomcat to run the servlets.
Apache tomcat, our servlet container, i.e., web server with servlet capability: We are using version 8
REST: firstRest (zip) REST tutorial project from vogella.com, with build.xml similar to our other projects.