Java Server Pages

thickbugSoftware and s/w Development

Oct 28, 2013 (3 years and 7 months ago)

86 views

Java Server Pages

An introduction to JSP

Containers and Components


Several clients


one system



Java Server Pages (JSP)


HTML with embedded Java code


Good for presentation


No print statements


Compiled to a Servlet at runtime


Good performance


Easy deployment


When a JSP is updated it’s recompiled


Possible to compile manually


Easy for web designers to use


Edited in an ordinary HTML editor


Support for Java Beans and Custom tags

JSP


Directives


At the top of a JSP page, the page directive
is used


<%@ page name=“value” %>

JSP


Page Directive parameters


language


Default is java


extends


Default is the base JSP class, but you could use
your own


import=“package1,package2, class1, class2”


session


True or False, determines if sessions should be
automatically created. True is default

JSP


Page Directive parameters


buffer


The output buffer size


autoFlush


True or false, determines if the output should be
flushed to the client. True is default


isThreadSafe


True or false. True is default


info


Descriptive text

JSP


Page Directive parameters


errorPage


The page to go to in case of an error


contentType


isErrorPage


Defines if this is a error page. False is default. If
it’s an error page a couple of extra objects are
available in the page

Other Directives


Include directive


<%@ include file=“relative url” %>


Includes the file BEFORE compilation


Only static content

JSP


Implicit objects


In JSPs, a couple of objects are allways available


request


Subclass of ServletRequest


getParameter(), getParameterNames()


getAttribute()





Response


Subclass of ServletResponse


Not used in normal situations


pageContext


Used to get configuration variables for this page


getAttribute()

JSP


Implicit objects


session


The HttpSession


Created automatically if session is not false in the page directive


application


javax.servlet.ServletContext


Used to get information about the application


out


Used to print (in scriptlets)


clear(), clearBuffer(), flush()


config


javax.servlet.ServletConfig


getInitParameter(), getInitParameterNames()


page


exception


JSP


Implicit objects


exception


Only in error pages


getMessage()


printStackTrace()


Java Code


Three ways to use Java Code in your JSP


<%! Declaration %>


Declares member variables


NOT thread safe


<%= MyClass.printMessage() %>


Used to print single expressions

Java Code


<% any java code %>


Can contain the entire application


Use with care


Can give very hard to read code

<% if(status == 1)


{

%>


<h3>Yo</h3>

<%}

Else{

%>


<h3>Oy</h3>

<% } %>


JSP Tags


There are a couple of tags available and you
can extend the tag set with your own tags


XML Syntax


Doesn’t distract HTML authoring tools

Forward


<jsp:forward page=“relative URL” />


Forwards the request

Include


<jsp:include page=“relative url”
flusth=“true/false” />


Includes the output in runtime


Can be dynamic content

UseBean


<jsp:useBean id=“instance name”
scope=“page|request|session|application”
beanName=“package.class”|class=“package.
class” />


Used to initialize a bean. Only called once

<jsp:useBean …>


<h4>The bean is created</h4>

</jsp:useBean>


GetProperty


Used to call getXXX methods in a bean


<jsp:getProperty name=“bean instance
name” property=“name” />


Will call bean.getName()


Name is the same as id in <jsp:useBean>

SetProperty


Used to call setXXX methods in a bean


<jsp:setProperty name=“instance name”
property=“*|propertyname” value=“value” />


When * is used as property name, a setXXX
for value in getParameterNames() will be
called

Example


package test1;


class TestBean{



private String name;



private String surname;




public String getName(){



return name;



}



public String getSurname(){



return surname;



}



public void setSurname(String _surname){



surname=_surname;



}



public void setName(String name=_name){



name=_name;



}


}

Example cont.

<%@ page languea=“java” session=“true” %>

<jsp:useBean id=“tb” class=“test1.TestBean”
scope=“session”>

<i>The bean is created </i>

<jsp:getProperty name=“tb” property=“name” />

<jsp:setProperty name=“tb” property=“name”
value=“Fredrik” />