Web Technologies Java Beans & JSP

clangpotatoSoftware and s/w Development

Oct 28, 2013 (4 years and 12 days ago)

132 views

Web Technologies

Java Beans & JSP

By

Praveen Kumar G

October 29, 2013

© 2006 IIITM
-
K

2

Java Beans

What Are Beans?



Beans are standard java objects.




Must have a zero
-
arguments constructor.


Should have no public fields.


Values should be accessed through method calls, getXxx,
setXxx & isXxx.



October 29, 2013

© 2006 IIITM
-
K

3

Java Bean
(example)

public class Person {


private int


age;


private String

name;


… … …


public void setAge(int age){



this.age = age;


}


public void setName(String name){



this.name = name;


}


public int getAge(){



return this.age;


}


public String getName(){



return this.name;


}



… … …

}

October 29, 2013

© 2006 IIITM
-
K

4

Java Server Pages


Overview of JSP Technology


JSP Scripting Elements


JSP Page Directives

October 29, 2013

© 2006 IIITM
-
K

5

Overview of JSP Technology


What is JSP


The need for JSP


The benefits of JSP


Advantages over other technologies


Location of JSP pages

October 29, 2013

© 2006 IIITM
-
K

6

What is JSP


Servlets


HTML in java code


JSP


java code in HTML

<HTML>

<HEAD><TITLE>Java Server Pages</TITLE></HEAD>

<BODY>

<H1>JSP</H1>

<%= “Java Server Pages.” %>

<HR>

</BODY>

</HTML>

October 29, 2013

© 2006 IIITM
-
K

7

JSP Lifecycle

JSP to Servlet

Translation

Servlet

Compiled

Servlet

Loaded

jspInit()

called

_jspService()

called

October 29, 2013

© 2006 IIITM
-
K

8

The need for JSP

With servlets


It is hard to write and maintain HTML


Cannot use standard HTML tools


HTML is inaccessible to non
-
java
developers

October 29, 2013

© 2006 IIITM
-
K

9

The benefits of JSP


Easier to write and maintain HTML


Can use standard HTML tools


Can divide up development team

October 29, 2013

© 2006 IIITM
-
K

10

Advantages


The Java advantage


Extensive API


Easy to learn


Big development community


Standardization & server support

October 29, 2013

© 2006 IIITM
-
K

11

Location of JSP pages


Unlike servlets, JSP pages can be
located in any of the locations where
HTML files can be put.


October 29, 2013

© 2006 IIITM
-
K

12

JSP Scripting Elements


JSP scripting elements enable us to
insert java code into JSP files.



There are three types



Expressions

<%= Java Expression %>


Scriptlets

<% Java Code %>


Declarations

<%! Field/Method %>

October 29, 2013

© 2006 IIITM
-
K

13

JSP Expressions


A JSP expression is used to insert java
code directly into the output.


Have the following form



<%=
Expression

%>


Eg:



Current Time: <%= new java.util.Date() %>


Op:



Current Time: Tue Aug 22 21:05:47 IST 2006



The expression is evaluated, converted to string and inserted
into the page.

October 29, 2013

© 2006 IIITM
-
K

14

Predefined Variables


To simplify expressions, JSP provides a number of
predefined variables (implicit objects).



request



the HttpServletRequest


response



the HttpServletResponse


session



the HttpSession


out



the Writer
(buffered version of type JspWriter)


application



the ServletContext


config



the ServletConfig


pageContext



introduced to give single point of
access to page attributes


page



synonym for
“this”

October 29, 2013

© 2006 IIITM
-
K

15

JSP Scriptlets


To something more than just output the
value of a simple expression.


Allows the programmer to insert arbitrary
code into the servlets _jspService method.


Have the following form:

<%
Java Code

%>


Eg:


<%



String str = request.getParameter(“name”);



out.print(“Name : ”+str);


%>

October 29, 2013

© 2006 IIITM
-
K

16

JSP Declarations


JSP declarations lets the programmer define
methods or fields that get inserted into the
main body of the generated servlet
(outside the
_jspService() method)


Have the following form:

<%!
Field/Method definition

%>


Eg:


<%!



private String getMessage(){




return “This is a simple message!!”;



}


%>


<%= getMessage() %>

October 29, 2013

© 2006 IIITM
-
K

17

XML Syntax


XML like syntax for JSP expression,
scriptlet & declaration

<jsp:expression>…</jsp:expression>

<jsp:scriptlet>…</jsp:scriptlet>

<jsp:declaration>…</jsp:declaration>


Supported by JSP versio 1.2 & above


These are case sensitive, should be in
lowercase

October 29, 2013

© 2006 IIITM
-
K

18

JSP Directives

A JSP directive affects the overall structure
of the servlet that results from the JSP
page.

A JSP directive has the form:


<%@ directive attribute=“value” … … %>

There are three types:


page, include & taglib

October 29, 2013

© 2006 IIITM
-
K

19

JSP Page Directive

The
page

directive controls the structure of
the servlet by importing classes,
customizing the superclass, changing
content type, etc.

The JSP Page directive has the following
attributes:

import, contentType, pageEncoding,
session,isELIgnored, buffer, autoFlush,
info, errorPage, isThreadSafe, language &
extends

October 29, 2013

© 2006 IIITM
-
K

20

JSP Page Directive Attributes

import=“java.util.*, java.sql.*”

contentType=“
text/html; charset=ISO
-
8859
-
1
´

pageEncoding=“Shift_JIS”

session=“true/false”

isELIgnored=“false/true”

buffer=“size in kb”

autoFlush=“true/false”

info=“Some info message.”

errorPage=“
error.jsp


isErrorPage=“false/true”

isThreadSafe=“true/false”

language=“java”

extends=“package.class”

org.apache.jasper.runtime.HttpJspBase

javax.servlet.jsp.HttpJspPage

October 29, 2013

© 2006 IIITM
-
K

21

Including Files

There are three ways of including external
files into a JSP document.

<jsp:include …>…

<%@ include …>

<jsp:plugin …>…

October 29, 2013

© 2006 IIITM
-
K

22

The jsp:include Action

This includes the output of a secondary
page at the time the main page is
requested.

The output of the sub page must be HTML
generated by a servlet or JSP.

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

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


<jsp:param name=“paramName” value=“xyz”>

</jsp:include>

October 29, 2013

© 2006 IIITM
-
K

23

The Include Directive

This includes directive is used to include a
file in the main JSP at the time of
translation into a servlet.

The code of the included file is added to
that of the JSP document.

<%@ include page=“/inc/header.jsp” %>

October 29, 2013

© 2006 IIITM
-
K

24

Forwarding Requests

This action is used to get the output of a
JSP file completely from another JSP or
servlet.

The output of the auxiliary JSP or servlet is
sent to the client, not that of the current
JSP.

<jsp:forward page=“xyz.jsp” />

October 29, 2013

© 2006 IIITM
-
K

25

The jsp:plugin Action

Used to embed a java applet into the
generated output.

Java applets are rarely used in web pages
now a days.

<jsp:plugin type=“applet”



code=“MyApplet.class”



width=“400” height=“300”>

</jsp:plugin>

October 29, 2013

© 2006 IIITM
-
K

26

jsp:plugin Attributes

type=“applet” bean can also be used.

Code=“MyApplet.class”

width=“…”

height=“…”

codebase=“base directory for the applet”

align=“…” laet, right, top, bottom or middle

hspace=“…”

vspace=“…”

archive=“specify JAR file”

title=“Title for the Applet”

jreversion=“1.2”

iepluginurl=“…”

nspluginurl=“…”

October 29, 2013

© 2006 IIITM
-
K

27

jsp:plugin Parameters & Fallback

<jsp:plugin type=“applet”



code=“MyApplet.class”



width=“400” height=“300”>


<jsp:params>


<jsp:param name=“P1” value=“xyz” />


<jsp:param name=“P2” value=“abc” />


</jsp:params>


<jsp:fallback>


<b>Java Plugin needed.</b>


</jsp:fallback>

</jsp:plugin>

October 29, 2013

© 2006 IIITM
-
K

28

Using Java Beans & JSP

There are three main constructs to use Java
Beans in JSP.

<jsp:useBean ……… />

<jsp:getProperty ……… />

<jsp:setProperty ……… />

October 29, 2013

© 2006 IIITM
-
K

29

jsp:useBean

Used to load a bean to be used in the JSP
document.

Syntax:


<jsp:useBean id=“name” class=“package.Class” />

Eg:


<jsp:useBean id=“person” class=“iiitmk.Person” />

Equivalent to:


<% iiitmk.Person person = new iiitmk.Person(); %>

October 29, 2013

© 2006 IIITM
-
K

30

Getting bean properties

Used to read properties from beans.

Syntax:


<jsp:getProperty id=“name” property=“propName” />

Eg:


<jsp:getProperty id=“person” property=“name” />

Equivalent to:


<%= person.getName() %>

October 29, 2013

© 2006 IIITM
-
K

31

Setting bean properties

Used to set properties of beans.

Syntax:


<jsp:setProperty id=“name” property=“propName”


value=“propValue” />

Eg:


<jsp:setProperty id=“person” property=“name”



value=“Popeye The Sailor” />

Equivalent to:


<% person.setName(“Popeye The Sailor”); %>

October 29, 2013

© 2006 IIITM
-
K

32

Properties & Request Parameters

The value of a bean property can be set
directly from the value of the
corresponding

request parameter.

Syntax:


<jsp:setProperty id=“name” property=“propName”


param=“propName” />

Eg:


<jsp:setProperty id=“person” property=“name”



param=“name” />


<jsp:setProperty id=“person” property=“*” />

October 29, 2013

© 2006 IIITM
-
K

33

Sharing Beans (scope)

The scope of a bean defines where the
bean is stored and how it is accessible. By
default it is accessible as a local variable.
Other places of storing beans are the
request, session and application.

Syntax:


<jsp:useBean … … … scope=“…” />

Scopes:


page, request, session & application

October 29, 2013

© 2006 IIITM
-
K

34

Page Scope

The default scope of a bean. Bean is bound
to a local variable in the _jspService method
and also placed in the pageContext
predefined variable, accessible by calling
getAttribute() method.

Syntax:


<jsp:useBean … … … scope=“page” />


<jsp:useBean … … … />

October 29, 2013

© 2006 IIITM
-
K

35

Request Scope

In addition to being bound to a local
variable, the bean is also placed in the
HttpServletRequest object (request) for the
duration of the current request.

Accessible by getAttribute() method.

Syntax:


<jsp:useBean … … … scope=“request” />

October 29, 2013

© 2006 IIITM
-
K

36

Session Scope

In addition to being bound to a local
variable, the bean is also placed in the
HttpSession object (session).

Accessible by getAttribute() method.

Syntax:


<jsp:useBean … … … scope=“session” />

October 29, 2013

© 2006 IIITM
-
K

37

Application Scope

In addition to being bound to a local
variable, the bean is also placed in the
ServletContext object (application). The
servlet context is shared by all the JSP and
servlets in the webapplication.

Accessible by getAttribute() method.

Syntax:


<jsp:useBean … … … scope=“application” />

Questions ?