Technologia JSP.

Slides:



Advertisements
Podobne prezentacje
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Advertisements

Wstęp do strumieni danych
Mgr inż.Marcin Borkowski Podstawy Java Część II
Mgr inż.Marcin Borkowski Podstawy Java Krótkie wprowadzenie dla studentów Wyższej Szkoły Ekologii i Zarządzania
Programowanie obiektowe
Deklaracje i definicje klas w C++ Składowe, pola, metody Konstruktory
Standardowa biblioteka języka C++
Wzorce.
Kamil Smitkiewicz Bezpieczeństwo w PHP.
Nguyen Hung Son Uniwersytet Warszawski
Architektura systemu Gra strategiczna „Strusia Jama”
Serwery Aplikacji ASP .NET Web Objects Arkadiusz Popa.
Model – View - Controler
PHP vs. ASP PHP – lider wydajności wśród języków skryptowych.
Inżynieria oprogramowania Lecture XXX JavaTM – część IV: IO
Platforma J2EE korporacyjny standard wytwarzania złożonych systemów informatycznych Autor: Jarosław Lis Warszawa, 2006r.
Wzorce projektowe w J2EE
181 JAVA – JSP Java EE training: JAVA SERVER PAGES PODSTAWY.

Projektowanie warstwy serwera Znaczniki jsp. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu.
Projektowanie warstwy serwera Wprowadzenie. Projektowanie warstwy serwera Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu.
Serializacja Serializacja pozwala zamienić obiekt na sekwencję bajtów, w sposób umożliwiający później wierne odtworzenie jego zawartości Inna nazwa to.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Rozwój aplikacji przy wykorzystaniu ASP.NET
Instytut Tele- i Radiotechniczny WARSZAWA
A ctive S erver P ages Technologia dostępu do danych.
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Wstęp do JavaScriptu Marek Magiera Październik 2003r.
TABLICE C++.
Technologie tworzenia aplikacji internetowych Wykład 3
Technologie internetowe II
Programowanie obiektowe – zastosowanie języka Java SE
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
Seminarium problemowe
Serwery aplikacji Zope Tomcat. Składniki Zopea: Serwer Management interface Databases.
Farseer Physics Engine. Farseer Physics Engine jest silnikiem fizycznym napisanym dla platformy.NET. Został on zainspirowany przez silnik Box2D znany.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Systemy zarządzania treścią Wykład 5
Programowanie sieciowe w Javie
Projektowanie stron WWW
K URS JĘZYKA C++ – WYKŁAD 7 ( ) Wyjątki.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Technologie programowania systemów internetowych
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Podstawy języka skryptów
Hibernate Podstawy.
Elementy JavaServer Pages. Dyrektywy JSP  Elementy dyrektyw używane są do określania tej informacji o stronie, która pozostaje bez zmiany między żądaniami.
Odwzorowania relacyjno-obiektowe Hibernate Podstawy.
Temat Prezentacji : ZNACZNIKI META TAGS wyk.H. Kozłowski.
Wzorce Projektowe w JAVA
Object-relational mapping (aka O/RM, ORM, and O/R mapping)
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Języki i technologie wytwarzania stron WWW Autor: Michał Walkowski Referat.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówka-Matejewska
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
InMoST, Java – przykładowa aplikacja Bartosz.Michalik
Inżynieria systemów informacyjnych
Programowanie Obiektowe – Wykład 6
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
(według:
Programowanie obiektowe – zastosowanie języka Java SE
PGO Interfejsy Michail Mokkas.
Zapis prezentacji:

Technologia JSP

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.

Engine JSP & Servlets

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

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.

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" %>

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

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} %>

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() )

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!

Predefiniowane obiekty 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 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 clear, clearBuffer, flush, getBufferSize, getRemaining config javax. servlet. ServletConfig getInitParameter, getInitParameterNames page java. lang. Object exception java. lang. Throwable getMessage, getLocalizedMessage, printStackTrace, toString

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).

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"/>

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="*"/>

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

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.

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>

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>

Dziękuję za uwagę Dodatkowe informacje http://java.sun.com http://www.onjava.com http://jakarta.apache.org (Tomcat, Struts)