technologia jsp

19
Internet i jego zastosowania 1 Technologia JSP

Upload: pabla

Post on 07-Jan-2016

31 views

Category:

Documents


1 download

DESCRIPTION

Technologia JSP. Co to jest JSP?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Technologia JSP

Internet i jego zastosowania 1

Technologia JSP

Page 2: Technologia JSP

Internet i jego zastosowania 2

Co to jest JSP?

JSP, czyli Java Server Pages, to specyfikacja oparta na technologii Serwletów umożliwiającej tworzenie dynamicznych stron HTML, wzbogaconych o skrypty w Javie i specjalne znaczniki. Strona zawierająca skrypt jest kompilowana do postaci Serwleta, który obsługuje żądania do niej kierowane. Cała translacja i kompilacja odbywa się w tle i jest wykonywana przez kontener. Dzięki temu zachowano korzyści, które niosła technologia Java Servlets.

Page 3: Technologia JSP

Internet i jego zastosowania 3

Engine JSP & Servlets

Page 4: Technologia JSP

Internet i jego zastosowania 4

Model Viewer Controller

Wzorzec MVC jest podejściem hybrydowym służącym do przetwarzania zapytań klienta

Page 5: Technologia JSP

Internet i jego zastosowania 5

Serwlety i JSP – porównanie

• obie technologie są równoważne, czyli każdy serwlet można zaprojektować jako stronę JSP i odwrotnie, ale biorąc pod uwagę model MVC odgrywają one różne role

• JSP zapewniają podział prac pomiędzy programistom a designerem stron HTML

• serwletów można używać gdy chcemy wykonać czynności inicjalizacyjne, zapisywać dane w formacie binarnym do klienta a także elementy związane z tzw. Logiką biznesowa.

Page 6: Technologia JSP

Internet i jego zastosowania 6

Dyrektywy Dyrektywy to znaczniki które stosują się do całego pliku JSP. Należą do nich:

– Page. stosuje się do deklaracji pakietów używanych w pliku, ustalania tekstu informacyjnego, definiowania strony błędów. Przykładowo, jeżeli chcemy używać pakietu java.util, należy umieścić w źródle strony:

<%@ page import="java.text.SimpleDateFormat,java.util.*" %><%@ page errorPage=„error.jsp" %> <%@ page isErrorPage=„true" %> (error.jsp)

– Include, która powoduje zamieszczenie w miejscu jej występowania treści określonego pliku, z uwzględnieniem przetwarzania elementów JSP w nim zawartych. Dzięki temu można stworzyć kod wielokrotnie używany na wielu stronach i przechowywać go w jednym miejscu.

<%@ include file="info.jsp" %>

Page 7: Technologia JSP

Internet i jego zastosowania 7

Dyrektywy – cd.

• TagLib, określająca bibliotekę znaczników z której zamierzamy korzystać. Zostanie ona szerzej omówiona w dalszej części prezentacji.

Page 8: Technologia JSP

Internet i jego zastosowania 8

Deklaracje

Deklaracje, wyrażenia i skryptlety są kodem w języku skryptowym stosowanym w stronie JSP. Obecnie jedynym dostępnym językiem jest Java.W pojedynczym znaczniku może się ich znaleźć więcej niż jedna. Deklarować można zarówno zmienne jak i metody.

 <%! String text = “Hello World”; Date currentDate = new Date(); %> 

<%! private void doSomething(String obj) throws IOException { . . . ciało metody} %>

Page 9: Technologia JSP

Internet i jego zastosowania 9

Wyrażenia

Wyrażenia podobnie jak deklaracje mają swoje odpowiedniki w języku Java. Jest to kod który przyjmuje konkretną wartość klasy String. Dzięki temu mamy do dyspozycji bardzo łatwy mechanizm wklejania w stronę prostych, dynamicznie generowanych treści.

<%= request.getServerName() %>

 <%= new Date() %> ( (new Date()).toString() )

Page 10: Technologia JSP

Internet i jego zastosowania 10

Skryptlety

Dopełnieniem deklaracji i wyrażeń są skryptlety w których można zawierać większą ilość kodu, instrukcje sterujące, itp.

<% for (Enumeration e=session.getAttributeNames();e.hasMoreElements();) {

attrName = (String) e.nextElement(); %>

<B><U> <%= attrName %> </U>= </B><% } %>

<% if (kobieta) { %>

Szanowna Pani!<% } else { %>

Szanowny Panie!<% } %>

Page 11: Technologia JSP

Internet i jego zastosowania 11

Predefiniowane obiekty Obiekt Typ Zakres Najczęściej używane metody

request Subclass of javax. servlet. ServletRequest

Request getAttribute, getParameter, getParameterNames, getParameterValues, setAttribute

response Subclass of javax. servlet. ServletResponse

Page Standardowo nie używana przez autorów stron JSP

pageContext

javax. servlet. jsp. PageContext

Page findAttribute, getAttribute, getAttributesScope, getAttributeNamesInScope, setAttribute

session javax. servlet. http. HttpSession

Session getAttribute, getId, setAttribute

application javax. servlet. ServletContext Application getAttribute, getMimeType, getRealPath, setAttribute

out javax. servlet. jsp. JspWriter Page clear, clearBuffer, flush, getBufferSize, getRemaining

config javax. servlet. ServletConfig Page getInitParameter, getInitParameterNames

page java. lang. Object Page Standardowo nie używana przez autorów stron JSP

exception java. lang. Throwable Page getMessage, getLocalizedMessage, printStackTrace, toString

Page 12: Technologia JSP

Internet i jego zastosowania 12

Efektywność

Dotychczas opisane elementy JSP umożliwiają napisanie w pełni funkcjonalnych, dynamicznych stron HTML. Mają one jednak wadę polegającą na konieczności zawierania nieraz dużej ilości kodu (skryptlety) dotyczącego logiki biznesowej wymieszanego z kodem HTML. Utrudnia to zarządzanie i współpracę członków zespołu implementującego serwis, podobnie jak to ma miejsce w ‘czystych’ Serwletach. Rozwiązaniem tego problemu jest możliwość zamykania logiki w komponentach o dobrze zdefiniowanych interfejsach, przy użyciu wzorca projektowego MVC (np. framework Struts).

Page 13: Technologia JSP

Internet i jego zastosowania 13

JavaBeans

JavaBeans były stosowane jeszcze przed powstaniem specyfikacji JSP i zostały zaadoptowane do nich w naturalny sposób. Są one wykorzystywane często do przetwarzania danych.

Przykladowy kod:<% ShoppingCart cart = (ShoppingCart)session. getAttribute("cart"); // If the user has no cart, create a new one

if (cart == null) { cart = new ShoppingCart(); session.setAttribute("cart", cart); }

%>

można wyraźić też przy użyciu JavaBeans:<jsp:useBean id="cart" class="cart.ShoppingCart" scope="session"/>

Page 14: Technologia JSP

Internet i jego zastosowania 14

JavaBeans – cd.

Ustawienie pola „propName”:<jsp:setProperty name=„cart” property="propName" value="string"/>

Ustawienie pola „propName” wartością pobraną z requestu(parametr „paramName”):<jsp:setProperty name=„cart” property="propName" param="paramName"/>

Parametry requestu wstawiane do pól beana:<jsp:setProperty name="beanName" property="*"/>

Page 15: Technologia JSP

Internet i jego zastosowania 15

Biblioteki znaczników – taglibs Nowym elementem wprowadzonym w specyfikacji JSP 1.1 są biblioteki znaczników (tag), których funkcjonalność może być dowolnie definiowana przez twórców.Podstawowe różnice pomiędzy JavaBeans, a tag’ami to:

– JavaBean’y, w przeciwieństwie do znaczników nie mogą przetwarzać zawartości strony JSP

– Stosowanie tagów jest bardziej naturalne dla twórców stron WWW

– Tworzenie tagów wymaga więcej wysiłku

Page 16: Technologia JSP

Internet i jego zastosowania 16

Prosty ‘tag handler’

import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;import java.io.*;

 public class ExampleTag

extends TagSupport { public int doStartTag() {

try { JspWriter out = pageContext.getOut(); out.print("Custom tag example"); } catch(IOException ioe) { System.out.println("Error in ExampleTag: " + ioe); } return(SKIP_BODY); } }

Metoda doStartTag wywoływana jest w trakcie napotkania znacznika początkowego. Zapis do wynikowej strony HTML uzyskuje się poprzez obiekt pageContext klasy PageContext ustawiany w trakcie inicjalizacji tag’a przez kontener.

Page 17: Technologia JSP

Internet i jego zastosowania 17

Deskryptor biblioteki (example-taglib.tld)

<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE taglib

PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">

<!-- a tag library descriptor --><taglib><tlibversion>1.0</tlibversion><jspversion>1.1</jspversion> <shortname>examplejsp</shortname><urn></urn><info> A example tag library </info><tag> <name>example</name> <tagclass>examples.tags.ExampleTag</tagclass> <info>Simplest example: inserts one line of output</info> <bodycontent>EMPTY</bodycontent></tag><!-- Other tags defined later ...--></taglib>

Page 18: Technologia JSP

Internet i jego zastosowania 18

Przykład użycia tagliba

<HTML> <HEAD>

<%@ taglib uri="example-taglib.tld" prefix="example" %> <TITLE>Przykład użycia tagliba</TITLE>

</HEAD>

<BODY> <H1><example:example /></H1> <example:example /> </BODY> </HTML>

Page 19: Technologia JSP

Internet i jego zastosowania 19

Dziękuję za uwagę

Dodatkowe informacje- http://java.sun.com- http://www.onjava.com- http://jakarta.apache.org (Tomcat, Struts)