2. COURSE
OUTCOMES
CO1: DESIGN A WEBSITE USING HTML (K5, S3)
CO2: Apply Cascading Style Sheet to design a HTML
Webpage (K3, S2)
CO3: Develop a HTML form and validate it using Java
Script (K5, S2)
CO4: Develop web application using JSP, Servlet (K5,
S3)
CO5: Develop an XML document and validate it using
SCHEMA (K5, S2)
3. AGENDA
WHAT & WHY
JSP?
SERVLET VS JSP JSP ELEMENTS JSP/SERVLETS IN
THE ENTERPRISE
USING JAVA
BEANS IN JSP
TAG LIBRARIES
AND TAG TYPES
4. What and
Why of JSP?
• JSP = Java code imbedded
in HTML or XML
• Static portion of the
page is HTML
• Dynamic portion is Java
• Easy way to develop and
maintain dynamic web
pages and dynamic XML
documents
7. Recommendation
• Use JSP
• If presentation changes frequently
• Presentation is complex
• Use Servlets
• Validation, simple business logic
• Simple/small presentation
8. Anatomy of a JSP Page
• Template (static HTML or XML)
• JSP Elements
• Tag libraries
Element Type JSP Syntax Description
Directives <%@ directive_name%> Controls to define translation into Java code
Scripting <% …………… %> Embed Java code in HTML
Actions <jsp: …………. > JSP-specific tag for Java Beans
17. Using Java Beans in JSP
Model 1
<HTML>
<HEAD><TITLE>JSP Page 2</TITLE></HEAD>
<BODY>
….
<jsp:useBean id=“employee” class=“javaBeans.Employee” scope=“request” />
....
<br>lastname = <jsp:getProperty name=“employee” property=“lastName” />
<br>firstname = <jsp:getProperty name=“employee” property=“firstName” />
<br>lastname = <%= employee.getLastName() %>
<br>firstname = <%= employee.getFirstName() %>
….
</BODY>
</HTML>
Getting values from a java bean
Get Java Bean
Reference
Java Bean
class variables
18. Using Java Beans in JSP
Model 1
<HTML>
<HEAD><TITLE>JSP Page 1</TITLE></HEAD>
<BODY>
….
<jsp:useBean id=“customer1” class=“control.Customer” scope=“request”>
<jsp:setProperty name=“customer1” property=“lastName” value=“Flintstone”
/>
<jsp:setProperty name=“customer1” property=“firstName” value=“Wilma” />
<% customer1.setUserid(“flintstonew”); %>
<% customer1.setPassword(“dino”); %>
</jsp:useBean>
….
<jsp:forward page=”/jspPage2” />”/>
….
</BODY>
</HTML>
Creating a java bean and setting values in the java bean
Create
Java Bean
Forward
request to
next JSP page
19. Using Java Beans in JSP
Model 1
<HTML>
<HEAD><TITLE>JSP Page 2</TITLE></HEAD>
<BODY>
….
<jsp:useBean id=“customer1” class=“control.Customer” scope=“request” />
....
<br>Last name = <jsp:getProperty name=“customer1” property=“lastName” />
<br>first name = <jsp:getProperty name=“customer1” property=“firstName” />
<br>Username = <% customer1.getUserid(); %>
<br>Password = <% customer1.getPassword(); %>
….
</BODY>
</HTML>
Getting values from a java bean
Get Java Bean
Reference
Java Bean
class variables
20. Tag Libraries
• Create custom XML tags that you
can imbed in JSP pages
• Custom commands (i.e., macros)
• Java tag handler class defined for each
custom tag
• XML tag in JSP Java method called
for tag
21. Tag Types
• XML format
• Tag without a body
<rkjTagLib:deptHeader/>
• Tag without a body but with an attribute
<rkjTagLib:table rowcount=5 colcount=3 />
• Tag with body and an attribute
<rkjTagLib:table rowcount=5 colcount=3 >
Title of Table
</rkjTagLIb:table>
22. Tag Handler Class
import java.io.*;
import java.servlet.jsp.*;
import java.servlet.jsp.tagext.*;
public class DeptHeader extends TagSupport
{
public int doStartTag()
{
try
{
JspWriter out = pageContext.getOut();
out.println(“<H2>Information Systems Dept.</H1>”);
out.println(“<H3>Brigham Young University-Idaho </H3>”);
}
catch (IOException ioex)
{
….
}
return (SKIP_BODY);
}
public int doEndTag()
{
return(EVAL_PAGE);
}
}
Inherit TagSupport
Invoked at
starting tag
Invoked at
ending tag
23. Tag Library Descriptor
<?xml version=“1.0” encoding=“ISO-8859-1” ?>
<!DOCTYPE taglib PUBLIC
“-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN”
http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd>
<taglib>
<tlib-version>1.0</tlib-version>>
<jspversion>1.2</jspversion>
<shortname>homeDirectBank</shortname>
<tag>
<name>deptHeader</name>
<tagclass>homedirectbank.DeptHeader</tagclass>
<bodycontent>EMPTY</bodycontent>
<info>Inserts IS department header</info>
</tag>
</taglib>
24. Using Tag in JSP Page
<taglib>
<tlibversion>1.1</tlibversion>
<jspversion>1.2</jspversion>
<shortname>homeDirectBank</shortname>
<tag>
<name>deptHeader</name>
<tagclass>com.taglib.homedirectbank.DeptHeader</tagclass>
<bodycontent>EMPTY</bodycontent>
<info>Inserts IS department header</info>
</tag>
</taglib>
Tag Library Descriptor (homeDrectBank)
<%@ taglib uri=“/homeDirectBank”
prefix=“utils”>
<HTML>
<HEAD><TITLE>Test Servlet</TITLE></HEAD>
<BODY>
<utils:deptHeader />
…..
…..
</BODY>
</HTML>
}
JSP Page
import java.io.*;
import java.servlet.jsp.*;
import java.servlet.jsp.tagext.*;
public class DepHeader extends TagSupport
{
public int doStartTag()
{
try
{
JspWriter out = pageContext.getOut();
out.println(“<H2>Information Systems Dept.</H1>”);
out.println(“<H3>Brigham Young University-Idaho </H3>”);
}
catch (IOException ioex)
{
….
}
return (SKIP_BODY);
}
public int doEndTag()
{
return(EVAL_PAGE);
}
}
Tag Handler Class
maps
uses