evolution of jsp€¦ · package the javax.servlet.jsp.jsppage interface contains 2 methods public...

Post on 25-Jul-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Evolution of JSP

CGI-Common Gateway Interface Complex Process management

Not Scalable

Servlet Java code

JSP No java code

Embed with HTML

Anand & Bhautik

JSP

Java Server Page is a server-side program

that is similar in design and functionality to a

Java Servlet.

JSP file has extension .jsp

JSP tags <% %>

Anand & Bhautik

How JSP file is executed?

Web server

Servlet Engine

JSP Engine

JSP documents

Compiled

servlet

HTML

documents

HTTP Request HTTP Response

Anand & Bhautik

Steps:

The client sends request to the browser

The server sends JSP file to JSP engine

It converts to servlet, compile for the first time and then load.

The servlet runs and generates HTML

The server sends HTML to browser

Anand & Bhautik

JSP vs ASP

JSP are translated once to byte code.

They are interpreted when file is

modified.

ASP are compiled every time

JSP runs on all web servers

ASP runs on Microsoft web server

cc

Anand & Bhautik

JSP Vs Servlet

JSP is on top of servlet API.

Servlet provides dynamic contents

using java code

JSP also provides dynamic contents

but is simpler to write than servlet

Anand & Bhautik

JSP Life Cycle

The lifecycle of JSP is controlled by three

methods which are automatically called

when a JSP is requested and when the

JSP terminates normally. These are:

jspInit ()

_jspService()

jspDestroy()

Anand & Bhautik

Init()

jspInit() method is identical to the init()

method in a Java Servlet and in applet.

It is called first when the JSP is requested

and is used to initialize objects and

variables that are used throughout the life

of the JSP.

Anand & Bhautik

Service()

_jspService() method is automatically

called and retrieves a connection to HTTP.

It will call doGet or doPost() method of

servlet created.

Anand & Bhautik

Destroy()

jspDestroy() method is identical to the destroy() method in Servlet.

The destroy() method is automatically called when the JSP terminates normally.

It isn’t called by JSP when it terminates abruptly.

It is used for cleanup where resources used during the execution of the JSP ate released, such as disconnecting form database.

Anand & Bhautik

Package

The javax.servlet.jsp.JspPage interface contains 2 methods

public void jspInit()

It is invoked when JSP is first initialized.

public void jspDestroy()

It is invoked when JSP is about to be destroyed by the container.

The javax.servlet.jsp.HttpJspPage interface contains 1 method

public void _jspService(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException

Anand & Bhautik

Life cycle

Initialize

public void jspInit()

Destroy

public void jspDestroy()

Handles client requests and generate responses

void _jspService(HttpServletRequest req,HttpServletResponse)

throws ServletException, IOException

Anand & Bhautik

JSP Elements

Element is that part of code which is

processes on the server. There are three

types of JSP Elements:

Directive Elements

Scripting Elements

Action Elements

Anand & Bhautik

Directive Elements:

JSP directive serve as message to the JSP

container for the JSP.

They are used to set global values such as class

declaration, methods to be implemented, output

content type etc.

They do not produce any output to the client.

All directives have scope of the entire JSP file.

Anand & Bhautik

Syntax

Directives are characterized by @ character

within the tag.

Syntax:

<%@ directivename attribute=”value”

attribute=”value” %>

Anand & Bhautik

Types of Directive

The two directives are:

The page directive

The include directive

Anand & Bhautik

Page Directive

The page directive defines a number of

important attributes that affect the whole page.

A single JSP can contain multiple page

directives.

There can be only one occurrence of any

attribute/value pair defines by page directive

except import attribute.

<% @ page ATTRIBUTES %>

Anand & Bhautik

Page directive Attributes

Attribute Description Default

Language Defines the scripting language to be

used.

“java”

Extends It is fully qualified class name of super class

that the generated class must extend

Omitted

Import Comma separated list of packages or classes. Omitted

Session Specifies if the page participated in an

HTTP session

“true”

Buffer If value is “none” then no buffering occurs

and all o/p is written directly. If buffer size is

specified then o/p is buffered with buffer size

not less than that specifed

8KB

Anand & Bhautik

Contd.

Autoflush If true, buffer is flushed automatically

when it is full If false, a runtime exception

is thrown to indicate buffer overflow

“true”

isThreadSafe If “false”, it processes them one at a time

implementing

singleThreadModel interface

“true”

Info Defines informative string Omitted

isErrorPage If “true”, then implicit object exception is

available which is instance of class

java.lang.Throwable

“false”

ErrorPage Define a URL to another JSP that is

invoked if an unchecked runtime

exception is thrown omitted

Omitted

contentType Define MIME type for the response of the

JSP page.

text/html

Anand & Bhautik

Example

<%@page language=”java”

import=”java.sql.*” buffer=”12kb”

errorPage=”error.jsp” %>

Anand & Bhautik

The include Directive

This directive notifies the container to include the content of the resource in the current JSP, inline, at the specified place.

The contents of the included file are parsed by the JSP and this happens only at translation time.

The included page should not be another dynamic page.

<%@ include file=”filename” %>

Anand & Bhautik

Attributes Description

file The static filename to include

E.g.:

<%@ include file=”header.html” %>

Anand & Bhautik

Scripting Elements

Scripting elements are used to include

scripting code within the JSP.

They allow users to:

declare variables and methods

include arbitrary scripting code

evaluate an expression.

Anand & Bhautik

Types of scripting elements

The three types of scripting elements are:

Declaration <%! %>

Scriplets <% %>

Expression <%= %>

Anand & Bhautik

Declaration

A declaration is a block of java code in a JSP that

is used to define class wide variable and method in

generated class file.

Declarations are initialized when the JSP page is

initialized and have “class” expression or code.

A declaration block is enclosed between <%! %>

<%! Java variable and method declaration (s) %>

Anand & Bhautik

Example

<html>

<body>

<%!int i=0;

public mymethod();%>

</body>

</html>

Anand & Bhautik

Scriplet

A scriplet is a block of code that is executed at request processing time

.

A scriplet is enclosed between <% and %>

JSP get compiled into a servlet and all the code appearing between <% and %> in the JSP, put into the _jspService() method to this servlet.

<% Java code %>

Anand & Bhautik

Example

<html>

<body>

<%

for(int I=0;I<10;I++)

{

out.println(“<b> Hello”+ i +”</b>”);

}

%>

</body>

</html>

Anand & Bhautik

Expression

An expression is a shorthand notation for a

scriplet that outputs a value in the response

stream to the client.

When the expression is evaluated, the result is

converted to a string and displayed.

An expression is enclosed within <%= %>.

<%= Java expression to be evaluated %>

Anand & Bhautik

Example

<html>

<body>

<%! int i=0;%>

<%

i++;

%>

<%= “This page is accessed “ + i +”times” %>

</body>

</html>

Anand & Bhautik

Action Elements

Actions are specific tags that affect the runtime behavior of the JSP and affect the response sent back to the client.

The standard action types are:

<jsp:param>

<jsp:include>

<jsp:forward>

<jsp:plugin>

Anand & Bhautik

<jsp:param>

The <jsp:param> action is used to

provide other tags with additional

information in the form of name value

pairs.

This action is used in conjunction with

jsp:include, jsp:forward and jsp:plugin

actions.

Anand & Bhautik

Attributes

Attribute Description

Name

value

The key associated with the attribute

The value of the attribute

<jsp:param name=”t1” value=”abc” >

Anand & Bhautik

<jsp:include>

This action allows a static or dynamic resource to be include in the current JSP at request time.

The resource is specified using the URL format as include directive.

As included page has access only to the JspWriter object and it cannot set header and cookies. A request time exception is thrown if this is attempted.

If page is buffered then the buffer is flushed prior to the inclusion.

<jsp:include page= “filename” flush = “true” />

Anand & Bhautik

<jsp:include page= “/header.jsp” flush = “true” >

<jsp:param name=”t1” value=”abc” >

</jsp:include>

A jsp:include action may have one or more jsp:param tags in its body, to provide additional name-value pairs.

The included page can access the original request object, with both the original and the new parameters.

If the parameter names are same, the old values are kept intact, but the new values take precedence over existing values. (t1=abc,def,xyz).

Anand & Bhautik

Attributes

Attribute Description

Filename

flush

The resource to include

The value must be true

Anand & Bhautik

Attributes

Include Syntax Done when Included

content

Parsing

Directive

Action

<%@include file=”filename”%>

<jsp:include page=”filename”%>

Compilation

time

Request

Processing

time

Static

Static

or dynamic

Container

Not

Parsed but

included in

container

Anand & Bhautik

<jsp:forward>

The jsp:forward action allows the request to be forwarded to another JSP, a servlet or a static resource.

<jsp:forward page= “url” />

or

<jsp:forward page=”url”>

<jsp:parame name=”paramname” value=”val”/>

</jsp:forward>

Anand & Bhautik

example

Execution in current JSP stops when it encounters jsp:forward tag.

The buffer is cleared. If output stream was not bufferd and some output has been written to it, a jsp:forward action will throw a java.lang.IllegalStateException.

Example

<jsp:forward page=”/search/results.jsp” />

Anand & Bhautik

<jsp:plugin>

The jsp:plugin action is used to generate client browser specific HTML tags that ensures java plug-in software is available, followed by execution of the applet or Java Bean component specified in the tag.

The jsp:plugin tag can have two optional tags

<jsp:param> to pass additional parameters

<jsp:fallback> to specify the contents to be displayed if plug-in cannot be started.

Anand & Bhautik

Attribute Details Required

Type Applet/bean yes

code Name of class file Yes

codebase Path where class file is saved No

align Alignment on screen No

height Height of window No

width Width of window No

hspace Horizontal space No

vspace Vertical Space No

title Title of window No

name Name of window No

nspluginurl URL where JRE plugin can be downloaded for

Netscape Navigator

Only if java plugin s/w needs to

be installed

iepluginurl URL where JRE plugin can be downloaded for

internet explorer

Only if java plugin s/w needs to

be installed

Anand & Bhautik

Example

<html>

<body>

<jsp:plugin type=”applet” code=”app” codebase=”/classes/applet” height=”100” width=”100”>

<jsp:params>

<jsp:param name=’color” value=”black”/>

</jsp:params>

<jsp:fallback>Browser could not support</jsp:fallback>

</jsp:plugin>

</body>

</html>

Anand & Bhautik

Comments and Template

Data

Comments

Comments are useful to people building and maintaining pages.

They are useful to authors but useless for readers.

HTML comments are regular part of the document, it shows up if users use “view source” in the browser

This makes the download time a tiny fraction of second longer. A more serious concern is that sometimes HTML comments contain implementation details that might be confidential.

Anand & Bhautik

JSP’s solution is to replace the above HTML comments with a JSP comments, like

<%-- --%>

When JSP engine sees this tag, it recognizes it as comment and does not put into the servlet it builds.

The comments will thus never be sent to the user and will not show up when the user does a view source.

Anand & Bhautik

Template

The index page consists of three sections:

The header

The navigation area

The content area.

Different pages have different contents but it is reasonable to except that header and navigation will be repeated over the site.

It would be headache because developers need to place everything in its place. The cure of this nightmare is called Templating.

Anand & Bhautik

Template is HTML page with some spaces where

text should be, and somewhere to indicate where

text can be found.

This makes it possible to keep header in exactly

one file and let each page have a space that this

file should fill.

<%@ inlcude file=/header.jsp”<tr>

Anand & Bhautik

Implicit Objects

JSP tries to simplify the work of developers and provides certain implicit objects accessible within the JSP.

These objects do not need to be declared or instantiated by the JSP author, but are provided by the container in the implementation class.

All implicit objects are available only to scriplets or expression and are not available in the declaration. They are only available in _jspService() method of generated servlet.

Anand & Bhautik

Implicit Objects

request

response

out

session

config

exception

application

Anand & Bhautik

request

The request object has request scope, and

is the instance of

javax.servlet.ServletRequest.

It encapsulates the request coming from the

client and being processed by the JSP. It is

passed to the JSP by the container, as a

parameter to the _jspService() method.

Anand & Bhautik

HttpServletRequest

getParameter()

getParameterNames()

getParameterValues()

getHeaders()

getQueryString()

getRemoteAddr()

getRemoteHost()

getAttribute()

setAttribute()

getAttributeNames()

getCookies()

getSession()

Anand & Bhautik

response

The response object has page scope, and is the instance of class javax.servlet.ServletResponse

It encapsulates the response generated by the JSP, to be sent back to the client in response to the request.

It is generated by the container and passed it the JSP as parameter to the _jspService() method, where it is modified by the JSP.

Anand & Bhautik

HttpServletResponse

getWriter()

setContentType()

addCookie()

encodeURL()

sendRedirect()

setHeader()

setStatus()

Anand & Bhautik

out

The out object has page scope, and is an instance of class javax.servlet.jsp.JspWriter.

It represents the output stream opened back to the client. This is the PrintWriter used to send output to the client.

However in order to make the response object useful, this is buffered version of PrintWriter called JspWriter

Anand & Bhautik

session

The session object has session scope, and is an instance of class javax.servlet.http.HttpSession.

It represents the session created for the requesting client, and is only valid for HTTP requests.

Sessions are created automatically, so this variable exists even if there was no incoming session reference.

The one exception is if user uses session attribute of the page directive to turn sessions off, in which case attempts to reference the session variable cause translation errors for the JSP.

<%@page session=“true”%>

Anand & Bhautik

HttpSession

setAttribute()

getAttribute()

getAttributeNames()

removeAttribute()

getId()

getCreationTime()

getLastAccessedTime()

setMaxInactiveInterval()

isNew()

invalidate()

Anand & Bhautik

config

The config object has page scope, and is the instance of class javax.servlet.ServletConfig.

It represents the servlet configuration.

Example

<%

ServletContext sc=config.getServletContext();

RequestDispatcher rd=sc.getRequestDispatcher(“/new.jsp”);

rd.forward(request,response);

%>

Anand & Bhautik

ServletConfig

It is used to pass initialization and context

information to servlets

Methods

public abstract String getInitParameter(String name)

public abstract Enumeration getInitParameterNames()

Public abstract ServletContext getServletContext()

Anand & Bhautik

application

The application object has application

scope, and is the instance of class

javax.servlet.ServletContext.

It represents the context within which the

JSP is executing

Anand & Bhautik

ServletContext

getContext()

getServerInfo()

getInitParameter()

getInitParameterNames()

getAttribute()

setAttribute()

removeAttribute()

getRequestDispatcher()

Anand & Bhautik

Objects in JSP

Objects

request

response

out

session

config

application

interface

ServletRequest

ServletResponse

JspWriter

HttpSession

ServletConfig

ServletContext

Anand & Bhautik

Error handling in JSP

Types of error and exception

There are 2 types of exception

Translation time errors

Run Time Exception

Translation error occurs during page compilation, this results in an Internal Server Error (500).

An exception on other hand occurs when page is compiled and servlet is running.

Anand & Bhautik

Exception handling

The J2EE platform offers a great deal of control

over how to format error information when a web

component throws an unexpected exception.

Exception can be handled in JSP in three ways:

Dealing with exception with page directive

Dealing with exception in Deployment

Descriptor

Java Exception Handling mechanism

Anand & Bhautik

Dealing with exception

with page directive

The error page can be used to display a

more user-friendly error message. Page

Directive can be used to handle exception.

Two attributes of page directive errorPage

and isErrorPage are used to deal with

exception

Anand & Bhautik

Attributes

isErrorPage If “true”, then implicit object exception is available which is instance of class java.lang.Throwable

errorPage Define a URL to another JSP that is invoked if an unchecked runtime exception is thrown

Anand & Bhautik

Following methods are used with exception

object of class Throwable

public String getMessage()

public String getLocalizedMessage()

public StackTrace printStackTrace( )

Anand & Bhautik

exception

The exception object has page scope, and is

the instance of class java.lang.Throwable.

It refers to the runtime exception that

resulted in the error page being invoked, and

is available only in the error page (a page in

which isErrorPage=true)

Anand & Bhautik

example

<@page isErrorPage=”true”%>

<html>

<body>

The server has encountered following error

Exception<%=exception%>

Message<%=exception.getMessage()%>

Local Message<%= exception.getLocalizedMessage()%>

</body>

<html>

Anand & Bhautik

Dealing with exception in

Deployment Descriptor

The Web application deployment descriptor (web.xml) uses the <error-page> tag to define Web components that handle errors.

When an error occurs Web Server returns an HTML page that displays

either the HTTP error code or a page containing the Java error message.

You can define your own HTML page to be displayed in place of these default error pages or in response to a Java exception.

Anand & Bhautik

Three elements can be used with error-page:

<exception-type> It is an optional element. A fully

qualified class name of java exception type.

<error-code> It is also an optional element and

contains a valid HTTP error code.

<location> It is required field. It specifies the

location of resource to display in response to the

error

Anand & Bhautik

Example

<error-page>

<exception-type>java.lang.NullPointerException </exception-type>

<location>/error.html</location>

</error-page>

//error.html

<html><body>

<h1>There is some internal problem is a server</h1>

</body>

</html>

Anand & Bhautik

Using JSP error page

JSP pages, being web component, allow user to report not only an error that has occurred, but also what went wrong.

<error-page>

<exception-type>java.lang.SQLException</exception-type>

<location>/error.jsp</location>

</error-page>

Anand & Bhautik

error.jsp

<@page isErrorPage=”true”%>

<html><body>

The server has encountered following error

<%=exception%>

<%=exception.getMessage%>

<%= exception.getLocalizedMessage%>

<%= exception.printStackTrace()%>

</body>

<html>

Anand & Bhautik

Java Exception Handling

mechanism

The jsp1.1 specification added two java.lang.Exception subclasses JspException

• The JspException class represents a generic exception for the JSP packages. It can be found in the javax.servlet.jsp package.

JspError• The JspError class in the javax.servlet.jsp package is the

only predefined subclass of JspExcepton. It is meant to represent an unrecoverable error.

Anand & Bhautik

Class Hierarchy

Throwable

Error Exception

JspException

JspError

Anand & Bhautik

Example

<%

try

{

//jsp code

}

catch(JspException e)

{

out.println(e);

}

%>

Anand & Bhautik

Scope of JSP variable

Scope is the region in which variable is

accessible

Page scope

Request Scope

Session scope

Application scope

Anand & Bhautik

Page scope

Any object whose scope is the page will disappear as soon as the current page finishes generating.

It is equivalent to local scope but it is implemented differently.

An object with page scope may be modified as often as desired within the page, but all these changes will be lost when page exists.

Anand & Bhautik

Request scope

The second kind of scope is associated with request object.

The first page can place any information into the request scope, and the second page can look for the information and act on it.

One way to put data into the request scope is to do it manually by setting value using setAttribute() method and retrieves the value on forwarded page using getAttribute() method of HttpServletRequest.

Anand & Bhautik

Example

<%

request.setAttribute(“name”,request.getParameter(“t1”))

%>

<jsp:forward page=”/login.jsp”/>

name variable is used as long as request is chained

login.jsp

<html>

<body>

User id:<%=request.getAttribute(“name”)%> </body>

</html>

Anand & Bhautik

Session scope

Since user, not pages are really the focus of the site,

E.g.: Multiple users can see the same checkout page of shopping site, but each user sees his own selection.

In JSP terms data associated wit ha user is in the session scope.

A session does not correspond directly to a user; rather, it corresponds with a particular period of time the user spends at a site.

Anand & Bhautik

example

<%

session.setAttribute(“name”,request.getParameter(“t1”))

%>

<jsp:forward page=”/login.jsp”/>

name variable is used until user sign out

login.jsp

<html>

<body>

User id:<%=session.getAttribute(“name”)%> </body>

</html>

Anand & Bhautik

Application scope

There is one scope even bigger than

session scope, the application scope,

which extends across all users and all

pages.

It is useful for keeping data that multiple

users will see and appear on multiple

pages.

Anand & Bhautik

example

<%

application.setAttribute(“name”,request.getParameter(“t1”))

%>

<jsp:forward page=”/login.jsp”/>

name variable is used until user closes site

login.jsp

<html>

<body>

User id:<%=application.getAttribute(“name”)%> </body>

</html>

Anand & Bhautik

Implicit object scope

Objects

request

response

out

session

config

application

exception

Scope

request

Page

Page

Session

page

Application

page

Anand & Bhautik

Expression

language

Introduction

EL

Anand & Bhautik

Why EL?

Debugging and Maintaining site was

difficult.

Mix of HTML and scriplets (no separation

between presentation and logic)

MVC (Model-view-Controller)

EJB JSP BLTo create multiple views on same code

there is a need to separate logic and

view

Anand & Bhautik

JSP 2.0 incorporates the Expression

Language (EL) first introduced in JSTL

1.0.

EL makes it easier to integrate server-side

state with presentation output.

Anand & Bhautik

JSP 2.0 EL

The JSP 2.0 Expression Language (EL) is a

much-needed feature for Web developers who

want to build scriptless JSP pages.

It was designed as a part of the JSP Standard

Tag Library (JSTL) 1.0, and then JavaServer

Pages (JSP) 2.0 adopted and enhanced the EL.

Anand & Bhautik

JSP 2.0 EL

The expression language is an extension of the JSTL 1.0 EL,

that adds several new features.

The syntax of the expression language is simpler than a

custom tag, and usually requires no associated Java code.

Also, the expression language automatically handles

typecasting, null values, and error handling.

Anand & Bhautik

The EL defines an easy-to-use syntax for

accessing:

JavaBean properties

Scoped attributes

Initialization and request parameters

HTTP headers and cookies without using Java

scriptlets in JSP pages.

This makes the code more readable and

improves the maintainability of the Web pages.

Properties

Anand & Bhautik

EL has predefined Set of:

EL expression

Variable

Implicit objects

Literals and keywords

Operators

Anand & Bhautik

EL Expression

Expressions used to set attribute values are evaluated in the context of an expected type.

A JSP 2.0 EL expression is always written between the delimiters ${ and }.

If the result of the expression evaluation does not match the expected type exactly, a type conversion will be performed.

Anand & Bhautik

EL Variables

Variables are accessed by name.

Type conversion is automatic from the

variable's native type to a type that is

compatible with the requested operation.

Anand & Bhautik

Implicit objects

The JSP expression language defines a set of implicit objects:

pageContext: The context for the JSP page. Provides access to various objects including

servletContext: The context for the JSP page's servlet and any web components contained in the same application.

session: The session object for the client.

request: The request triggering the execution of the JSP page..

response: The response returned by the JSP page.

Anand & Bhautik

param: Maps a request parameter name to a single value

paramValues: Maps a request parameter name to an array of values

header: Maps a request header name to a single value

headerValues: Maps a request header name to an array of values

cookie: Maps a cookie name to a single cookie

initParam: Maps a context initialization parameter name to a single value

Anand & Bhautik

Scope Object

pageScope: Maps page-scoped variable names to their values

requestScope: Maps request-scoped variable names to their values

sessionScope: Maps session-scoped variable names to their values

applicationScope: Maps application-scoped variable names to their values

Anand & Bhautik

“.” operator

The "." operator is shorthand for calling a JavaBeans property

accessor for the property whose name is on the right-hand side

of the operator.

For example, the following expression in the sample page:

${pageContext.servletContext.servletContextName

}

actually executes as:

pageContext.getServletContext().getServletContext

Name()

Anand & Bhautik

[] operator

The [] operator is a polymorphic indexing operator that can

be used to index collections

The value inside the brackets is used as a key into a map, or

as a List or array index.

Eg:

${header["host"]} localhost:8080

${header["user-agent"]} Mozilla/5.0 (Macintosh;...)

Anand & Bhautik

Literals and Keywords

The JSP expression language defines the following literals:

Boolean: true and false

Integer: as in Java

Floating point: as in Java

String: with single and double quotes; " is escaped as \", ' is

escaped as \', and \ is escaped as \\.

Null: null

Reserved Words

The following words are reserved for the JSP expression

language and should not be used as identifiers.

and eq gt true instanceof or ne le false empty

not lt ge null div mod

Anand & Bhautik

operators

Arithmetic: +, - (binary), *, / and div, % and mod, - (unary)

Logical: and, &&, or, ||, not, !

Relational: ==, eq, !=, ne, <, lt, >, gt, <=, ge, >=, le.

Empty: The empty operator is a prefix operation that can be used to determine whether a value is null or empty.

Conditional: A ? B : C. Evaluate B or C, depending on the result of the evaluation of A.

Anand & Bhautik

The precedence of

operators

The precedence of operators highest to lowest, left to right is as follows:

[] .

() - Used to change the precedence of operators.

- (unary) not ! empty

* / div % mod

+ - (binary)

< > <= >= lt gt le ge

== != eq ne

&& and

|| or

? :

Anand & Bhautik

EL Expression Result

${1 > (4/2)} false

${4.0 >= 3} true

${100.0 == 100} true

${(10*10) ne 100} false

${'a' < 'b'} true

${'hip' gt 'hit‘} false

${4 > 3} true

${1.2E4 + 1.4} 12001.4

${3 div 4} 0.75

${10 mod 4} 2

${empty param.t1} True if the request parameter named t1 is null or an empty string

${param[‘t1']} The value of the request parameter named t1

${header["host"]} The host

Anand & Bhautik

EL API

The javax.servlet.jsp.el API consists of two

classes

• Expression ExpressionEvaluator

Two interfaces

• VariableResolver and FunctionMapper

Two exceptions

• ELException and ELParseException

It works with JSP 2.0 and Tomcat 5 and

above

Anand & Bhautik

top related