DT211/3 Internet Application Development

Slides:



Advertisements
Similar presentations
Java Script Session1 INTRODUCTION.
Advertisements

The Web Warrior Guide to Web Design Technologies
Chapter 51 Scripting With JSP Elements JavaServer Pages By Xue Bai.
DT211/3 Internet Application Development JSP: Processing User input.
JSP: JavaServer Pages Juan Cruz Kevin Hessels Ian Moon.
DT228/3 Web Development multi page applications/ sharing data.
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.
JSP Java Server Pages Reference:
DT228/3 Web Development JSP: Directives and Scripting elements.
DT228/3 Web Development Databases. Database Almost all web application on the net access a database e.g. shopping sites, message boards, search engines.
1 CS6320 – JSP L. Grewe 2 Java Server Pages Servlets require you to write out entire page delivered with print statements Servlets require you to write.
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
Three types of scripting elements: 1.Expressions 2.Scriptlets 3.Declarations Scripting elements.
Web programming for project students Dr Jim Briggs.
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.
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
DAT602 Database Application Development Lecture 15 Java Server Pages Part 1.
1 CIS336 Website design, implementation and management (also Semester 2 of CIS219, CIS221 and IT226) Lecture 9 JavaServer Pages (JSP) (Based on Møller.
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.
Netbeans – jsp.zip Introduction to JSP Netbeans – jsp.zip.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
JSP Standard Tag Library
Using JavaBeans and Custom Tags in JSP Lesson 3B / Slide 1 of 37 J2EE Web Components Pre-assessment Questions 1.The _____________ attribute of a JSP page.
JSP Java Server Pages Softsmith Infotech.
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.
 Embeds Java code  In HTML tags  When used well  Simple way to generate dynamic web-pages  When misused (complex embedded Java)  Terribly messy.
Client Scripting1 Internet Systems Design. Client Scripting2 n “A scripting language is a programming language that is used to manipulate, customize,
® IBM Software Group © 2007 IBM Corporation JSP Expression Language
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.
XP Tutorial 10New Perspectives on Creating Web Pages with HTML, XHTML, and XML 1 Working with JavaScript Creating a Programmable Web Page for North Pole.
Tutorial 10 Programming with JavaScript
JSTL, XML and XSLT An introduction to JSP Standard Tag Library and XML/XSLT transformation for Web layout.
JSTL Lec Umair©2006, All rights reserved JSTL (ni) Acronym of  JavaServer Pages Standard Tag Library JSTL (like JSP) is a specification, not an.
Fall 2007cs4201 Advanced Java Programming Umar Kalim Dept. of Communication Systems Engineering
Chapter 7 Using Custom Tag Libraries and the JSP Standard Tag Library.
JSP Fundamentals Elements of a JSP Using Beans with JSP Integrating Servlets and JSP.
7 1 User-Defined Functions CGI/Perl Programming By Diane Zak.
Java server pages. A JSP file basically contains HTML, but with embedded JSP tags with snippets of Java code inside them. A JSP file basically contains.
FT228/3 Web Development Error processing. Introduction READ Chapter 9 of Java Server Pages from O’reilly 2 nd Edition Need to be able to 1) Diagnose and.
Overview of Form and Javascript fundamentals. Brief matching exercise 1. This is the software that allows a user to access and view HTML documents 2.
CSC 2720 Building Web Applications JavaServer Pages (JSP) JSP Directives and Action Elements.
JSP BASICS AND ARCHITECTURE. Goals of JSP Simplify Creation of dynamic pages. Separate Dynamic and Static content.
XP New Perspectives on XML, 2 nd Edition Tutorial 7 1 TUTORIAL 7 CREATING A COMPUTATIONAL STYLESHEET.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
JAVA BEANS JSP - Standard Tag Library (JSTL) JAVA Enterprise Edition.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
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.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
STRUCTURE OF JSP PRESENTED BY: SIDDHARTHA SINGH ( ) SOMYA SHRIVASTAV ( ) SONAM JINDAL ( )
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.
Chapter 6 Chapter 6 Server Side Programming (JSP) Part 1 1 (IS 203) WebProgramming (IS 203) Web Programming.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
DT228/3 Web Development JSP: Actions elements and JSTL.
Tutorial 10 Programming with JavaScript. 2New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition Objectives Learn the history of JavaScript.
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.
10 Copyright © 2004, Oracle. All rights reserved. Building ADF View Components.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
XP Tutorial 10New Perspectives on HTML, XHTML, and DHTML, Comprehensive 1 Working with JavaScript Creating a Programmable Web Page for North Pole Novelties.
JSP: Actions elements and JSTL
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.
Knowledge Byte In this section, you will learn about:
JSP Directives 1-Jan-19.
JSP implicit objects & directive elements
Presentation transcript:

DT211/3 Internet Application Development JSP: Actions elements and JSTL

Introduction Previously, identified that JSP provides a variety of techniques to enable dynamic processing: Directive elements So far, have looked at these Scripting elements Action elements and JSTL Java Beans

JSP Action elements Action elements are an important syntax element in JSP They are represented by tags (as is HTML) They assist JSP developers to develop in tags rather than scriplet programming Instead of <%, they just use the < character (like HTML) <prefix:action_name> body </prefix:action_name >

Part after the “:” is the Action Name JSP Action elements JSP tags have a “start tag”, a “tag body” and an “end tag”. The start and end tag have the same name enclosed in < and > The tag names have an embedded colon character “:” in them, the part before the colon (prefix) describes the type of the tag <prefix:action_name> body </prefix:action_name> Part after the “:” is the Action Name Note: Syntax of Action Elementags is based on XML

<jsp:include page="scripts/login.jsp" /> JSP Action elements Tags have associated attributes (like HTML e.g. <img src = “..”) Full syntax of JSP Action Elements is: <prefix:action_name attr1 = “value” attr2 = “value2” action_body </prefix:action_name> If the element doesn’t have a body, can lose the end tag and use shorthand syntax of: <prefix:action_name attr1 = “value” attr2 = “value2” /> For example: <jsp:include page="scripts/login.jsp" />

JSP Action elements Two types 1. 2. JSP Pre-defined tags External tag library (e.g. JSTL) Tags prefix is <jsp: ….> Tags prefix is whatever developer chooses or library recommends Custom and JSTL (Also called Standard Action Elements)

JSP Action elements: JSP Predefined Tags Also called JSP Standard Action Elements List of these elements are: <jsp:forward> <jsp:include> <jsp:param> <jsp:plugin> <jsp:useBean> <jsp:getProperty> <jsp:setProperty> See http://java.sun.com/products/jsp/syntax/1.1/syntaxref11.html for detailed attributes and values Used for Java Beans

JSP Predefined Tag Example <jsp:include> Standard Action Example: <JSP: include> tag Example: <HTML> <BODY> Going to include hello.jsp...<BR> <jsp:include page="hello.jsp"/> </BODY> </HTML> Executes the included JSP page and adds its output into the this page

JSP Predefined Tag Example <jsp:include> What’s Difference from Using the ‘include’ directive? e.g. %@ include file = ‘hello.jsp’ %> The include directive includes the contents of another file at compilation time. Good for including common static code e.g. header file, footer file. Good on performance  included only once. But, what if including dynamic common code (e.g. a navigation bar where links are read from the dB?).. need to re-run the file each time a request is made - JSP: include JSP: include incorporates the output of the included JSP file at run time

JSP Predefined Tag Example <jsp:forward> Standard Action Example: <JSP: forward> tag Stops processing of one page and starts processing the page specified by the page attribute Example: <HTML> <BODY> Error occurred…please wait<BR> <jsp:forward page=“errorpage.jsp"/> </BODY> </HTML>

JSP Predefined Tag Example <jsp:param> Standard Action Example: <JSP: param> tag Can be used to pass parameters when using <jsp:include> or <JSP:forward> Example <jsp:include page="login.jsp"> <jsp:param name="username" value="jsmith" /> </jsp:include> Executes a login page jsp:param passes in username to the login page

JSP Action Elements JSP pre-defined tags (standard actions elements) Done External Tag library: ------- Custom ------- Java Standard tag library

External tag libraries – custom JSP Action elements: External tag libraries – custom JSP 1.1. introduced ‘tag libraries’, allowing addition of tags beyond standard action <jsp: > tags Developers can develop their own Custom action elements using custom tag libraries Custom tag libraries are useful where developers are working in teams – reusabletags can be supplied to team via custom tag libraries. The library is identifed in the JSP page using the <taglib> directive

JSP Action Elements JSP pre-defined tags (standard actions elements) Done External Tag library: ------- Custom Done ------- Java Standard tag library

External tag libraries – JSTL JSP Action elements: External tag libraries – JSTL JSP 1.2 introduced supported for a special tag library called the JSP Standard Tag Library (JSTL) Version 1.0 released in June 2002 Version 1.1 released in June 2004 The JSTL saves programmers from having to develop custom tag libraries for a range of common tasks, such as database access, conditional loops etc Enabled developers to produce more maintainable, simpler JSP code Important development for JSP technology

JSTL The JSP Standard Tag Library groups actions into four libraries as follows**: Library Contents Core Core functions such as conditional processing and looping, important data from external environments etc Formatting Format and parse information SQL read and write relational database data XMl Processing of XML data ** more may be added in later releases…

JSTL To use any of these libraries in a JSP, need to declare using the taglib directive in the JSP page, specifying the URI and the Prefix Library Prefix URI Core c http://java.sun.com/jsp/jstl/core Formatting fmt http://java.sun.com/jsp/jstl/fmt SQL sql http://java.sun.com/jsp/jstl/sql XMl xml http://java.sun.com/jsp/jstl/xml Example of declaring use of core library: <%@ taglib prefix = “c” uri = “http://java.sun.com/jsp/jstl/core %>

JSTL: Example Example: JSP page using JSTL that outputs 1 to 10 on a webpage using the <c:forEach> and <c:out> tags of the core library <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head> <title>Count to 10 Example (using JSTL)</title> </head> <body> <c:forEach var="i" begin="1" end="10" step="1"> <c:out value="${i}" /> <br /> </c:forEach> </body> </html> A taglib directive declare use of core library JSTL tag examples

JSTL: Example <c:foreach> Looking more closely at <c:forEach tag> ….. <c:forEach var="i" begin="1" end="10" step="1"> <c:out value="${i}" /> <br /> </c:forEach> </body> </html> The <forEach> tag enables loop logic. In this case, will look through 10 times. Equivalent to java “for” loop Closing tag <c:forEach> placed after the end of body of loop

JSTL: Example <c:foreach> All JSTL tags have a set of attributes (similar to HTML tags..) e.g. <c:foreach> tag has 6 attributes: var, items, varStatus, begin, end, step The full details for each attribute is in the JSTL specification document (on distrib). See p 65 for <c:foreach> tag definition Willl need to use this document to verify WHICH tag should be used and HOW is should be used

JSTL: Example <c:out> <c:out> .. outputs a value to webpage. Usually uses just one attribute value Examples: <c:out value="${i}" /> <c:out value=“The result of 1 + 2 is ${1+2}” /> <c:out value=“param.userName" />

JSTL: Example <c:if> <c:if> .. evaluates a condition. Uses an attribute test to hold the condition Example : <%-- Simple if conditions --%> <c:if test='${param.p == "someValue"}'> Generate this template text if p equals someValue </c:if> Example 2 <c:if test='${param.p}'> Generate this template text if p equals "true“

JSTL: Multiple ‘if’ conditions An if/else action requires the use of the <c:choose> tag Syntax : <c:choose> body content (<when> and <otherwise> subtags) </c:choose> See page 52 of JSTL specification doc.

JSTL: Multiple ‘if’ conditions Uses <c:choose>, <c:when> and <c:otherwise> Example: <c:choose> <c:when test='${param.p == "0"}'> <c:out value = “zero recorded”/> </c:when> <c:when test='${param.p == "1"}'> Generate this <c:out value = “single value”/> <c:otherwise> <c:out value = “Set to ${param.p}”/> </c:otherwise> </c:choose>

JSTL: Other core <c:..> actions Other examples: (NOT a complete list!) <c:set> ….sets the value of a variable <c:remove> ….removes a scoped variable <c:catch> ….catches an exception <c:url> ….. encodes a URL <c:import>… imports the content of a resource <c:redirect>.. redirects to another URL <c:param>.. adds a request parameter to other actions

JSTL: Expression language Up to now, could only use Java expressions to assign dynamic values  syntax errors common JSTL now provides an expression language (EL) to support the tags  simpler syntax, less errors The EL is now part of the JSP specification (as of versions JSP2.0) – can be used in JSTL tags or directly in JSP pages.

JSTL: Expression language All EL expressions are evaluated at runtime The EL usually handles data type conversion and null values -- easy to use An EL expression always starts with a ${ and ends with a }

JSTL: Expression language The expression can include - literals ( “1”, “100” etc) - variables - implicit variables (more later) Examples: <c:out value = “${1+2+3}” /> <c:if test = “${param.Address == “D6”}” /> expression

JSTL: Expression language - operators == != < + - * / or div > <= >= Logical operators consist of && (or and), || (or or), and ! (or not). The empty operator is a prefix operator that can used to determine if a value is null or empty. For example: <c:if test=”${empty param.name}”> Please specify your name. </c:if>

JSTL implicit variables The JSTL EL allows these objects to be accessed as ‘Implicit Variables’ Implicit variable are just pre-agreed fixed variable names that can be used in JSTL Expressions -- Think of as “variables that are automatically available to your JSP page”..

JSTL: Expression language – Implicit Objects Full set of implicit variables on page 211 of JSTL documentation (includes: header, pageScope..) or on page 74 of O’Reilly’s Java Server Pages book Very common implicit object is param param refers to parameter passed in a request message (e.g. information entered into a form by a user). e.g. <c:out value = “${param.userName}”/> Further Examples of using param in next topic

Comparing JSTL vs Scriptlets JSTL removes complexity by using tags instead of java code (abstraction) JSP pages using JSTL usually easier to maintain JSTL allows HTML ‘tag’ developers to ‘program’ JSTL often more difficult to debug Note: Using JSTL does not eliminate scriplets entirely.. may still need them sometimes for more complex logic http://www.informit.com/isapi/product_id~{27F6F199-F5FD-474C-AC7F-B3FC2C1F57B6}/st~{94C03A97-1188-4875-8A06-17743BA224B7}/session_id~{6A766315-391B-4F55-9AFB-B5425F6196C5}/content/articlex.asp

Info on JSTL 1. Java Server Pages by Hans Bergsten – full reference on all JSTL tags in the Appendix. 2. Sun tutorial. Contains examples. Chapter 17 is on JSTL at: http://java.sun.com/webservices/docs/1.1/tutorial/doc/index.html 3. Sun’s JSTL 1.0 tag specification on distrib. Good for definition of each tag. Poor on examples.

Setting up JSTL in a web application JSTL is provided as part of Tomcat 5 Ensure the two JSTL .jar files are copied into the WEB-INF\lib directory of your web application Ensure the taglib directive(s) is in your JSP page