Download JSP Pages

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
JSP Pages
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
Servlet vs. JSP
Servlet Example
Import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
publc class HtmlPage extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException
{
response.setContentType(“text/html”);
PrintWriter out = response.getWriter():
String name = req.getParameter(“name”);
out.Println(“<HTML>”);
out.Println(“<HEAD><TITLE>First Servlet</TITLE></HEAD>”);
out.Println(“<BODY>”);
out.Println(“<H1>Hello “ + name + “</H1>”);
out.Println(“</BODY>”);
out.Println(“</HTML>”);
}
}
Servlet vs. JSP (cont)
JSP Example
<HTML>
<HEAD><TITLE>First Servlet</TITLE></HEAD>
<BODY>
<% String name = request.getParameter(“name”); %>
<H1>Hello <%=name%> </H1>
</BODY>
</HTML>
•
•
•
•
Presentation centric
Presentation is separated from content
Easier to code
Better organization of Web application
Recommendation
• Use JSP
– If presentation changes frequently
– Presentation is complex
• Use Servlets
– Validation, simple business logic
– Simple/small presentation
Anatomy of a JSP Page
• Template (static HTML or XML)
• JSP Elements
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
• Tag libraries
HTML (XML) Template
<HTML>
<HEAD><TITLE>First Servlet</TITLE></HEAD>
<BODY>
<H1>Hello
</BODY>
</HTML>
</H1>
JSP Elements
Directive Elements
<%@ page info=“HomeDirectBank” %>
<%@ page import=“java.sql.*, java.math.*” %>
<%@ page isThreadSafe=“true” %>
<%@ page errorPage=“/homedirectbank/error.jsp” %>
<HTML>
<HEAD><TITLE>First Servlet</TITLE></HEAD>
<BODY>
<%@ include file=“Header.jsp” %>
<H1>Hello World</H1>
</BODY>
</HTML>
JSP Elements
Scripting Elements
<%! private double totalAmount; %>
<HTML>
<HEAD><TITLE>First Servlet</TITLE></HEAD>
<BODY>
<H1>Hello World</H1>
<%
double amount = request.getParameter(“amt”);
totalAmount += amount;
%>
<P>The total amount is <% =totalAmount %> </P>
</BODY>
</HTML>
Declarations
Scriplet
Expression
JSP Elements
Action Elements
<HTML>
<HEAD><TITLE>First Servlet</TITLE></HEAD>
<BODY>
<jsp:usebean id=account class=model.Student scope=Session/>
<jsp:include page=“/pageHeader” flush=“true” />
Include resource
<% if (request.getParameter(“amount”) < 0) %>
<jsp:forward page=“/errorPage2.jsp” flush=“true” />
Forward page
<% else %>
<jsp:setProperty name=“account” property=“balance” value=“25.32” />
<jsp:include page=“/pageFooter/” flush=“true” />
</BODY>
Set value of class
</HTML>
variable in Java
Bean
Accessing Servlet Variables
•
•
•
•
•
•
•
•
config
request
response
session
out
pageContext
application
page
JSP Elements
Servlet Variables
<HTML>
<HEAD><TITLE>First Servlet</TITLE></HEAD>
<BODY>
<H1>Hello World</H1>
<br>Date: <% out.print(new java.util.Date()); %>
<%
double amount = request.getParameter(“amt”);
totalAmount += amount;
Double taxRate = (Double)
session.getAttribute(“taxRate”);
%>
<P>The total amount is <% =totalAmount %> </P>
</BODY>
</HTML>
Simplify JSP Development
Use Java Beans
Use Tag Libraries
JSP/Servlets in the Enterprise
Model
One
Architecture
Model/View/Controller
JSP
page
Output
Web
Server
<<uses>>
Request object
JavaBean
<<forward>>
Input
doGet/
doPost
<<creates>>
Servlet
Data
base
Using Java Beans in JSP
Model 1
Getting values from a java bean
<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>
Get Java Bean
Reference
Java Bean
class variables
Using Java Beans in JSP
Model 1
Creating a java bean and setting values in the java bean
<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>
Create
Java Bean
Forward
request to
next JSP page
Using Java Beans in JSP
Model 1
Getting values from a java bean
<HTML>
<HEAD><TITLE>JSP Page 2</TITLE></HEAD>
<BODY>
….
<jsp:useBean id=“customer1” class=“control.Customer” scope=“request” />
....
Get Java Bean
<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(); %>
Reference
Java Bean
class variables
….
</BODY>
</HTML>
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
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>
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)
{
….
}
Inherit TagSupport
Invoked at
starting tag
return (SKIP_BODY);
}
public int doEndTag()
{
return(EVAL_PAGE);
}
}
Invoked at
ending tag
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>
Using Tag in JSP Page
Tag Library Descriptor (homeDrectBank)
<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>
JSP Page
uses
<%@ taglib uri=“/homeDirectBank”
prefix=“utils”>
<HTML>
<HEAD><TITLE>Test Servlet</TITLE></HEAD>
<BODY>
<utils:deptHeader />
…..
…..
</BODY>
</HTML>
}
Tag Handler Class
import java.io.*;
import java.servlet.jsp.*;
import java.servlet.jsp.tagext.*;
maps
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);
}
}
Related documents