Apache Tomcat and Java EE Administration培训
Introduction to the Java Platform
The JVM, JRE, and JDK
Java SE versus EE
Apache Tomcat as a lightweight servlet/JSP container, and how this differs from full-blown Java EE application servers such as WebLogic, WebSphere, JBoss, and GlassFish
Architecture of Applications installed to Tomcat
Understanding classes versus JARs
Servlets
JSPs
JavaBeans
JNDI and datasources
Resources that your applications may call on other servers (web services, EJBs, etc.)
Installing Tomcat
Installing the Java Runtime Environment (JRE)
Tweaking the JRE for performance
Performing the actual Tomcat installation
Examining the Tomcat installation directories
bin
conf
lib
logs
temp
webapps
work
Configuring Tomcat
server.xml (detailed walkthrough)
web.xml
context.xml
Deploying Java EE Applications
Packaging JARs for deployment to Tomcat
Packaging WARs for deployment to Tomcat
Application server-neutral configuration versus application server-specific configuration
Overview of EARs and other archive types not supported by Tomcat, but supported by other Java EE application servers
Versioning Java EE applications
Managing the deployment of updated applications
Tomcat Valves
AccessLog and FastCommonAccessLog
RequestFilterValve
SingleSignOnValve (by request)
RequestDumperValve (by request)
Memory management and JMX monitoring
Understanding Java garbage collection
Using JAVA_OPTS, JMX and JConsole to monitor and tune Tomcat memory usage
Sizing Tomcat's JVM memory heap
Using JMX and JConsole to configure Tomcat via Tomcat's MBeans
Updating Tomcat's configuration via JMX "on the fly" without restarting Tomcat
Load testing with JMeter
Using VisualVM (new monitoring tool built into JDK 6) and PSI Probe
Controlling JMX MBeans via Ant
Logging and Troubleshooting
JULI logging
log4j logging
Understanding exceptions and thread dumps
Troubleshooting errors that occur in Tomcat
Troubleshooting errors generated by your deployed applications
Troubleshooting strategies applicable to application servers other than tomcat
Connecting databases with Tomcat applications
Classic JDBC approach
Better approach: JNDI resources
Setting up and monitoring database connection pools
Security
File system security
Java security manager
Realms, authentication, and authorization
SSL
Java VM and Tomcat Performance tuning strategies
Additional JVM tuning tips
Enabling parallel garbage collection
Building native connectors
Disabling/removing unneeded applications
Tuning incoming connections and database connection pools
Turning off Jasper development mode
Precompiling JSPs
Preloading servlets
Application-specific tuning suggestions
Tuning levers available in other application servers
The World Beyond Tomcat: Understanding Java EE Applications
Explanation of the Java EE APIs not supported by Tomcat: EJB, JMS, and many others
3rd party application frameworks overview (what they are and what administrators should know): Spring, Struts 1/Struts 2, JSF (including a discussion of ICEfaces, RichFaces, etc.)
Data tier frameworks and what administrators should know (Hibernate, JPA, etc.)
Features offered by WebLogic, WebSphere, and JBoss that are not found in Tomcat
Tomcat Other Features
Memory leak prevention and detection
Servlet 3.0, JSP 2.2, and EL 2.2 support (and the practical implications of this for Tomcat admins)
Cross-site request forgery prevention (and how to configure)
How Tomcat 7's new session management features prevent session fixation attacks
Alias support (which allow static content to be stored outside the WAR file)
Running Tomcat behind Apache httpd or IIS [this section would be taught using your web server and connector module of choice]
Why run Tomcat behind Apache httpd or IIS?
Installing mod_jk (Apache or Tomcat) or mod_proxy_ajp and mod_proxy_balancer (Apache 2.2 or later only)
Proxying traffic to Tomcat via AJP
Monitoring the status of your web server's connection to Tomcat
Load balancing Tomcat via mod_jk or mod_proxy_balancer
Tomcat Clustering
Configuring mod_jk (in Apache or IIS) or mod_proxy_balancer (Apache 2.2 or later only) as a load balancer
Hardware load balancing as an alternative to software load balancing
Sticky sessions
Configuring a shared session back-end
FileStore/JDBCStore (older approach, generally not recommended)
Using the <Cluster> tag
Configuring the application to be distributable
Setting up and testing failover