java server pages cs-422. what are jsps a logical evolution of java servlets –most servlets...
TRANSCRIPT
Java Server Pages
CS-422
What are JSPs
• A logical evolution of java servlets– most servlets dynamically create HTML and integrate it with some
computational and database output
• Servlets on their own had some pretty stiff competition form PHP, ASP and ColdFusion– these technologies for the most part (especially ColdFusion) don’t need a
programmer; ASP and PHP definitely have a programming language in their background but scripting in VBScript or PHP is still easier than Java
• some one at Sun recognized that a servlet was just some Java with HTML embedded in it, and thought: why not embed some Java in regular HTML; then create a class that will scan through it and make the source code for a servlet, then compile it and deploy it
• The Java Server Page is born
An Example...<!-- JSP that processes a "get" request containing data. --><html xmlns = "http://www.w3.org/1999/xhtml"> <!-- head section of document --> <head> <title>Processing "get" requests with data</title> </head> <!-- body section of document --> <body> <% // begin scriptlet String name = request.getParameter( "firstName" ); if ( name != null ) { %> <%-- end scriptlet to insert fixed template data --%> <h1> Hello <%= name %>, <br /> Welcome to JavaServer Pages! </h1> <% // continue scriptlet } // end if else { %> <%-- end scriptlet to insert fixed template data --%> <form action = "welcome.jsp" method = "get"> <p> Type your first name and press Submit</p>
<p><input type = "text" name = "firstName" /> <input type = "submit" value = "Submit" /> </p> </form> <% // continue scriptlet} // end else %> <%-- end scriptlet --%> </body></html> <!-- end XHTML document -->
The rendered screen(s)...
After entering Dick...
Embedding Java in HTML
• Embedding Java in HTML is pretty simple; the lead is taken from PHP and ASP; we’ll make a special escape character “<%”, “<%=“ and “%>”
• the tag pair <% …%> are used for defining scriptlets; a sequences of Java statements– scriptlets are used to glue the parts of your jsp together (see prev.
example)
• the tag pair <%=…%> is used for Java expression evaluation – ex <%= new java.util.Date( ) %> will be replaced with the current
Date/Time
JSP Directives
• page
• taglib
• include
page directive• Language – “scriptingLanguage”• Extends – “classname”• Import – “importList” – java.lang.*, javax.servlet.*,
javax.servlet.jsp.*, and javax.servlet.http.* are imported implicitily• Session “true|false”• Buffer – “none|sizekb”• autoFlush- “true|false”• isThreadSafe – “true|false”• Info – “info_text”• errorPage – “error_URL”• isErrorPage – “true|false”• contentType – “contentInfo”• pageEncoding – “pageEncodingInfo”
taglib directive
• Import a taglib into the page
• Associate taglib with a URI
• Map the URI to,a prefix for use within the page
• <%@ taglib uri=“taglib URI” prefix=“prefix” %>
include directive
• Allows the inclusion of another file into the defining page
• Happens at translation time.
• <%@ include file=“URL” %>
JSP Actions (Tags)
• JSP provides a set of standard actions to help you with commonly done tasks:– <jsp:include>
– <jsp:forward>
– <jsp:plugin>
– <jsp:param>
– <jsp:useBean>
– <jsp:setProperty>
– <jsp:getProperty>
<jsp:include>
• Attributes:– page - specifies the relative URI path to the resource to include
– flush - must be “true” ; specifies whether the buffer should be flushed after the include is performed
– <%jsp:include file=“myfile.html” flush=true>
– use this action to include dynamic content; it will be included each time it is included
• there is also an include directive – <%@ include file = relative URI>
– use this for including static content, is included only once
<jsp:forward>
• Allows you to forward processing to another JSP, as soon as processing is forwarded the processing of the curreent JSP is terminated
• can be used in conjunction with <jsp:param> to forward parameter information to the forwarded JSP
<jsp:forward page=“nextjsp.jsp”>
<jsp:param name = date value=“<%=java.util.Date() %>” />
</jsp:forward>
<jsp:plugin>• Adds an applet or JavaBean to a Web page in the form of a
browser=specific object or embed XHTML element. It also allows the client to download and install the java Plug-in if it is not already present.
• Attributes:– type - bean or applet
– code - Class that represents the component
– codebase- location of the class specified in the code attribute and the archives specified in the archives attribute
– align - Alignment od the component (left,right,center)
– archive - space separated list of archives (JARS) containing resources
– height - component height in pixels
– hspace - number of pixels to right and left of component
– jreversion - version of the JRE required
– name - name of component
– vspace - number of pixels above and below the component
– title - Text describing the component
– width - component width in pixels or percent
– nspluginurl - location of plugin for Netscape Navigator
– iepluginurl - location of plugin for Internet Explorer
<jsp:useBean>• Enables a JSP to manipulate or use a JavaBean. The action creates or
locates an existing object for use in the JSP.
• Attributes:– id - the name used to manipulate the Java object (case sensitive)
– scope - page, request,session,or application (default is page)
– class - fully qualified class name of the Java object
– beanName - The name that can be used with method instantiate of class java.beans.Beab to load a JavaBean into memory.
– Type - type of JavaBean, can be same as class attribute , a superclass of that type or an interface implemented by that type
<jsp:setProperty>
• Used to set Bean property values
• Attributes:– name - Id of the Bean for which a property is to be set
– property - name of the property to set
– param - specify which request parameter is to be used
– value - the value to assign to a Bean proberty
<jsp:getProperty>
• retrieve the value of a Bean property
• attributes:– name - the name of the Bean
– property - the name of the property to retrieve