slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Java Server Pages (JSP) - Sharad Ballepu PowerPoint Presentation
Download Presentation
Java Server Pages (JSP) - Sharad Ballepu

Loading in 2 Seconds...

play fullscreen
1 / 41

Java Server Pages (JSP) - Sharad Ballepu - PowerPoint PPT Presentation


  • 207 Views
  • Uploaded on

Java Server Pages (JSP) - Sharad Ballepu. Java Server Pages (JSP). Servlets & JSPs. Agenda Introduction JSP Elements Implicit Objects Tag Libraries JSP Actions Error Handling Demo. Introduction – What is JSP.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Java Server Pages (JSP) - Sharad Ballepu


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Java Server Pages (JSP)

- Sharad Ballepu

servlets jsps

Java Server Pages (JSP)

Servlets & JSPs

Agenda

  • Introduction
  • JSP Elements
  • Implicit Objects
  • Tag Libraries
  • JSP Actions
  • Error Handling
  • Demo
slide3

Introduction – What is JSP

  • JSP Stands for Java Server Pages
  • Presents dynamic content to users
  • Handles the presentation logic in an MVC architecture

(business logic)

servlet

request

Container

Business Tier

Helper

Objects

JSP

(presentation logic)

response

slide4

Introduction – JSP v/s Servlet

How is JSP different / similar to Servlet?

slide5

Introduction – JSP is a Servlet

  • In the end, a JSP is just a Servlet

Is loaded and

Initialized as

Is translated to

Compiles to

writes

JSP

Import javax.

servlet.

HttpServlet.*

0010 0001

1100 1001

0001 0011

Servlet

MyJsp_jsp

Servlet

MyJsp.jsp

MyJsp_jsp.java

MyJsp_jsp.class

slide6

Introduction – Comments

  • JSP Comments
    • <%-- {CODE HERE} --%>
    • Does not show the comments on the page
    • Does not show the comments in page source
    • Can only be used outside JSP Elements
  • HTML Comments
    • <!– {CODE HERE} -->
    • Does not show the comments on the page
    • Shows the comments in page source
    • Can only be used outside JSP Elements
  • Single line Comments
    • // {CODE HERE}
    • When put outside JSP Elements, shows comments on the page & source
    • When put inside Scriptlets/Declarations, does not show on page &

source

    • Can be used inside scriptlets/declarations and outside JSP Elements
slide7

JSP Elements – Intro

  • Need to write some Java in your HTML?
  • Want to make your HTML more dynamic?
  • JSP Declarations :: Code that goes outside the service method
  • JSP Scriptlets :: Code that goes within the service method
  • JSP Expressions :: Code inside expressions is evaluated
  • JSP Directives :: Commands given to the JSP engine
slide8

JSP Elements - Declarations

  • What are declarations?
    • Whatever goes inside the “<%!{JAVA_HERE}%>” tags is called a declaration
    • Everything you write in a declarations goes outside the service method
    • Treat them as instance methods and instance variables
  • What do you declare in declarations?
    • You can declare methods and variables in declarations
  • Why do you need declarations?
    • You have any variable that needs to be shared across different requests.
    • You have repeated common code in you jsp, declare it in a method.
  • Example

<%! int instanceVar = 10; %>

slide9

JSP Elements - Declarations

Request 1

Service1

Service2

Service3

Request 2

Declarations

Request 3

slide10

JSP Elements - Scriptlets

  • What are declarations?
    • Whatever goes inside the “<%{JAVA_HERE}%>” tags is called a scriptlet
    • Everything you write in a scriptlets goes in the service method
    • Treat variables in scriptlets as method/local variables
  • What do you put in scriptlets?
    • Business logic in JSPs are put in scriptlets. Set of java statements
  • Why do you need scriptlets?
    • Need to perform some small business logic (if logic is complex, do in java)
    • Need to perform some basic validations
  • Example
  • <% int localVar = 10; %>
slide11

JSP Elements - Expressions

  • What are expressions?
    • Whatever goes inside the “<%={JAVA_HERE}%>” tags is called an expression
    • Code inside expressions is evaluated, and output is displayed
    • Whatever is put inside expressions should evaluate to a value
  • What do you put in scriptlets?
    • Variables or methods that return some values
  • Why do you need scriptlets?
    • Need to print some text onto the page
  • Example
  • <%= localVar %>
slide12

JSP Elements - Example

  • <html><head><title>JSP Elements Example</title>
  • </head>
  • <body>
  • <%! int userCnt = 0; %>
  • <%
  • String name = "Sharad";
  • userCnt++;
  • %>
  • <table>
  • <tr><td>
  • Welcome <%=name%>. You are user number <%=userCnt%>
  • </td></tr>
  • </table>
  • </body>
  • </html>

Declarations

Scriptlets

Expressions

slide13

JSP Elements - Directives

  • What are directives?
    • Whatever goes inside the “<%@{DIRECTIVES}%>” tags is called a directive
    • Directives gives pre-processing commands to the JSP Engine.
    • Everything in directives are processed before JSP is translated to Servlet
  • What do you put in directives?
    • Processing commands to the JSP Engine.
  • Why do you need directives?
    • To incorporate certain additional features into the JSP
    • Modifying the Servlet behaviour generated from the JSP
    • Include other html/jsp files in the JSP.
    • Provide tag libraries
  • Example
  • <%@ page import=“java.util.ArrayList” %>
slide14

Directives – page directive

  • Any number of the pre-defined attributes can be added to the page directive
  • <%@ page import = “{IMPORTED_CLASSES}”
  • contentType = “{CONTENT_TYPE}”
  • isThreadSafe = “{true/false}
  • session = “{true/false}”
  • buffer = “{BUFFER_SIZE}”
  • autoflush = “{true/false}”
  • extends = “{EXTENDS_FROM_PAGE}”
  • info = “{PAGE_INFO”}
  • errorPage = “{ERROR_PAGE_NAME}”
  • isErrorPage = “{true/false}”
  • language = “{LANGUAGE}”
slide15

Directives – include directive

  • Including other page content into your JSP
  • <%@ include file = {PAGE_URL_TO_INCLUDE} %>
  • Includes files at translation time
  • If included file is modified, the main jsp needs to be recompiled

Main page

Hello <%=userName%>

<%@ include file =“header.jsp"/>

header.jsp

<table><tr>

<td>Contact Details</td>

<tr></table>

<%@ include file =“footer.jsp"/>

main.jsp

footer.jsp

slide16

Directives – taglib directive

  • Providing output based on common custom logic
  • <%@ taglib uri=“{TLD_FILE}" prefix=“{PREFIX}" %>
  • Components involved in tag libraries
      • Tag handler class
        • Common custom logic and HTML generation
      • Descriptor configuration file
        • Directive’s properties mapping information
      • taglib directive
        • Used in JSPs to use the tag handler functionality
slide17

taglib directive – high-level overview

<tag>

<name>txtBox</name>

<tagclass>TxtBoxTag</tagclass>

<bodycontent>EMPTY</bodycontent>

<attribute>

<name>name</name>

<required>true</required>

….

</attribute>

</tag>

<%@ taglib uri=“sharmanjTags” prefix=“sharmanj” %>

…..

< sharmanj:txtBox length=“10“ name=“userName”/>

…..

test.jsp

sharmanj-taglib.tld

  • <web-app>
  • <taglib>
  • <taglib-uri>sharmanjTags</taglib-uri>
  • <taglib-location>
  • sharmanj-taglib.tld
  • </taglib-location>
  • </taglib>
  • </web-app>

public class TxtBoxTag extends TagSupport {

public int doStartTag() {

….

}

}

TxtBoxTag.java

web.xml

slide18

Implicit Objects - Introduction

  • Set of predefined objects readily available for use.
    • out: JspWriter
    • request: HttpRequest
    • response: HttpResponse
    • session: HttpSession
    • config: ServletConfig
    • application: ServletContex
    • page: JSP page
    • pageContext: Special object
slide19

Implicit Objects - Example

  • <html>
  • <head>
  • <title>JSP Implicit objects Example</title>
  • </head>
  • <body>
  • <%
  • if (“YES”.equals(request.getAttribute(“SCOPE”))) {
  • out.println(“REQUEST”);
  • } else {
  • if (“YES”.equals(session.getAttribute(“SCOPE”))) {
  • out.println(“SESSION”);
  • } else {
  • out.println(“NONE”);
  • }
  • }
  • %>
  • </body>
  • </html>
slide20

Implicit Objects – out

  • An instance of JspWriter
  • Writes statements to the page
  • The java way to display text on the webpage
  • Displaying dynamic data
slide21

Implicit Objects – request

  • Instance of HttpServletRequest
  • Use the attributes stored in request object for display /basic validations in JSP

Forwards request to JSP

JSP

JSP

Servlet

Servlet

request.setAttribute(“a”, “10”)

a = 10

Helper

Object

(a = 10)

Uses helper

object

slide22

Implicit Objects – response

  • Instance of HttpServletResponse
  • Send the response back to the client (HTML in most of the cases)

JSP1

Send response to client

response.sendRedirect(“url”);

JSP1

JSP2

Redirect to JSP2

Send response to client

slide23

Implicit Objects – session

  • Instance of HttpSession
  • Retrieve and set the session attributes in JSP
  • Remember the client across multiple requests

Request 1

Web App

Response1

CLIENT

Request 1

Response2

SESSION

slide24

Implicit Objects – config and application

  • config - Instance of ServletConfig
  • Application – instance of ServletContext

Servlet Context

JSP 1

JSP 1

JSP 1

JSP 1

Servlet Config

Servlet Config

Servlet Config

Servlet Config

slide25

Implicit Objects – page

Main page

Hello <%=userName%>

<jsp:include page=“/header.jsp"/>

header.jsp

<table><tr>

<td>Contact Details</td>

<tr></table>

<jsp:include page=“/footer.jsp"/>

footer.jsp

main.jsp

slide26

Implicit Objects – pageContext

application

session

pageContext

Least visible to most visible

request

page

slide27

JSP Actions

  • Special tags which provides special features
  • The container handles these tags in a special way
  • Addresses certain common functionalities
  • Achieve functionality with less code, and more standard way

<jsp:include>

<jsp:forward>

<jsp:param>

<jsp:useBean>

<jsp:getProperty>

<jsp:setProperty>

slide28

JSP Actions - <jsp:include>

  • Definition:
  • Includes a page at the given location in the main page

Syntax:

  • <jsp:include page="{PAGE_TO_INCLUDE}" flush="true" />
slide30

JSP Actions - <jsp:forward>

Definition:

Forwards the request to the given page

Syntax:

<jsp:forward page=“{PAGE_TO_FORWARD}" />

slide31

JSP Actions - <jsp:param>

Definition:

Pass parameters to the included/forwarded page

Syntax:

<jsp:include page="{PAGE_TO_INCLUDE}" flush="true" > <jsp:param name=“{parameterName}” value="{paramValue}" />

</jsp:include>

<jsp:forward page="{PAGE_TO_FORWARD}" flush="true" > <jsp:param name=“{parameterName}” value="{paramValue}" />

</jsp:forward>

slide32

JSP Actions - <jsp:useBean>

getId();

setId(..)

getName()

setName(…)

How can I use that bean?

bean

JSP

Servlet

request.setAttribute(“userBean”, userBean”)

<jsp:useBean …./>

slide33

JSP Actions - <jsp:useBean>

Definition:

Instantiate a bean class, use bean properties, and set property values

Syntax:

<jsp:useBean id=“{beanInstanceName}"

scope="page|request|session|application"

class=“{package.class}"

type=“{package.class}"

beanName=" {package.beanName}”>

</ jsp:useBean>

UserBean ub = new UserBean();

slide34

JSP Actions - <jsp:getProperty>

Definition:

Gets property values of a Bean

Syntax:

<jsp:getProperty name=“{beanInstanceName}"

property= “{propertyName}">

slide35

JSP Actions - <jsp:setProperty>

Definition:

Sets property values in a Bean

Syntax:

<jsp:setProperty name=“{beanInstanceName}"

property= "*" | property="propertyName"

param=“{parameterName}"

value="{paramValue}" } />

slide36

JSP Actions – useBean

<jsp:useBean id=“userBean"

scope="session“

class=“com.sharmanj.UserBean" >

<jsp:setProperty name=“userBean”

property=“userName”

value=“Sharad”/>

</ jsp:useBean>

<jsp:getProperty name=“userBean" property=“userName" />

slide37

Error Handling – Types of errors

  • Errors in java code in scriptlets
      • handle errors in try/catch block
      • may occur at runtime
  • Errors in HTML
      • adhere to the HTML rules
      • can be caught during testing
slide38

Error Handling

Why is error handling important in JSPs?

slide39

Error Handling – Error page

  • Error pages come to the rescue

<%@page isErrorPage="true" %>

<html>

<head>

<title>My Error Page</title>

</head>

<body>

We are sorry, the page you are

trying to access is currently not

available. Please try after some time

</body>

</html>

slide40

Error Handling

  • Specify error page in your main page
  • Specify error page in web.xml

<%@page errorPage=“errPage.jsp" %>

<html>

<head>

<title>This is the main page</title>

</head>

<body>

…………………..

…………………..

……………………

……………………

// ERROR CODE GOES HERE

………………….

………………….

</body>

</html>

<web-app>

…………….

……………

<error-page>

<exception-type>com.a.myExp</exception-type>

<location>/error.jsp</location>

</error-page>

<error-page>

<error-code>404</error-code>

<location>/errorServlet</location>

</error-page>

………………..

……………….

</web-app>