Java Server Pages (JSP

)
An Overview

Presented by: Rohit Singh Sengar

2

Scope
        Need of dynamic pages History of dynamic pages Servlets & its example JSP Overview JSP: Architecture & Life cycle JSP: Tags & Example JavaBeans Comparison of JSP with other server-side scripting technologies.  Pros and Cons of JSP  References

3

Need of Dynamic Websites
 User Data: Web pages is based upon the user entered data.  Web pages is derived from data that changes frequently  Web pages interacts with databases  2 types of code is needed
1)Data representation 2)Data generation

4

History: Common Gateway Interface (CGI)
 Earlier dynamic web pages were developed with Common Gateway Interface (CGI).  Web Applications eventually outgrew CGI because of the following:
Datasets became large  Increased traffic on sites  Trouble maintaining state and session information  Performance bottlenecks  Can involve proprietary APIs

5

Servlets
 It is regular Java code. There are new APIs, but no new syntax.  It has unfamiliar import statements. The servlet and JSP APIs are separate specification (and are also part of the Java 2 Platform, Enterprise Edition—J2EE).  It extends a standard class (HttpServlet). Servlets provide a rich infrastructure for dealing with HTTP.  It overrides the doGet method. Servlets have different methods to respond to different types of HTTP commands.  Servlet Life Cycle: It consist of followings  The Init method  The Service method  The Destroy method

6

Servlet Code: Example (for displaying Hello World)
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String docType = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n"; out.println(docType + "<HTML>\n" + "<HEAD><TITLE>Hello World</TITLE></HEAD>\n" + "<BODY BGCOLOR=\"#FDF5E6\">\n" + "<H1>Hello World</H1>\n" + "</BODY></HTML>"); } }

7

JSP Overview
 With a foundation in Java, JSP
   

Threads incoming requests Supports custom tags. Interacts with a wide array of databases Serves dynamic content in a persistent and efficient manner

Initially the server automatically builds, compiles, and starts the servlet, from then on the servlets are stored in the web server’s memory in Java byte code

 

Extends the same portability, large class library, object-oriented code methodology, and robust security measures that have made Java a top choice Does not require a Java programmer Better separation of Logic and presentation.

8

Architecture

9

JSP Life Cycle

10

JSP - Tags
Tag 2. Expression tag 3. Directive tag 4. Scriptlet tag 5. Action tag 6. Comment tag Name <%= %> <% <jsp: Purpose To declare variables & methods To embed any Java expressions & display any value

1. Declaration tag <%! %>

<%@ %> To set condition that applies to the whole JS Page. %> To write any valid block of Java code > Enable the use of server side Javabeans, transfer control between pages, browser independent support for applets

<%-- --%> Tell JSP engine to ignore the code

11

JSP - Example
# Simple Java server page showing use of common tags. # Java is very case sensitive.

12

JavaBeans
 A JavaBean is a Java Class file that comes with specifications.  Defines how to create an Object, retrieve and set properties of the Object  It is used to minimize the java code in JSP.  They are is used to communicate with Database & contain various logic.  Syntax: <jsp:useBean id=Bean name class=bean class scope=page/request/session/application/>  Syntax for setting value: <jsp:setProperty name=bean name property=someProperty value=someValue/>

13

Comparison of JSP
  PHP Cold Fusion ASP JSP

Cost

Free

$0 (Express version)$5000 (Enterprise version)

Free with Windows NT, cost for 3rdparty software

Free

Language In Page

PHP

CFML

VBScript, JScript

Java

OS Platform

Unix (Linux), Windows, MacOS, OS/2

Windows NT, Solaris, Linux

Windows 9x, NT, other platforms requires third-party ASP porting products IIS, Personal Web Server (PWS), other servers with thirdparty products

UNIX, Microsoft Windows, Mac OS, Linux

Supported Web server

iPlanet/Netscape Enterprise Server (NSAPI), MS Internet Information Server (IIS), Apache, Zeus, fhttpd, etc. (ver 4)

IIS, Netscape Enterprise Server , Apache, Website Server (WSAPI), CGI

Any Web server, including Apache, Netscape and IIS  

14

Comparison of JSP (Cont’d) …
  PHP ColdFusion ASP JSP

Supported Database

MySQL, mSQL, ODBC, Oracle, Informix, Sybase, etc.

ODBC, OLE DB, DB2, Oracle, Informix, Sybase, etc.

any ODBCcompliant database

any ODBC- and JDBC-compliant database

Portability

Fair (DB portability)

Good

Fair

Good

Scalability

Fair

Good

Good

Good

Component Support

COM, Java classes (version 4)

COM, CORBA, JavaBeans

COM components

JavaBeans, Enterprise JavaBeans

Learning curve

High (C, Perl)

Low

Medium (VBScript, JScript)

High (Java)

15

Pros and Cons
 Pros
  

Efficient Secure Convenient  Server engines typically have builtin infrastructures to handle parsing/decoding HTML form data, reading/setting HTTP headers, session tracking Powerful  Java behind the scene Portable  Write once, run anywhere Inexpensive  Various free or inexpensive engines available

 Cons

Need for a Server Engine  Another engine to maintain Un-acceptably by the client machine  Virtual hosting of unrelated sites on a single machine can cause problems (choose your server engine wisely) High Learning Curve  Steeper learning curve than Cold Fusion

16

JSP- A part of J2EE

17

References
        www.java.sun.com/products/jsp/ www.java.sun.com/developer/technicalArticles/Programming/jsp/ www.en.wikipedia.org/wiki/JavaServerPages www.visualbuilder.com/jsp/tutorial www.cetus-links.org/oo_javaserver_pages.html www.jspin.com www.courses.coreservlets.com www.onjava.com/topics/java/JSP_Servlets

18

Thank You

Any Questions?

Sign up to vote on this title
UsefulNot useful