JSP – Java Server Pages Part 1 Representation and Management of Data on the Internet.

Slides:



Advertisements
Similar presentations
8 Copyright © 2005, Oracle. All rights reserved. Creating the Web Tier: JavaServer Pages.
Advertisements

Java Server Pages (JSP)
JSP1 Java Server Pages (JSP) Introducing JavaServer Pages TM (JSP TM ) JSP scripting elements.
Chapter 51 Scripting With JSP Elements JavaServer Pages By Xue Bai.
JSP: JavaServer Pages Juan Cruz Kevin Hessels Ian Moon.
WEB1P servintro1 Introduction to servlets and JSP Dr Jim Briggs.
DT211/3 Internet Application Development
18-Jun-15 JSP Java Server Pages Reference: Tutorial/Servlet-Tutorial-JSP.html.
CS320 Web and Internet Programming JSP Scripting Elements and Page Directives Chengyu Sun California State University, Los Angeles.
JSP Java Server Pages Reference:
Introduction to JavaServer Pages Vijayan Sugumaran Dept. of DIS Oakland University Parts of this presentation was provided by
Java Server Pages Russell Beale. What are Java Server Pages? Separates content from presentation Good to use when lots of HTML to be presented to user,
JSP – Java Server Pages Representation and Management of Data on the Internet.
JSP Architecture  JSP is a simple text file consisting of HTML or XML content along with JSP elements  JSP packages define the interface for the compiled.
Introduction to Java web programming Dr Jim Briggs JWP intro1.
Java Servlets. What Are Servlets? Basically, a java program that runs on the server Basically, a java program that runs on the server Creates dynamic.
Java Enterprise Edition Java Web Development Structure of a web project Introduction to Web Applications The first project Introduction to Java Web Development.
1 CIS336 Website design, implementation and management (also Semester 2 of CIS219, CIS221 and IT226) Lecture 9 JavaServer Pages (JSP) (Based on Møller.
Netbeans – jsp.zip Introduction to JSP Netbeans – jsp.zip.
© Yaron Kanza Server-Side Programming using Java Server Pages Written by Dr. Yaron Kanza, Edited by permission from author by Liron Blecher.
1 JSP – Java Server Pages Representation and Management of Data on the Internet.
Introduction to JSP Based on: Marty Hall, Larry Brown, Core Servlets and JavaServer Pages.
J2EE training: 1 Course Material Usage Rules PowerPoint slides for use only in full-semester, for-credit courses at degree-granting.
Introduction to Java Server Pages (JSPs) Robert Thornton.
Chapter 7 Java Server Pages. Objectives Explain how the separation of concerns principle applies to JSP Describe the operation and life-cycle of a JSP.
Introduction to JavaServer Pages (JSP) Slides from Dr. Mark Llewellyn.
Jordan Anastasiade. All rights reserved.
 Embeds Java code  In HTML tags  When used well  Simple way to generate dynamic web-pages  When misused (complex embedded Java)  Terribly messy.
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
Stanisław Osiński, 2002JSP – A technology for serving dynamic web content Java Server Pages™ A technology for serving dynamic web content Stanisław Osiński,
JAVA SERVER PAGES CREATING DYNAMIC WEB PAGES USING JAVA James Faeldon CS 119 Enterprise Systems Programming.
Slides © Marty Hall, book © Sun Microsystems Press 1 JSP Scripting Elements Core Servlets & JSP book:
Chapter 3 Servlet Basics. 1.Recall the Servlet Role 2.Basic Servlet Structure 3.A simple servlet that generates plain text 4.A servlet that generates.
16-Oct-15 JSP Implicit Objects. 2 JSP Implicit Objects are the Java objects that the JSP Container makes available to developers in each page and developer.
Introduction to JavaServer Pages. 2 JSP and Servlet Limitations of servlet  It’s inaccessible to non-programmers JSP is a complement to servlet  focuses.
SE-2840 Dr. Mark L. Hornick 1 Java Server Pages. HTML/JSPs are intended to be used as the views in an MVC- based web application Model – represents an.
1 (Server-Side Programming using Java Server Pages) cs
JSP Fundamentals Elements of a JSP Using Beans with JSP Integrating Servlets and JSP.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 27 JavaServer Page.
CSC 2720 Building Web Applications JavaServer Pages (JSP) The Basics.
1 JSP – Java Server Page DBI – Representation and Management of Data on the Internet.
Java Server Pages (JSP)
CS-4220 Dr. Mark L. Hornick 1 Java Server Pages. HTML/JSPs are intended to be used as the views in an MVC- based web application Model – represents an.
Chapter 11 Invoking Java Code with JSP Scripting Elements.
CSC 2720 Building Web Applications JavaServer Pages (JSP) JSP Directives and Action Elements.
JSP. Types of JSP Scripting Elements Expressions of the form, which are evaluated and inserted into the servlet's output. Scriptlets of the form, which.
Web Technologies Java Beans & JSP By Praveen Kumar G.
Middleware 3/29/2001 Kang, Seungwoo Lee, Jinwon. Description of Topics 1. CGI, Servlets, JSPs 2. Sessions/Cookies 3. Database Connection(JDBC, Connection.
JSP BASICS AND ARCHITECTURE. Goals of JSP Simplify Creation of dynamic pages. Separate Dynamic and Static content.
Basic JSP Celsina Bignoli Problems with Servlets Servlets contain –request processing, –business logic –response generation all lumped.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 3 1COMP9321, 15s2, Week.
JSP – Java Server Page DBI – Representation and Management of Data on the Internet.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 43 JavaServer Page.
CSI 3125, Preliminaries, page 1 JSP (Java Server Pages)
1 Java Server Pages A Java Server Page is a file consisting of HTML or XML markup into which special tags and code blocks are inserted When the page is.
1 Chapter 27 JavaServer Page. 2 Objectives F To know what is a JSP page is processed (§27.2). F To comprehend how a JSP page is processed (§27.3). F To.
SKT-SSU IT Training Center Servlet and JSP. Chapter Eleven: Invoking Java Code with JSP Scripting Elements.
INVOKING JAVA CODE WITH JSP SCRIPTING ELEMENTS. Creating Template Text A large percentage of your JSP document consists of static text (usually HTML),
 Java Server Pages (JSP) By Offir Golan. What is JSP?  A technology that allows for the creation of dynamically generated web pages based on HTML, XML,
JSP JavaServer Pages. What is JSP? Java based technology that simplifies the development of dynamic web sites JSP pages are HTML pages with embedded code.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Java Server Pages. 2 Servlets The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
Chapter 14 Using JavaBeans Components in JSP Documents.
Bayu Priyambadha, S.Kom. Static content  Web Server delivers contents of a file (html) 1. Browser sends request to Web Server 3. Web Server sends HTML.
JSP Java Server Pages. Hello, !
JSP (Java Server Page) JSP is server side technology which is used to create dynamic web pages just like Servlet technology. This is mainly used for implementing.
Developing JavaServer Pages
Java Servlets.
JSP – Java Server Pages Part 1
Invoking Java Code from JSP
Presentation transcript:

JSP – Java Server Pages Part 1 Representation and Management of Data on the Internet

Introduction

What is JSP Good For? Servlets allow us to write dynamic Web pages -Easy access to request, session and context data -Easy manipulation of the response (cookies, etc.) -And lots more... It is not convenient to write and maintain long static HTML using Servlets out.println(" Bla Bla " + "bla bla bla bla" + "lots more here...")

JSP Idea Use HTML for most of the page Write Servlet code directly in the HTML page, marked with special tags The server automatically translates a JSP page to a Servlet class and the latter is actually invoked -In Tomcat 5.0, you can find the generated Servlet code under $CATALINA_BASE/work/

Relationships Servlets: HTML code is printed in Java code JSP: Java code is embedded in HTML code Java HTML Java HTML

Example Hello World Hello World Tomcat 5.0 Generated Servlet

Generated Servlet Hierarchy (Tomcat 5.0 Implementation) Apache Implementation Generated Servlet Sun Specifications

JSP Limitations and Advantages JSP can only do what a Servlet can do Easier to write and maintain HTML Easier to separate HTML from code Can use a "reverse engineering technique": create static HTML and then replace static data with Java code

JSP Life Cycle

The following table describes the life cycle of JSP generated Servlet in details:

JSP Life Cycle Page first written Request #1 Request #2 Server restarted Request #3 Request #4 Page modified Request #5 Request #6 JSP page translated into servlet YesNo YesNo Servlet compiledYesNo YesNo Servlet instantiated and loaded into server's memory YesNoYesNoYesNo init (or equivalent) called YesNoYesNoYesNo doGet (or equivalent) called Yes Written by Marty Hall. Core Servlets & JSP book:

JSP Translation When the JSP file is modified, JSP is translated into a Servlet -Application need not be reloaded when JSP file is modified Server does not generate the Servlet class after startup, if the latter already exists -Generated Servlet acts just like any other Servlet

init() and destroy() init() of the generated Servlet is called every time the Servlet class is loaded into memory and instantiated destroy() of the generated Servlet is called every time the generated Servlet is removed The latter two happen even if the reason is modification of the JSP file

Thread Synchronization After the Servlet is generated, one instance of it serves requests in different threads, just like any other Servlet In particular, the service method ( _jspService ) may be executed by several concurrent threads Thus, like Servlets, JSP programming requires concurrency management

Basic JSP Elements

Basic Elements in a JSP file HTML code: content JSP Comments: Expressions: Scriptlets: Declarations: Directives: Actions:, EL Expressions: ${expression} Covered Later...

JSP Expressions A JSP expression is used to insert Java values directly into the output It has the form:, where expression can be a Java object, a numerical expression, a method call that returns a value, etc... For example:

JSP Expressions A JSP Expression is evaluated The result is converted to a string The string is inserted into the page This evaluation is performed at runtime (when the page is requested), and thus has full access to information about the request, the session, etc...

Expression Translation A Random Number public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException {... response.setContentType("text/html");... out.write(" A Random Number \r\n"); out.print( Math.random() ); out.write("\r\n");... }

Predefined Variables (Implicit Objects) The following predefined variables can be used: - request : the HttpServletRequest - response : the HttpServletResponse - session : the HttpSession associated with the request - out : the PrintWriter (a buffered version of type JspWriter ) used to fill the response content - application : The ServletContext These variables and more will be discussed in details

JSP Expressions JSP Expressions Current time: Your hostname: Your session ID: The testParam form parameter:

JSP Scriplets JSP scriptlets let you insert arbitrary code into the Servlet service method ( _jspService ) Scriptlets have the form: The code is inserted verbatim into the service method, according to the location of the scriplet Scriptlets have access to the same automatically defined variables as expressions

public void _jspService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {... response.setContentType("text/html");... out.print(foo()); bar();... } Scriptlet Translation

An Interesting Example Scriptlets don't have to be complete code blocks: You won the game! You lost the game! if (Math.random() < 0.5) { out.write("You won the game!"); } else { out.write("You lost the game!"); }

JSP Declarations A JSP declaration lets you define methods or members that get inserted into the Servlet class (outside of all methods) It has the following form: For example: It is usually of better design to define methods in a separate Java class...

Declaration Example Print the number of times the current page has been requested since the Servlet initialization: <%! private synchronized int incAccess() { return ++accessCount; } %> Accesses to page since Servlet init:

public class serviceCount_jsp extends... implements... throws... { private int accessCount = 0; private synchronized int incAccess() { return ++accessCount; } public void _jspService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {... out.write(" Accesses to page since Servlet init: "); out.print(incAccess());... }... }

jspInit and jspDestroy In JSP pages, like regular Servlets, we sometimes want to implement init and destroy It is illegal to use JSP declarations to override init or destroy, since they are (usually) already implemented by the generated Servlet Instead, override the methods jspInit and jspDestroy -The generated servlet is guaranteed to call these methods from init and destroy, respectively -The standard versions of jspInit and jspDestroy are empty (placeholders for you to override)

JSP Directives A JSP directive affects the structure of the Servlet class that is generated from the JSP page It usually has the following form: Three directives: page, include and taglib include and taglib will be discussed later

page -Directive Attributes import attribute: A comma separated list of classes/packages to import contentType attribute: Sets the MIME-Type of the resulting document (default is text/html) What is the difference between setting the contentType attribute, and writing ?

More page -Directive Attributes session="true|false" - use a session? buffer="sizekb|none" - Specifies the content-buffer size ( out ) autoFlush="true|false" -Specifies whether the buffer should be flushed when it fills, or throw an exception otherwise isELIgnored ="true|false" -Specifies whether JSP expression language is used -EL is discussed later

Variables in JSP

Implicit Objects As seen before, some useful variables, like request and session are predefined These variables are called implicit objects Implicit objects are defined in the scope of the service method -Can these be used in JSP declarations? Implicit objects are part of the JSP specifications

The objects request and response request and response are the HttpServletRequest and HttpServletResponse arguments of the service method Using these objects, you can: Read request parameters Set response headers etc. (everything we learned in Servlet lectures)

The object out This is the Writer used to add write output into the response body This object implements the interface JspWriter that combines the functionality of PrintWriter and BufferedWriter Recall that you can adjust the buffer size, or turn buffering off, through use of the buffer attribute of the page directive

The object pageContext pageContext is a new object introduced by JSP This object stores all important elements used by the generated Servlet, like the application context, the session, the output writer, etc. It enable vendors to elegantly extend their JSP implementation This object is also used to store page-scoped attributes (e.g., Java Beans - discussed later)

The object session This is the HttpSession object associated with the request If the session attribute in the page directive is turned off ( ) then this object is not available Recall that a session is created by default

The object config This is the ServletConfig of the page, as received in the init() method Remember: contains Servlet specific initialization parameters Later, we will study how initialization parameters are passed to JSP pages Recall that you can also obtain the ServletContext from config

The object application This is the ServletContext as obtained via getServletConfig().getContext() Remember: -The ServletContext is shared by all Web-application Servlets (including ones generated from JSP) -Getting and setting attributes is with getAttribute and setAttribute of ServletContext -You can use this object to get application-wide initialization parameters

Page Scope service() local variables pageContext attributes

Request Scope request attributes

Session Scope session attributes

Servlet Scope Servlet members

Application Scope application attributes

Servlet Package and Helper Classes The generated Servlet has a named package In Tomcat, this package is: org.apache.jsp In Java, you cannot use classes from the default package (i.e. with no package declaration) from a named package! Therefore, helper classes used by JSP pages must have a named package

JSP and XML

Simple XML Production ">

Generated XML red blue green

JSPX files are JSP files that have the extension jspx and have XML syntax Non-XML symbols <%, etc. are replaced with special JSP tags Default content type of JSPX is text/xml (and not text/html ) Thus, JSPX files generate XML and can be edited using XML tools JSPX Files

Expression Code Declaration <jsp:directive.type Attribute="value"/>

Problems with JSPX The XML declaration ( ) and the DOCTYPE definition are now those of the JSPX file. How do we include those in the result XML? -Solution: use the tag to explicitly require DOCTYPE and XML declarations How do we generate dynamic attribute values and still keep the document well formed? -Solution 1: use for explicit element construction -Solution 2: use an EL expression (discussed later)

<jsp:output doctype-root-element="colors" doctype-system="colors.dtd" /> static String[] colors = {"red","blue","green"}; i colors[i] }

JSP as JSPX You can tell the container that a JSP file acts as a JSPX file Use the element as the document root

]]> static String[] colors = {"red","blue","green"}; i colors[i] }

Using External Parameters

JSP Initial Parameters Like Servlets, initialization parameters can be passed to JSP files using the element of the application configuration file web.xml Use the sub-element instead of the sub-element A is also needed -Use the real JSP URL as the

dbLogin snoopy dbPassword snoopass An Example web.xml

ParamPage /paramPage.jsp tableName users ParamPage /paramPage.jsp web.xml

JSP initial parameters Hello I should use the table To access the Database, I should use the login and the password. paramPage.jsp