Web applications basics
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

Web Applications Basics PowerPoint PPT Presentation


  • 71 Views
  • Uploaded on
  • Presentation posted in: General

Web Applications Basics. Introduction to Web. Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that is responsible for accepting HTTP requests from clients and serving them HTTP responses

Download Presentation

Web Applications Basics

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Web applications basics

Web Applications Basics


Introduction to web

Introduction to Web

  • Web features

    • Clent/Server

    • HTTP

    • HyperText Markup Language

    • URL addresses

  • Web server - a computer program that is responsible for accepting HTTP requests from clients and serving them HTTP responses

  • Web application- a dynamic extension of a web or application server


Web applications components

Web Applications & Components

  • Two types of web applications:

    • Presentation-oriented (HTML, XML pages)

    • Service-oriented (Web services)

  • Web components provide the dynamic extension capabilities for a web server:

    • Java servlets

    • JSP pages

    • Web service endpoints


Web application interaction

Web Application Interaction

  • [client] sends an HTTP request to the web server

  • [web server]HTTP request HTTPServletRequest

  • This object is delivered to a web component, which can interact with JavaBeans or a DB to generate dynamic content

  • [web component] generates an HTTPServletResponse or pass the request to another web component

  • [web server]HTTPServletResponse HTTP response

  • [web server] returns HTTP response to the client


Web application interaction1

Web Application Interaction


Web components

Web Components

  • Servlets- Java classes that dynamically process requests and construct responses

  • JSP pages - text-based documents that execute as servlets but allow a more natural approach to creating static content

  • Appropriate usage

    • Servlets - service-oriented applications, control functions

    • JSP - generating text-based markup (HTML, SVG, WML, XML)


Java web application technologies

Java Web Application Technologies

Java Servlet technology is the foundation of all the web application technologies


Web containers

Web Containers

  • Web components are supported by the services of a runtime platform called a web container

  • In J2EE, a web container "implements the web component contract of the J2EE architecture“

  • Web container services:

    • request dispatching

    • security

    • concurrency

    • life-cycle management

    • naming, transactions, email APIs


Web container examples

Web Container Examples

  • Non-commercial

    • Apache Tomcat

    • Jetty

  • Commertial

    • Sun Java System Application Server

    • BEA WebLogic Server

    • Oracle Application Server

    • WebSphere

  • Open source

    • JBoss


Deployment

Deployment

  • Web components have to be installed or deployed to the web container

  • Aspects of web application behaviour can be configured during application deployment

  • The configuration information is maintained in a XML file called a web application deployment descriptor


Web application development

Web Application Development

  • A web application consists of:

    • Web components

    • Static resource files (such as images)

    • Helper classes and libraries

  • The process for creating and running a web application is different from that of traditional stand-alone Java classes


Development cycle

Development Cycle

  • Develop the web component code

  • Develop the web application deployment descriptor

  • Compile the web application components and helper classes referenced bythe components

  • Optionally package the application into a deployable unit

  • Deploy the application into a web container

  • Access a URL that references the web application


Web modules

Web Modules

  • According to Java EE architecture and Java Servlet Specification:

    • Web components and static web content files such asimages are called web resources

    • A web module is the smallest deployable andusable unit of web resources

    • Web module corresponds to a webapplication

  • A web module has a specific structure


Web module structure

Web Module Structure

  • The top-level directory

    of a web moduleis the

    document root of

    the application

  • The document root contains:

    • JSP pages

    • client-side classes

    • client-side archives

    • static web resources


Web module structure1

Web Module Structure

  • The document root contains

    a subdirectory /WEB-INF/

  • web.xml: web application

    deployment descriptor

  • lib: JAR archives of

    libraries called by

    server-side classes


Web module structure2

Web Module Structure

  • classes: server-side classes:

    • servlets

    • utility classes

    • JavaBeans components

  • tags: tag files, which are

    implementations of

    tag libraries


Configuring web applications

Configuring Web Applications

  • Web applications are configured via /WEB-INF/web.xml file

  • Configuration options:

    • Map URLs to web components

    • Set initialization parameters

    • Map errors to error screens

    • Declare welcome files

    • Declare resource references


Mapping urls to web components

Mapping URLs to Web Components

  • When a request is received by the web container it must determine which web component should handle the request

  • Need to add a servlet definition and a servlet mapping for each servlet to web.xml file

<servlet>

<servlet-name>ServletName</servlet-name>

<servlet-class>ServletClass</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>ServletName</servlet-name>

<url-pattern>/path</url-pattern>

</servlet-mapping>


Initialization parameters

Initialization Parameters

  • It's possible to pass initialization parameters to the context or to a web component

  • Context parameters:

    <context-param>

    <param-name>name</param-name>

    <param-value>value</param-value>

    </context-param>

  • Servlet parameters (within servlet definition):

    <init-param>

    <param-name>name</param-name>

    <param-value>value</param-value>

    </init-param>


Handling errors

Handling Errors

  • Web container generates default error page

  • You can specify custom default page to be displayed instead

  • Steps to handle errors

    • Create appropriate error html pages for error conditions

    • Modify the web.xml accordingly


Example setting error pages

Example: Setting Error Pages

<error-page>

<exception-type>

exception.BookNotFoundException

</exception-type>

<location>/errorpage1.html</location>

</error-page>

<error-page>

<exception-type>

exception.BooksNotFoundException

</exception-type>

<location>/errorpage2.html</location>

</error-page>

<error-page>

<exception-type>

exception.OrderException

</exception-type>

<location>/errorpage3.html</location>

</error-page>


Example web xml

Example: web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN“"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<display-name>Your team project name</display-name>

<description>Team N servlets</description>

<context-param>

<param-name>name_of_context_initialization_parameter</param-name>

<param-value>value_of_context_initializtion_parameter</param-value>

</context-param>

<servlet>

<servlet-name>YourServlet</servlet-name>

<servlet-class>YourServletClass</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>YourServlet</servlet-name>

<url-pattern>/YourServlet</url-pattern>

</servlet-mapping>

</web-app>


War files

WAR Files

  • A web module can be deployed as an unpacked file structure or can be packaged in a JAR file known as a Web Archive File

  • WAR file can be created by:

    • executing jar command

    • using Ant target

    • using IDE (Eclipse for instance)

    • using Maven


Setting a context root

Setting a Context Root

  • A context rootidentifies a web application in a Java EE server

  • The server is responsible for mapping URL’s that start with a specific prefix to the location of a web application

  • Usually this is done with a web server configuration file


Using maven jetty

Using Maven & Jetty

  • A convenient way to develop, build, deploy and run Web application is by using:

  • Maven build tool

    http://maven.apache.org/

  • Jetty web server

    http://www.mortbay.org/


Creating directory structure

Creating Directory Structure

  • Maven 2 supports the notion of creating a complete project template with a simple command

  • To create Web project template need to use maven-archetype-webapp archetype

mvn archetype:create

-DgroupId=com.maven2example

-DartifactId=maven2example_webapp

-DarchetypeArtifactId=maven-archetype-webapp


Maven web directory structure

Maven Web Directory Structure

<root>/src/main/webapp/

- directory structure for a WAR


Packaging

Packaging

  • Executing the command

    mvn package

    creates a WAR file


Running with jetty

Running with Jetty

  • It’s easy to run application by using Jetty plugin for Maven

  • Jetty is an open-source, standards-based, full-featured web server implemented entirely in Java

  • First created in 1995

  • Latest version 6.1.5 / July 23, 2007


Running with jetty1

Running with Jetty

  • Add the Jetty plugin to the pom.xml

<build>

<finalName>maven2example_webapp</finalName>

<plugins>

<plugin>

<groupId>org.mortbay.jetty</groupId>

<artifactId>maven-jetty-plugin</artifactId>

<version>6.0.1</version>

</plugin>

</plugins>

</build>


Running with jetty2

Running with Jetty

  • Execute mvn jetty:run command

>mvn jetty:run

[INFO] Scanning for projects...

[INFO] Searching repository for plugin with prefix: 'jetty'.

[INFO] -----------------------------------------------------

---

[INFO] Building maven2example_webapp Maven Webapp

[INFO] task-segment: [jetty:run]

[INFO] -----------------------------------------------------

...

[INFO] Starting jetty 6.0.1 ...

...

[INFO] Started Jetty Server

  • Stop by Ctrl+C


Opening the application

Opening the Application

Open your web browser to

http://localhost:8080/


Opening the application1

Opening the Application

Valid URL is

http://localhost:8080/maven2example_webapp/


Re sources

Resources

  • J2EE Tutorial “Getting Started with Web applications”

    http://java.sun.com/javaee/5/docs/tutorial/doc/bnadr.html

  • Building Web Applications with Maven 2

    http://today.java.net/pub/a/today/2007/03/01/building-web-applications-with-maven-2.html

  • Filmiņa par Web 2 (5 minūtes)

    http://www.youtube.com/watch?v=6gmP4nk0EOE


  • Login