1 / 14

Java Server Pages (JSP)

Java Server Pages (JSP). A Java Servlets Example. A simple "HelloWorld" servlet, that also prints the current date. import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet {

squeen
Download Presentation

Java Server Pages (JSP)

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. Java Server Pages (JSP)

  2. A Java Servlets Example • A simple "HelloWorld" servlet, that also prints the current date. import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("<HTML>"); out.println("<HEAD><TITLE>Hello World</TITLE></HEAD>"); out.println("<BODY>"); out.println("<H1>Hello World</H1>"); out.println("Today is: " + (new java.util.Date().toString()) ); out.println("</BODY></HTML>"); } // doGet } // HelloWorld • In order to run it, do the following: • Place it in a file, HelloWorld.java • Compile it. • Place the resulting HelloWorld.class file in the "servlets" directory. • Run it by pointing browser to: http://server.address/servlets/HelloWorld

  3. A JSP Example • The previous page can be written using JSP as shown below: <HTML> <HEAD> <TITLE>Hello World</TITLE> </HEAD> <BODY> <H1>Hello World</H1> Today is: <%= new java.util.Date().toString() %> </BODY> </HTML> • In order to run it, do the following: • Place it in a file, HelloWorld.jsp in the same directory as your .html files • Run it by pointing browser to: http://server.address/~youraccount/HelloWorld.jsp

  4. Elements of JSP • Whenever a .jsp is requested for the first time, the server does the following: 1. Translates the .jsp page into a servlet2. Compiles the servlet into a class file3. Executes the servlet (response is sent to the client) • Subsequent requests (as long as the .jsp page is unchanged) use the same loaded class file. • Anatomy of a JSP Page • A JSP page is a mixture of standard HTML tags, web page content, and some dynamic content that is specified using JSP constructs. Everything except the JSP constructs is called Template Text.

  5. JSP Constructs: JSP Comments • JSP Comments:Different from HTML comments <!-- an HTML comment --> <%-- a JSP comment --%> • JSP comments are used for documenting JSP code and are not visible client-side (using browser's View Source option) where as HTML comments are visible.

  6. JSP Constructs: JAVA Expressions • Format:<%= some_java_expression %> • Example:<%= new java.util.Date().toString() %> • Output of the expression is placed in the HTML template at the same location.

  7. JSP Constructs: Variables in JAVA Expressions • There are some pre-defined Java variables/objects available for use in expressions (provide access to important servlet functionality): • requestThis is the same object as HttpServletRequest parameter in th get/post methods. Same methods (like, getParameter, getAttribute, etc) can be applied to it. • outThe servlet printwriter. • sessionSame as servlet session object. • Example: <HTML> <HEAD> <TITLE>JSP Expressions: Predefined Objects</TITLE> </HEAD> <BODY> <H1>Using Predefined Objects</H1> <UL> <LI> Your Hostname: <%= request.getRemoteHost() %> <LI> Your Session ID: <%= session.getId() %> <LI> The value of INFO parameter: <%= request.getParameter("INFO") %> </BODY> </HTML>

  8. JSP Constructs: Scriptlets • Scriptlets are arbitrary pieces of Java code inserted in the page using the format:<% some_java_code %> Example 2 <HTML> <HEAD> <TITLE>JSP: Scriptlets 2</TITLE> </HEAD> <% String bgColor = request.getParameter("COLOR"); %> <% if (bgColor == null) { %> <BODY BGCOLOR="FFFFFF" > <% } else { %> <BODY BGCOLOR="<%= bgColor %>" > <% } %> <H1>Example Scriptlet: Conditionally sets background color</H1> <% if (bgColor == null) { %> You did not supply a color, I used white. <% } else { %> Here is the color you requested. <% } %> </BODY> </HTML Example 1 <HTML> <HEAD> <TITLE>JSP: Scriptlets</TITLE> </HEAD> <% String bgColor = request.getParameter("COLOR"); if (bgColor == null) bgColor = "WHITE"; %> <BODY BGCOLOR="<%= bgColor %>" > <H1>Example Scriptlet: Sets background color</H1> </BODY> </HTML>

  9. JSP Constructs: Scriptlets, contd. • Using Arrays: One can easily use scriptlets to loop over arrays. In this example, the user is presented with choice boxes. When s/he presses the submit button, the choices are displayed. • Example <HTML> <BODY BGCOLOR="WHITE"> <FORM ACTION="choices.jsp"> <INPUT type="checkbox" name="music" value="Classical"> Classical<BR> <INPUT type="checkbox" name="music" value="Rock"> Rock<BR> <INPUT type="checkbox" name="music" value="Jazz"> Jazz<BR> <INPUT type="checkbox" name="music" value="Blues"> Blues<BR> <INPUT type="checkbox" name="music" value="DC-GoGo"> DC GoGo<BR> <INPUT type="submit" value="Submit"> </FORM> <% String[] selected = request.getParameterValues("music"); if (selected != null && selected.length != 0) { %> You like the following kinds of music: <UL> <% for (int i = 0; i < selected.length; i++) { out.println("<LI>" + selected[i]); } %> <UL> <% } %> </BODY> </HTML>

  10. JSP Constructs: Declarations • You can define variables and/or methods: <%! some JAVA declarations %> • Example <HTML> <BODY> <%! private int hitCount = 0; String randomColor() { java.util.Random random = new java.util.Random(); int R = (int) (random.nextFloat() * 255); int G = (int) (random.nextFloat() * 255); int B = (int) (random.nextFloat() * 255); return "#" + Integer.toString(R, 16) + Integer.toString(G, 16) + Integer.toString(B, 16); } %> <FONT COLOR="<%= randomColor() %>" > This page has been accessed <%= ++hitCount %> times. </FONT> </BODY> </HTML>

  11. JSP Constructs: Summary • Expressions • Scriptlets • Declarations • Availability of pre-defined objects

  12. JSP Directives • Format: • <%@ directive attribute="value" %> • <%@ directive attr1="value" attr2="value" ... attrN="value" %> • Directives are used to specify the structure of the resulting servlet. There are three directives: page, include, and taglib

  13. JSP: Page Directive • There are 11 specifiable attributes for this directive: import, contentType, isThreadSafe, session, buffer, autoflush, extends, info, errorPage, and language • Example <%@ page language="java" contentType="text/html" %> <%@ page contentType="application/vnd.ms-excel" %> <%@ page import="java.util.*" %> <%@ page import="java.util.*,java.io.*" %> • Directives can be placed anywhere in the document, but are often placed at the very top. <%@ page language="java" contentType="text/html import="java.util.*" %> <HTML> <HEAD> <TITLE>Hello World</TITLE> </HEAD> <BODY> <H1>Hello World</H1> Today is: <%= new Date().toString() %> </BODY> </HTML>

  14. JSP: Other Directives • The include Directive • Is used to include a file in the main document. • There are two versions of this. The first one, shown below, includes the file at translation time. <%@ include file="relative URL of file" %> • The second version, includes the file at request time. <jsp:include page="ralative URL of file" flush=true /> • The taglib directive • This is used to define custom markup tags. Refer to JSP documentation for details on this.

More Related