Download [1] [2] [3] - Intertech Training

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Introductions
Two decades in software development
 Software Engineering Solutions, Inc.
www.swengsol.com
 Technical Reviewer:
Core JavaServer Faces 3rd Edition
 “Top 1000” reviewer at Amazon.com.

Why another Tomcat book?
Current focus is on administrators
 Tend to view Tomcat as a black box
 Exactly HOW does it do what it does?

Pieces of the Puzzle
Java EE
 HTML over HTTP
 Servlet Container.

Java EE
Uniform Resource Locators
scheme
host
port
context
path
servlet
path
path
info
query
string
path
parameters
http:// www.swengsol.com :80/myWebApp /invoices/EditInvoice /adobe ?id=x123;jsessionid=…
HTML over HTTP
Servlet Specification
WAR file format
 Servlet
 Filter
 Listener
 Session
 web.xml

Servlet Container Interaction
Concurrency
The Tomcat Servlet Container
Nested Components
Top Level Components
Containers
Connectors
Container Overview
Note the shading …
Pipeline pattern
Context helpers
our “baby server”
Containment: Server and Service
Protocol-specific processing
Protocol-agnostic processing
<Server
<Service
port="8005"
name="Catalina">
shutdown="SHUTDOWN">
Containment: Connectors
<Connector port="80" protocol="HTTP/1.1"
… />
Containment: Catalina Engine
<Engine name="Catalina"
defaultHost="localhost”
baseDir=“…”>
…
</Engine>
Containment: Virtual Host
IP-based


Each FQHN resolves to a specific IP
address
Needs dedicated IP addresses
Containment: Virtual Host
Name-based



Multiple FQHNs resolve to a single
IP address
Host: request header interrogated
Simple but requires help with SSL
Containment: Virtual Host
Relative to CATALINA_BASE
<Host
name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true" … >
Containment: Context
Vendor-specific
Vendor-agnostic
<Context path="/examples" ...>
Relative
to appBase
Context Fragment
locations:
META-INF/context.xml
CATALINA_HOME/conf/<EngineName>/<HostName>/<contextPath>.xml
Containment: Another View
Advanced Topics:
Java Class Loading First Principles

Benefits
 Late Binding (assembly of functionality)
 Security (single choke point)
 Customization (encrypt, generate, locate)
 Variance across Time
 Variance across Space
 Isolation Zones
Advanced Topics:
Java Class Loading First Principles

Rules
 Consistency (always return same instance)
 Delegation (security)
 Visibility (Delegation hierarchy + CL inversion)
Advanced Topics:
Java Class Loading First Principles

Available Options
 Implicit class loading:
MyClass myClass = new MyClass()
 Explicit class loading:
ClassLoader ldr =
ClassLoader.getSystemClassLoader();
Class cls = ldr.loadClass("MyClass");
MyClass myClass = (MyClass)
cls.newInstance();
Advanced Topics:
Java Class Loading











No parent
Native code in JVM
Core Java classes from rt.jar
JRE_HOME/jre/lib/ext
(implicit CLASSPATH)

Lets you override core
JDK classes
JAVA_HOME
/lib/endorsed
Classes on CLASSPATH
Truncated by Tomcat
CATALINA_HOME/lib
Visible to web apps and
Tomcat code
Directory configured in
[catalina.properties]
Visible only to Tomcat
code




Directory configured in
catalina.properties
Visible to all web apps
WEB-INF/classes and
WEB-INF/lib
Delegates to parent for
standard Java classes
Advanced Topics:
Web Application Class Loading
Thank You!
[email protected]
 www.swengsol.com
 651 270 8457
for training/consulting opportunities.
