View
217
Download
0
Category
Tags:
Preview:
Citation preview
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
http:// www.swengsol.com
:80/myWebApp /adobe/invoices/EditInvoice ?id=x123;jsessionid=…
scheme porthostcontext path
servlet path
path info
path parameters
query string
HTML over HTTP
Servlet Specification
WAR file format Servlet Filter Listener Session web.xml
Servlet Container Interaction
Concurrency
The Tomcat Servlet Container
Top Level Components
Containers
Nested Components
Connectors
Container Overview
Note the shading …
our “baby server”
Pipeline pattern
Context helpers
Containment: Server and Service
<Server port="8005" shutdown="SHUTDOWN"><Service name="Catalina">
Protocol-specific processing
Protocol-agnostic processing
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
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" … >
Relative to CATALINA_BASE
CATALINA_HOME/conf/<EngineName>/<HostName>/<contextPath>.xml
Containment: Context
<Context path="/examples" ...> Relative to appBaseContext Fragment locations:
META-INF/context.xml
Vendor-specific Vendor-agnostic
Containment: Another View
BenefitsLate Binding (assembly of functionality)Security (single choke point)Customization (encrypt, generate, locate)Variance across TimeVariance across SpaceIsolation Zones
Advanced Topics: Java Class Loading First Principles
RulesConsistency (always return same instance)Delegation (security)Visibility (Delegation hierarchy + CL inversion)
Advanced Topics: Java Class Loading First Principles
Available OptionsImplicit 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 First Principles
Advanced Topics: Java Class Loading
No parent Native code in JVM Core Java classes from rt.jar JRE_HOME/jre/lib/ext
(implicit CLASSPATH)
Classes on CLASSPATH Truncated by Tomcat CATALINA_HOME/lib Visible to web apps and
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
Directory configured in [catalina.properties]
Visible only to Tomcat code
Lets you override core JDK classes
JAVA_HOME/lib/endorsed
Advanced Topics: Web Application Class Loading
[1]
[2]
[3]
Thank You!
damodarchetty@gmail.com www.swengsol.com 651 270 8457
for training/consulting opportunities.
Recommended