1 / 22

JSP Pages

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.

duer
Download Presentation

JSP Pages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JSP Pages

  2. 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

  3. 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>”); }}

  4. Servlet vs. JSP (cont) JSP Example • Presentation centric • Presentation is separated from content • Easier to code • Better organization of Web application <HTML><HEAD><TITLE>First Servlet</TITLE></HEAD> <BODY> <% String name = request.getParameter(“name”); %> <H1>Hello <%=name%> </H1> </BODY></HTML>

  5. Recommendation • Use JSP • If presentation changes frequently • Presentation is complex • Use Servlets • Validation, simple business logic • Simple/small presentation

  6. Anatomy of a JSP Page • Template (static HTML or XML) • JSP Elements • Tag libraries

  7. HTML (XML) Template <HTML><HEAD><TITLE>First Servlet</TITLE></HEAD><BODY> <H1>Hello </H1> </BODY></HTML>

  8. 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>

  9. Declarations Scriplet Expression 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>

  10. Include resource Forward page Set value of class variable in Java Bean 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” /> <% if (request.getParameter(“amount”) < 0) %> <jsp:forward page=“/errorPage2.jsp” flush=“true” /><% else %> <jsp:setProperty name=“account” property=“balance” value=“25.32” /> <jsp:include page=“/pageFooter/” flush=“true” /> </BODY></HTML>

  11. Accessing Servlet Variables • config • request • response • session • out • pageContext • application • page

  12. 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>

  13. Use Java Beans Use Tag Libraries Simplify JSP Development

  14. Model OneArchitecture Database Output <<uses>> Request object JavaBean <<forward>> doGet/doPost <<creates>> Input JSP/Servlets in the Enterprise Model/View/Controller WebServer JSP page Servlet

  15. Get Java Bean Reference Java Bean class variables Using Java Beans in JSPModel 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>

  16. CreateJava Bean Forward request tonext JSP page Using Java Beans in JSPModel 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>

  17. Get Java Bean Reference Java Bean class variables Using Java Beans in JSPModel 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” /> ....<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>

  18. 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

  19. 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>

  20. Inherit TagSupport Invoked at starting tag Invoked at ending tag 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); }}

  21. 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>

  22. 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> Tag Handler Class 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); }} maps JSP Page uses <%@ taglib uri=“/homeDirectBank” prefix=“utils”><HTML><HEAD><TITLE>Test Servlet</TITLE></HEAD><BODY> <utils:deptHeader /> ….. ….. </BODY></HTML> } Using Tag in JSP Page

More Related