+ All Categories
Home > Documents > Introductions

Introductions

Date post: 24-Feb-2016
Category:
Upload: byrd
View: 19 times
Download: 0 times
Share this document with a friend
Description:
Introductions. Two decades in software development Software Engineering Solutions, Inc. www.swengsol.com Technical Reviewer: Core JavaServer Faces 3 rd Edition “Top 1000” reviewer at Amazon.com. Why another Tomcat book?. Current focus is on administrators - PowerPoint PPT Presentation
Popular Tags:
26
Transcript
Page 1: Introductions
Page 2: Introductions

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.

Page 3: Introductions

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?

Page 4: Introductions

Pieces of the Puzzle Java EE HTML over HTTP Servlet Container.

Page 5: Introductions

Java EE

Page 6: Introductions

Uniform Resource Locatorshttp:// www.swengsol.co

m:80/myWebApp /adobe/invoices/EditInvoice ?id=x123;jsessionid=

scheme porthostcontext path

servlet path

path info

path parameters

query string

Page 7: Introductions

HTML over HTTP

Page 8: Introductions

Servlet Specification WAR file format Servlet Filter Listener Session web.xml

Page 9: Introductions

Servlet Container Interaction

Page 10: Introductions

Concurrency

Page 11: Introductions

The Tomcat Servlet Container

Top Level Components

Containers

Nested Components

Connectors

Page 12: Introductions

Container Overview

Note the shading …

our “baby server”

Pipeline pattern

Context helpers

Page 13: Introductions

Containment: Server and Service

<Server port="8005" shutdown="SHUTDOWN"><Service name="Catalina">

Protocol-specific processing

Protocol-agnostic processing

Page 14: Introductions

Containment: Connectors

<Connector port="80" protocol="HTTP/1.1" … />

Page 15: Introductions

Containment: Catalina Engine

<Engine name="Catalina" defaultHost="localhost” baseDir=“…”> …

</Engine>

Page 16: Introductions

Containment: Virtual Host

IP-based

Each FQHN resolves to a specific IP address

Needs dedicated IP addresses

Page 17: Introductions

Containment: Virtual Host

Name-based

Multiple FQHNs resolve to a single IP address

Host: request header interrogated Simple but requires help with SSL

Page 18: Introductions

Containment: Virtual Host

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" … >

Relative to CATALINA_BASE

Page 19: Introductions

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

Page 20: Introductions

Containment: Another View

Page 21: Introductions

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

Page 22: Introductions

RulesConsistency (always return same instance)Delegation (security)Visibility (Delegation hierarchy + CL inversion)

Advanced Topics: Java Class Loading First Principles

Page 23: Introductions

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

Page 24: Introductions

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

Page 25: Introductions

Advanced Topics: Web Application Class Loading

[1]

[2]

[3]

Page 26: Introductions

Thank You! [email protected] www.swengsol.com 651 270 8457

for training/consulting opportunities.


Recommended