Core web application development

Preview:

DESCRIPTION

 

Citation preview

Core Web Application Development Using Servlet & JSP

Bahaa FaroukOrganized

By

• Servlet– What is Java Servlet?– Servlet Life Cycle– Client Interaction & Session

• JSP– What’s JSP?– JSP Life Cycle– What’s JSP Contains?– JSP Scope & Implicit Objects

• Why Servlet & JSP?

Agenda

Web Application Development?

• Servlet– What is Java Servlet?– Servlet Life Cycle– Client Interaction & Session

• JSP– What’s JSP?– JSP Life Cycle– What’s JSP Contains?– JSP Scope & Implicit Objects

• Why Servlet & JSP?

Agenda

• An alternate form of server-side computation that uses Java

• The Web server is extended to support an API, and then Java programs use the API to create dynamic web pages

• Using Java servlets provides a platform-independent replacement for CGI scripts.

• Servlets can be embedded in many different servers because the servlet API, which you use to write servlets, assumes nothing about the server's environment or protocol.

What is Java Servlet?

• Initialization– the servlet engine loads the servlet’s *.class file in the JVM

memory space and initializes any objects• Execution– when a servlet request is made,

• a ServletRequest object is sent with all information about the request

• a ServletResponse object is used to return the response

• Destruction– the servlet cleans up allocated resources and shuts down

Servlet Life Cycle

Client Interaction• When a servlet accepts a call from a client,

it receives two objects: – A ServletRequest, which encapsulates the

communication from the client to the server. – A ServletResponse, which encapsulates the

communication from the servlet back to the client.

• ServletRequest and ServletResponse are interfaces defined by the javax.servlet package.

Request Header Example

Request Parameters

Cookies

Session Capabilities• Session tracking is a mechanism that servlets use to

maintain state about a series of requests from the same user(that is, requests originating from the same browser) across some period of time.

• Session tracking capabilities. The servlet writer can use these APIs to maintain state between the servlet and the client that persists across multiple connections during some time period.

Sessions

• Servlet– What is Java Servlet?– Servlet Life Cycle– Client Interaction & Session

• JSP– What’s JSP?– JSP Life Cycle– What’s JSP Contains?– JSP Scope & Implicit Objects

• Why Servlet & JSP?

Agenda

What is JSP?

• A Java Servlet is a Java program that is run on the server– There are Java classes for retrieving HTTP requests and

returning HTTP responses– Must return an entire HTML page, so all tuning of the page

must be done in a Java program that needs to be re-compiled

• Java Server Pages (JSP) – use HTML and XML tags to design the page and JSP scriplet

tags to generate dynamic content (Easier for separation between designer & developer)

– use Java Beans and useful built-in objects for more convenience

JSP Life Cycle• JSP page (MyFirstJSP.jsp) – Translated to Servle (MyFirstJSP.servlet) – Compiled to class (MyFirstJSP.class)– Loaded into memory (Initialization)– Execution (repeats)– Destruction

• Any change in JSP page automatically repeats the whole life cycle.

Introduction• A Java Servlet is a Java program that is run on the

server– There are Java classes for retrieving HTTP requests and

returning HTTP responses• Java Server Pages (JSP) – use HTML and XML tags to design the page and JSP scriplet

tags to generate dynamic content– use Java Beans, which are reusable components that are

invoked by scriplets

What do JSPs contain?• Template data – Everything other than elements (eg. Html tags)

• Elements– based on XML syntax

• <somejsptag attribute name=“atrribute value”> BODY </somejsptag>

– Directives– Scripting

• Declarations• Scriptles• Expressions

– Standard Actions

Directives• <%@ directivename attribute=“value”

attribute=“value” %>• The page directive– <%@ page ATTRIBUTES %>– language, import, Buffer, errorPage,…– <%@ page languange=“java”

import=“java.rmi.*,java.util.*” %>• The include directive– <%@ include file=“Filename” %>– the static file name to include (included at translation

time)• The taglib directive– <% taglib uri=“taglibraryURI” prefix=“tagPrefix” %>

Scripting (Declaration, Expressions, Scriptlets)• <%! . . %> declares variables or methods – define class-wide variables– <%! int i = 0; %>– <%! int a, b; double c: %>– <%! Circle a = new Circle(2.0); %>– You must declare a variable or method in a jsp page before

you use it– The scope of a declaration is the jsp file, extending to all

includes

• <%= . . %> defines an expression and casts the result as a string

Scripting II• <%= . . %> can contain any language expression, but

without a semicolon, e.g.• <%= Math.sqrt(2) %>• <%= items[I] %>• <%= a + b + c %>• <%= new java.util.Date() %>• <% . . %> can handle declarations (page scope),

expressions, or any other type of code fragment• <% for(int I = 0; I < 10; I++) {

out.println(“<B> Hello World: “ + I); } %>

JSP and Scope

• Page - objects with page scope are accessible only within the page where they are created

• Request - objects with request scope are accessible from pages processing the same request where they were created

• Session - ojbects with session scope are accessible from pages processing requests that are in the same session as the one in which they were created

• Application - objects with application scope are accessible from pages processing requests that are in the same application as the one in which they were created

• All the different scopes behave as a single name space

Implicit Objects

• These objects do not need to be declared or instantiated by the JSP author, but are provided by the container (jsp engine) in the implementation class

• request Object (javax.servlet.ServletRequest)• response Object (javax.servlet.ServletResponse)• session Object (javax.servlet.http.HttpSession)• application Object• out Object• config Object• page Object• pageContext Object (javax.servlet.jsp.PageContext)• exception

Number guess - Browser Output

• Servlet– What is Java Servlet?– Servlet Life Cycle– Client Interaction & Session

• JSP– What’s JSP?– JSP Life Cycle– What’s JSP Contains?– JSP Scope & Implicit Objects

• Why Servlet & JSP?

Agenda

Why Servlet/JSP?What is an Enterprise Application?• Reliable• Scalable• Maintainable• Manageable

– If you are developing an Enterprise Application for whose daily transactions are millions?

• Performance? Scalability? Reliability?

hp

Questions?

Recommended