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 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(“ ”); out.Println(“ First Servlet ”); out.Println(“ ”); out.Println(“ Hello “ + name + “ ”); out.Println(“ ”); out.Println(“ ”); } } Servlet Example
Servlet vs. JSP (cont) First Servlet Hello JSP Example 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 Tag libraries Element TypeJSP SyntaxDescription Directives Controls to define translation into Java code Scripting Embed Java code in HTML Actions JSP-specific tag for Java Beans
HTML (XML) Template First Servlet Hello
JSP Elements Directive Elements First Servlet Hello World
JSP Elements Scripting Elements First Servlet Hello World The total amount is Declarations Scriplet Expression
JSP Elements Action Elements First Servlet Include resource Forward page Set value of class variable in Java Bean
Accessing Servlet Variables config request response session out pageContext application page
JSP Elements Servlet Variables First Servlet Hello World Date: The total amount is
Simplify JSP Development Use Java Beans Use Tag Libraries
Model/View/Controller JavaBean Request object JSP/Servlets in the Enterprise Servlet JSP page Data base Web Server Model One Architecture Output doGet/ doPost Input >
Using Java Beans in JSP Model 1 JSP Page 2 …..... lastname = firstname = lastname = firstname = …. Getting values from a java bean Get Java Bean Reference Java Bean class variables
Using Java Beans in JSP Model 1 JSP Page 1 …. …. ”/> …. Creating a java bean and setting values in the java bean Create Java Bean Forward request to next JSP page
Using Java Beans in JSP Model 1 JSP Page 2 …..... Last name = first name = Username = Password = …. Getting values from a java bean Get Java Bean Reference Java Bean class variables
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 –Tag without a body but with an attribute –Tag with body and an attribute Title of 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(“ Information Systems Dept. ”); out.println(“ Brigham Young University-Idaho ”); } catch (IOException ioex) { …. } return (SKIP_BODY); } public int doEndTag() { return(EVAL_PAGE); } } Inherit TagSupport Invoked at starting tag Invoked at ending tag
Tag Library Descriptor 1.0 > 1.2 homeDirectBank deptHeader homedirectbank.DeptHeader EMPTY Inserts IS department header
Using Tag in JSP Page homeDirectBank deptHeader com.taglib.homedirectbank.DeptHeader EMPTY Inserts IS department header Tag Library Descriptor (homeDrectBank) Test Servlet ….. ….. } 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(“ Information Systems Dept. ”); out.println(“ Brigham Young University-Idaho ”); } catch (IOException ioex) { …. } return (SKIP_BODY); } public int doEndTag() { return(EVAL_PAGE); } } Tag Handler Class maps uses