Download Document

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Web Technologies
Java Beans & JSP
By
Praveen Kumar G
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.
May 24, 2017
© 2006 IIITM-K
2
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;
}
… … …
}
May 24, 2017
© 2006 IIITM-K
3
Java Server Pages
• Overview of JSP Technology
• JSP Scripting Elements
• JSP Page Directives
May 24, 2017
© 2006 IIITM-K
4
Overview of JSP Technology
•
•
•
•
•
What is JSP
The need for JSP
The benefits of JSP
Advantages over other technologies
Location of JSP pages
May 24, 2017
© 2006 IIITM-K
5
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>
May 24, 2017
© 2006 IIITM-K
6
JSP Lifecycle
JSP to Servlet
Translation
Servlet
Compiled
Servlet
Loaded
jspInit()
called
May 24, 2017
© 2006 IIITM-K
_jspService()
called
7
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
May 24, 2017
© 2006 IIITM-K
8
The benefits of JSP
• Easier to write and maintain HTML
• Can use standard HTML tools
• Can divide up development team
May 24, 2017
© 2006 IIITM-K
9
Advantages
•
•
•
•
•
The Java advantage
Extensive API
Easy to learn
Big development community
Standardization & server support
May 24, 2017
© 2006 IIITM-K
10
Location of JSP pages
Unlike servlets, JSP pages can be
located in any of the locations where
HTML files can be put.
May 24, 2017
© 2006 IIITM-K
11
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 %>
May 24, 2017
© 2006 IIITM-K
%>
12
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.
May 24, 2017
© 2006 IIITM-K
13
Predefined Variables
•
To simplify expressions, JSP provides a number of
predefined variables (implicit objects).
•
•
•
•
•
•
•
•
May 24, 2017
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”
© 2006 IIITM-K
14
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);
%>
May 24, 2017
© 2006 IIITM-K
15
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() %>
May 24, 2017
© 2006 IIITM-K
16
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
May 24, 2017
© 2006 IIITM-K
17
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
May 24, 2017
© 2006 IIITM-K
18
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
May 24, 2017
© 2006 IIITM-K
19
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”
org.apache.jasper.runtime.HttpJspBase
language=“java”
extends=“package.class” javax.servlet.jsp.HttpJspPage
May 24, 2017
© 2006 IIITM-K
20
Including Files
There are three ways of including external
files into a JSP document.
<jsp:include …>…
<%@ include …>
<jsp:plugin …>…
May 24, 2017
© 2006 IIITM-K
21
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>
May 24, 2017
© 2006 IIITM-K
22
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” %>
May 24, 2017
© 2006 IIITM-K
23
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” />
May 24, 2017
© 2006 IIITM-K
24
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>
May 24, 2017
© 2006 IIITM-K
25
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=“…”
May 24, 2017
© 2006 IIITM-K
26
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>
May 24, 2017
© 2006 IIITM-K
27
Using Java Beans & JSP
There are three main constructs to use Java
Beans in JSP.
<jsp:useBean ……… />
<jsp:getProperty ……… />
<jsp:setProperty ……… />
May 24, 2017
© 2006 IIITM-K
28
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(); %>
May 24, 2017
© 2006 IIITM-K
29
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() %>
May 24, 2017
© 2006 IIITM-K
30
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”); %>
May 24, 2017
© 2006 IIITM-K
31
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=“*” />
May 24, 2017
© 2006 IIITM-K
32
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
May 24, 2017
© 2006 IIITM-K
33
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 … … … />
May 24, 2017
© 2006 IIITM-K
34
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” />
May 24, 2017
© 2006 IIITM-K
35
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” />
May 24, 2017
© 2006 IIITM-K
36
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” />
May 24, 2017
© 2006 IIITM-K
37
Questions ?