Title: Build a Web Application on J2EE
1Build a Web Application on J2EE
2J2EE Scenario
- Client Web Server EIS Resources
- Client Application Server EIS Resources
- Client Web Server Application Server EIS
Resources
3Client Web Server EIS Resources
4Business to Business
5Web Application
- A web application is a collection of servlets,
html pages, classes, and other resources that can
be bundled and run on multiple containers from
multiple vendors. - A Web application is located on a central server
and provides service to a variety of clients. - Web applications provide dynamic and interactive
content to browser-based clients.
6Web Application Environment
7JDK
- All J2EE applications require the Java Developers
Kit to run Java classes or the Java Virtual
Machine (JVM). - Download JDK from java.sun.com for free
- Configure several environment variables.
- JAVA_HOME
- CLASSPATH
8Web Application Structure
9Container
- The container is an independent application that
creates an environment for web components.
10Functions of Container
- Life cycle management for components.
- Environment configuration.
- Resources.
11Web Container
- An entity that implements the Web component
contract of the J2EE architecture. - specify a runtime environment for Web components
that includes security, concurrency, life cycle
management, transaction, deployment, and other
services - provide the same services as a JSP container and
a federated view of the J2EE platform APIs. - can run a Web application that is tagged as
distributable and that executes across multiple
Java virtual machines running on the same host or
on different hosts.
12Web Container Provider
- Open Source
- Tomcat
-
- Business Product
- WebLogic
- WebShpere
-
-
13Tomcat
- Just a JSP, Servlets Container
- jakarta.apache.org/tomcat/index.html
14Application Container
- An entity that implements the Java Classes
contract of the J2EE architecture. - Java Classes include
- EJB
- other Java Classes
- access to the J2EE service and communication APIs.
15Application Container Provider
- Open Source
- JBOSS
-
- Business Product
- WebLogic
- WebShpere
- Silverstream
-
16Connectors
- The connector is where the abstract really meets
the concrete. - A connector is a translator between an enterprise
information system and the J2EE interfaces. - Another type of connector, a JNDI Service
Provider Interface, provides access to naming and
directory services.
17JDBC
- a JDBC driver, provides access to databases.
18JNDI
- provides access to naming and directory services
- provides a link between Java code and various
naming and directory services such as Domain Name
System (DNS), Novell Directory Service (NDS),
CORBA, and Network Information System (NIS). - allows you to access code and resources across
widely separated platforms and directory
structures through the use of a simple naming
scheme.
19Tools
- Ant
- IDE
- Jbuilder
- NetBeans
20Data format used in Web Application
- HTML
- JSP
- Image files
- Gif
- JPEG
- Class file
- Source code
- Complied code
- XML
- JAR file used in J2EE for packaging EJBs and
client-side Java Applications - WAR file web applications made from Servlets,
JSPs, and supporting classes - EAR file contain all of the components that make
up a particular J2EE application
21Web Application can be exist in
22Web Application Archive File
- Web applications can be packaged and signed,
using the standard Java Archive tools, into a Web
ARchive format (war) file. - When packaged into such a form, a META-INF
directory will be present which contains
information useful to the Java Archive tools.
23Basic Web Application Directory
24Root
- The root of this hierarchy serves as a document
root for serving files that are part of this
context. - For example,
- a web application located at /catalog in a web
server - the index.html file located at the base of the
web application hierarchy can be served to
satisfy a request to /catalog/index.html.
25WEB-INF
- contains all things related to the application
that arent in the document root of the
application - WEB-INF node is not part of the public document
tree of the application. No file contained in the
WEB-INF directory may be served directly to a
client.
26Contents of the WEB-INF directory
- /WEB-INF/web.xml deployment descriptor
- /WEB-INF/classes/ directory for servlet and
utility classes. - /WEB-INF/lib/.jar area for Java Archive files
which contain servlets, beans, and other utility
classes useful to the web application.
27Customize Web Application directory
28Web.xml
- The web.xml file format is defined in the Servlet
Specification, so this file format will be used
in every servlet-conforming Java servlet
container. - This file format is used in two places in Tomcat
CATALINA_BASE/conf directory - each web application.
29Deployment description of Web Application
- Web.xml
- The deployment elements that contain this
information are - env-entry
- ejb-ref
- resource-ref
30Example of Web.xml
- lt?xml version"1.0" encoding"UTF-8" ?gt
- lt!DOCTYPE web-app (View Source for full
doctype...)gt - - ltweb-appgt
- ltdescriptiongtOracle Test Applt/descriptiongt
- - ltlistenergt
- ltlistener-classgtStudentPackage.contextlisenterlt/
listener-classgt - lt/listenergt
- - ltresource-refgt
- ltdescriptiongtOracle Datasource
examplelt/descriptiongt - ltres-ref-namegtjdbc/myoraclelt/res-ref-namegt
- ltres-typegtjavax.sql.DataSourcelt/res-typegt
- ltres-authgtContainerlt/res-authgt
- lt/resource-refgt
- lt/web-appgt
31Configure resources used by Web Application
- use Server.xml to configure resources
- Web container runs in an object-oriented way
- dynamically builds its object structure at
runtime, based on the configuration files - each major element in the server.xml file creates
a software "object," and the ordering and nesting
of these elements sets up processing pipelines
that allow you to perform filtering, grouping.
32Context in server.xml
- A Context represents one web application within a
Tomcat instance. - the web site is made up of one or more Contexts.
33key attributes in a Context
Attribute Meaning
crossContext Specifies whether ServletContext.getContext(otherWebApp) should succeed (true) or return null (false)
debug Debugging level
docBase URL relative to virtual host
path Absolute path to the directory
privileged Specifies whether this context can run Container servlets, such as the Manager application
reloadable Specifies whether servlet files on disk will be monitored, and reloaded if their timestamp changes
34Example of Server.xml
- lt!-- buzzinservlet --gt ltContext path"/buzzin"
docBase"/home/ian/javasrc/threads/buzzin"
debug"0" reloadable"true"gt lt/Contextgt