Hofstra University
University College for Continuing Education

M3181-02 Advanced Java Programming

instructor: Engin Yalt

home

Duke
Text Books:
Head First Servlets and JSP, Kathy Sierra
O'Reilly, Amazon
Java Servlet & JSP Cookbook, Bruce W. Perry
O'Reilly, Amazon
Designing Enterprise Applications with the J2EE Platform, 2nd Edition
free e-book, Addison-Wesley
Core J2EE Patterns Best Practices and Design Strategies
free e-book, Amazon
Java Almanac, by Sun
free e-book
Bitter Java, by Bruce Tate
free e-book

The Java Tutorial, by Sun
Java EE 5 Tutorial, by Sun
J2EE 1.4 Tutorial, by Sun
J2EE 1.3 Tutorial, by Sun
W3Schools excellent resource for HTML, SQL, XML
Download Java 2 Platform Standard Edition 5.0
JDK 5.0 Update 6   Installation Instructions
API Specification: J2SE 1.5 (Java 5)   J2SE 1.4

API Specification: Java EE 5   J2EE 1.4

MySQL Database (download) instructions
Connector J JDBC Driver for MySQL
Apache Tomcat Application Server (download) instructions
TextPad (an excellent text editor)
Eclipse (industry standard IDE)
Java Ranch (check out the Big Moose Saloon)
UML Tutorial


  Subject Class Work Home Work
4/11, 4/18 Intro to J2EE (architectural overview)
Java Beans/Value Object,   Transfer Object
SQL (reference) (tutorial)
JDBC (tutorial) (Java Almanac)
DAO (Core J2EE Patterns)
Test_JDBC.java
bookstore-ERD.jpg
bookstore-DAO.zip
bookstore.mdb
bookstore_mysql_data.zip
bookstore.sql
Create Value Object, DAO and Factory for Customer.
This should include: create, update
Create a class for Shopping Cart
(a combination of Order_Header and Order_Items)
4/25 Object-relational mapping
Object-Relational impedance mismatch
HTTP, HTML (HTML Tutorial)
MVC, JSP, Servlets
Best Practices
OOP for Shopping Cart
Designing Enterprise Apps: Ch 4 - Web Tier
Head First: Ch 1,2,3,4,5,7,8,11
Cook Book: Ch 1,2,3
bookstore_UML.ppt
bookstore_20070425.zip
SearchServlet: search product by keyword, and display in productList.jsp
CustomerServlet: register a customer and do the necessary checks:
- create HTML form
- make sure all fields are populated
- see if customerID exits or not
- validate email, look at the existance of @ and dot(.), and make sure (.) is after @
Shopping Cart: add item, remove item, (using test class)
5/2 HTTP Session Tracking (jsessionid, cookies, URL rewriting)
Serlets, JSP
bookstore_20070502.zip
create the Shopping Cart
5/9 Package Structure, Shopping Cart
XML, DTD, Schema, JAXP, SAX, DOM, JAXB, XSL, XSLT, XPath
JAXP Tutorial, API Overview
Free eBook, Java Almanac, xml.com
DOM_example.java
SAX_example.java
Submit Order
create order.xml for each order
5/16 Struts (front controller)
Read Designing Enterprise apps Ch 5,6, 11
JAXB article
EJB (Entity Bean, Session Bean, MDB)
Facade Pattern patterns corej2eepatterns
transactions ACID
JDBC Transactions
EJB Transcations
The Duke's Bank Application
JNDI tutorial article
Messaging Backbone
EAI MOM RV
JMS (p2p, pub/sub)
   
5/16 Network Security
Cryptography
Message Digest
PKI
Java Security
Web Services (XML, SOAP, WSDL, UDDI)
SOA
Security Overview
Passive Threats
Active Threats 1
Active Threats 2

MessageDigest_Example.java
KeyGenerator_Example.java
DES_Example.java
RSA_Example.java
 


JDJ - Digitial Edition
JDJMarch2006.pdf
JDJFeb2006.pdf
JDJJan2006.pdf
JDJDec2005.pdf
JDJNov2005.pdf
JDJOct2005.pdf





top
Setting up MySQL
Download MySQL
http://downloads.mysql.com/archives/mysql-4.0/mysql-4.0.17-win.zip

Unzip, and execute "setup.exe"...
Install it under C:\mysql
(this is the default folder; if you change this, additional configuration will be required.)

add "C:\mysql\bin" to the PATH.
To do this:
Right click My Computer;
Select Properties;
Select Advanced Tab;
Click on Environment Variables;
Click on PATH, then EDIT (under System Variables);
My PATH looks like this:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Java\jdk1.5.0_06\bin;C:\mysql\bin;.;

Double click winmysqladmin.exe under C:\mysql\bin\
If this asks for username/password, enter:
username: "admin"
password: "password"

Now, you should see the "trafic light" in the system tray, on the lower right corner, next to the clock.
It should be green color. (green is good)

Click on Start, Run; type "cmd", hit OK.
In the DOS window type "mysql" hit enter.
You should see:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.0.17-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

This means MySql is fully setup...

Let me know if you get stuck, I will try to walk you through, or I'll install it in class.

Here are some of the commands that you can execute after you get into the mysql mode.
show databases;
use [database name];
show tables;
describe [table name]
select * from .....

For complete list of commands refer to
http://dev.mysql.com/doc/refman/4.1/en/tutorial.html

And don't worry, you won't be spending much time in this console.
I will give you the database itself, which you'll place in the proper folder.



top
Setting up Apache Tomcat

YOU MUST INSTALL JDK 1.5 prior to doing this.
I assume you all did this for the Intro class. To check you have the right version:
C:\>java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode)


Download Tomcat from:
http://tomcat.apache.org/download-55.cgi
http://www.tux.org/pub/net/apache/dist/tomcat/tomcat-5/v5.5.16/bin/apache-tomcat-5.5.16.zip

Unzip, and place into: C:\apache-tomcat-5.5.16

Create new Environment Variables: (these could be different in your system)
CATALINA_HOME=C:\apache-tomcat-5.5.16
JAVA_HOME=C:\Program Files\Java\jdk1.5.0_06

To do this:
Right click My Computer;
Select Properties;
Select Advanced Tab;
Click on Environment Variables;
Click on New (under System Variables);
Enter CATALINA_HOME for "Variable Name";
Enter C:\tomcat5 for "Variable Value";
(repeat same steps to add JAVA_HOME)


CATALINA_HOME=C:\apache-tomcat-5.5.16
JAVA_HOME=C:\Program Files\Java\jdk1.5.0_06

Open
C:\apache-tomcat-5.5.16\bin
Double Click "startup.bat"

You should see:
Apr 8, 2006 11:39:30 PM org.apache.catalina.core.AprLifecycleListener lifecycleE
vent
INFO: The Apache Tomcat Native library which allows optimal performance in produ
ction environments was not found on the java.library.path: C:\Program Files\Java
\jdk1.5.0_06\bin;.;C:\WINDOWS\System32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS
;C:\WINDOWS\System32\Wbem;C:\Program Files\Java\jdk1.5.0_06\bin;C:\Java\j2sdk1.4
.2_04\bin;C:\Program Files\Symantec\pcAnywhere\;C:\Program Files\QuickTime\QTSys
tem\;C:\mysql\bin;.;
Apr 8, 2006 11:39:30 PM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Apr 8, 2006 11:39:30 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1469 ms
Apr 8, 2006 11:39:31 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Apr 8, 2006 11:39:31 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.16
Apr 8, 2006 11:39:31 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Apr 8, 2006 11:39:33 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Apr 8, 2006 11:39:34 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Apr 8, 2006 11:39:34 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/234  config=null
Apr 8, 2006 11:39:34 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Apr 8, 2006 11:39:34 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3562 ms

This means Apache Tomcat is started.

Open up Internet Explorer and go to http://localhost:8080/
You should see the Tomcat welcome page;