SlideShare a Scribd company logo
1 of 53
YALOVA ÜN VERS TESİ İ İ
Bilgisayar Mühendisi Mimar ASLAN
www.udemy.com/u/mimaraslan
mimaraslan@gmail.com
JSP ve nedir? Ve ne Değildir?
JavaServer Pages (JSP) bir programlama dili değilidir.
Java diline ait teknolojilerden bir tanesidir.
JavaServer Pages sayfalarının dosya uzantısı .jsp’dir.
JSP kurumsal dinamik web projelerinde kullanılmaktır.
JSP, HTML kodlarının arasına yazılır ve server(sunucu) tarafındaki Java
class(sınıf)ları ile birlikte çalışır.
Neden JSP kullanmalıyım?
JSP’nin temelinde JAVA dili vardır.
JSP gücünü nesne yönelimli JAVA dilinden
almaktadır.
JSP teknolojisi Java sofrasındaki
herşeyden kolaylıkla yer içer.
JSP geniş çaplı dinamik web projeleri için
altyapı sunar.
Java programlama dilini bu kadar önemli yapan şeyler
nelerdir?
Günümüz teknolojilerinde pastanın
en büyük dilinmini Java proglama
dili almaktadır.
Java en basit elektronik araçtan
tutunda Mars’taki uzay aracına
kadar kullanılmaktadır.
Kurumsal Java’da JSP’nin yeri ve önemi
JSP’nin geliştirilmesinde hangi kurumlar rol aldılar?
Java Servlet’in kullanımı web alında muhteşemdi
fakat programcıların Servletleri kodlamaları oldukça
uzun zaman alıyordu. Sun Microsystems bu
duruma bir çare aradılar ve JavaServer Pages
(JSP) betik dili doğdu.
Apache Group'a JSP ve Java Servlet kodlarının
üzerinde çalışmaları için bu dev projeyi verdiler.
Kısa bir zaman sonra Apache Group'ta Tomcat adlı
ürünü piyasaya sürdü. Sonuçta meşhur Apache's
Tomcat ortaya çıktı.
Web Server (Web Sunucusu)
Web sunucuları farklı istemcilerden gönderilen isteklere cevaplar
vermektedir.
Günümüzde ücretli ve ücretsiz birçok web sunucusu bulunmaktadır.
Application Server (Uygulama Sunucusu)
Java kodlarının çalıştırılması demek uygulama demektir. Bu durumda
Application Server(Uygulama Sunucusu)nda bir JSP sayfasının çalıştırılması
da bir java uygulamasının çalışması demektir.
JSP sayfaları sıradan Web
Serverlerde değil de
Application Server(Uygulama
Sunucusu)nda çalışırlar.
JSP ile yazılan sayfaları
sunucuda servletlere yani saf
java kodlarına çevrilir.
JSP ve Servlet ilişkisi
Servletler platformlardan-bağımsız %100 java modül(parça)larıdır.
Html kodlarının arasına yazılan her JSP sayfası sunucuda servlete yani java
koduna çevrilir. Böylece her sayfanın servleti sunucuda oluşturuluyor.
Servletler web serverlerin yeteneklerini ve yapabilecekleri işlerin kalitesini
arttırırlar.
JSP ile Servletler birbirini tamamlayıcı iki teknolojidir.
JSP ve Servlet ilişkisi
JSP, Servletlerin devamı mıdır ?
Servlet teknolojisinin web sayfalarında kullanımını kolaylaştırılması JSP ile
olmuştur.
Servletler üzerinden proje geliştirmek çok uzun zaman alıyordu ve çok ta
zahmetliydi.
JSP ve Temel Tagları
1- Declaration tag Bildiri etiketi <%! %>
2- Expression tag İfade etiketi <%= %>
3- Directive tag Emir etiketi <%@ directive … %>
4- Scriptlet tag Kodlama etiketi <% ... %>
5- Action tag Olay tagı
Declaration tag- Bildiri etiketi
<%!
public int tarih = 1453 ;
public String lider = "Fatih Sultan Mehmet Han" ;
%>
Değişkenleri ve metodları tanımlarken kullanılır.
Başında ( ! ) ünlem vardır ve ifade sonunda ( ; ) noktalı virgül vardır.
Expression tag - İfade etiketi
JSP sayfalarında Java ifadelerini kullanırken gereklidir.
Web sayfasına herhangi birşeyleri yazı olarak yazdırmak
için kullanışlıdır.
Başında ( = ) eşittir vardır ve ifade sonunda ( ; ) noktalı
virgül yoktur.
Tarih : <%= new java.util.Date() %>
Directive tag - Emir etiketi
1.Page directive (Sayfa)
JSP sayfasında işlenecek sınıfları ve bilgileri tanımlar.
2.Include directive (Ekleme, dahil etme)
Dışarıdan harici dosya, web sayfalarını ve kod parçalarını JSP sayfalarına
ekler.
• 3.Tag library directive (Etiket kütüphanesi)
Özel etiket kütüphaneleri kullanır.
<%@ page import = "java.util.*, java.sql.*" %>
<%@ include file = "haberler.jsp" %>
<%@ taglib uri = "tag library URI" prefix = "bubizimtagimizinonisimi" %>
<%@ taglib uri ="http://java.sun.com/jsp/jstl/core" prefix ="c" %>
Scriptlet tag - Kodlama etiketi
Java kodlarımızı yazarken işimize yarar.
<%
String sehirAdi = "İstanbul" ;
out.println (sehirAdi) ;
int fetihTarihi = 1453 ;
out.println (fetihTarihi) ;
%>
Standard Tag Library (JSTL)
•JSTL, JSP nin standart etiket
arşividir.
•Temel amacı java web
uygulamalarını geliştirmeyi ve
kullanılabilirliği artırmaktır.
•JSP scriptlets yani normal Java
kodlarına göre JSTL kullanmanın
daha kolaydır.
Standard Tag Library (JSTL)
JSP içinde Java kodlarını
basitleştirmekdir.
JSTL temelde sağladığı
kolaylıklarıyla JSP nin ayrılmaz
bir parçasıdır.
JSTL standardize edilmiştir.
JSTL kullanmanın avantajları nedir?
Scriptlets (JSP içinde Java kodları)ı karmaşıktır
ve muhafaza edilmesi son derece zordur.
Scriptlets’in aksine JSTL nin JSP sayfasından
okunması ve bakımı kolaydır.
JSTL nin etiketleri normal HTML etiketlerine
benzerdir. Scriptlets (JSP içinde Java kodları)
yerine JSTL kullanırsak HTML programcıları
kolaylıkla JSP içinde neler olup bittiğini
anlayabilir.
JSTL de her etiketinin adı kendini açıklar
tarzdadır ve anlaşılmayı da kolaylaştırır.
JSTL Türü Nelere destek verir? Prefix (Ön ek)
Core
Değişken desteği vardır.
cAkış kontrolü vardır.
URL yönetimi vardır.
Çeşitli alt tagları vardır.
Format
I18n
Yerel formatlar desteği vardır.
fmtMesaj biçimlendirme desteği vardır.
Sayı ve tarih biçimlendirme desteği vardır.
Functions
Yardımcı fonksiyon koleksiyonları vardır.
fnDizgi metinlerin kullanımına destek vardır.
Database SQL desteği vardır.
sql
XML
Core Tags desteği vardır.
xAkış kontrolü vardır.
Dönüşüm desteği vardır.
JSTL Etiket Türleri
JSTL Core Tags
JSTL Türü Nelere destek verir? Tags(Etiketler)
Prefix
(Ön ek)
Core
Değişken desteği vardır.
remove
set
c
Akış kontrolü vardır.
choose
when
otherwise
forEach
forTokens
if
URL yönetimi vardır.
import
param
redirect
param
url
param
Çeşitli alt tagları vardır.
catch
out
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
JSTL Format Tags
Internationalization Tags Tablosu
JSTL Türü Nelere destek verir? Tags(Etiketler) Prefix (Ön ek)
Format
I18n
Yerel formatlar desteği vardır.
setLocale
requestEncoding
fmt
Mesaj biçimlendirme desteği
vardır.
bundle
message
param
setBundle
Sayı ve tarih biçimlendirme
desteği vardır.
formatNumber
formatDate
parseDate
parseNumber
setTimeZone
timeZone
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
JSTL Function Tags
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
JSTL Türü Nelere destek verir? Tags(Etiketler)
Prefix
(Önek)
Functions
Yardımcı fonksiyon
koleksiyonları vardır.
length
fnDizgi metinlerin
kullanımına destek vardır.
toUpperCase, toLowerCase
substring, substringAfter,
substringBefore
trim
replace
indexOf,
startsWith,
endsWith,
contains,
containsIgnoreCase
split,
join
escapeXml
JSTL SQL Tags
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
JSTL Türü Nelere destek verir? Tags(Etiketler)
Prefix (Ön
ek)
Database
SQL desteği
vardır.
setDataSource
query
dateParam
param
transaction
update
dateParam
param
sql
JSTL XML tags
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
JSTL Türü Nelere destek verir? Tags(Etiketler)
Prefix
(Ön ek)
XML
Core Tags desteği
vardır.
out
parse
set
xAkış kontrolü vardır.
choose
when
otherwise
forEach
if
Dönüşüm desteği
vardır.
transform
param
JSTL nin eksiklikleri nelerdir?
Scriptlets (JSP içinde Java kodları)ı daha
esnekliktir. JSP programcısına tam detaylı
inceden inceye kontrolü ele almasına izin
verir.
JSTL’de perde arkasında olup bitenlerden
haberdar olmak zorunda değiliz.
JSTL deki bir çok özel her etiketin vazifesine
göre farklı amaçları vardır. Bu da JSTL yi iyi
bilmeyen HTML programcılarını yorabilir.
JSTL Kullanım Örnekleri
ornek1.jsp
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>JSTL c:out kullanımı</title>
</head>
<body>
<h1>JSTL c:out kullanımı</h1>
<c:out value="Güzel gören güzel düşünür." />
<br>
<c:out value="Güzel düşünen, hayatından lezzet alır." />
</body>
</html>
<body>
<h1>JSTL c:set - c:remove ve c:out kullanımı</h1>
<c:set var="degisken"
value="Güzel gören güzel düşünür.
Güzel düşünen, hayatından lezzet alır." />
<c:out value="${degisken}" />
<hr>
<c:remove var="degisken" />
<c:out value="${degisken}" />
<c:out value="Mesajımız silinmiş." />
</body>
Operatör JSP sayfalarında kullanılan JSTL deki karşılığı
> gt
< lt
>= ge
<= le
== eq
!= ne
&& and
|| or
! not
‘’ empty
/ div
% mod
<c:if test="${ KontrolEdilenDeger Opertörler Şartımız }">
Testin sonucu ${KontrolEdilenDeger} olarak belirlendi.
</c:if>
<body>
<h1>JSTL c:if kullanımı</h1>
<h2>
<c:if test="${param.gecerlilikdenetimi}">
Geçerlilik gecerlilik denetimi : ${param.gecerlilikdenetimi}
</c:if>
<br>
<c:if test="${param.adisoyadi != null}">
Adı Soyadı null değilse? != null : ${param.adisoyadi}
</c:if>
<br>
<c:if test="${param.puani >= 0 and param.puani <= 10}">
0-10 üzerinden Puanı : ${param.puani}
</c:if>
</h2>
</body>
<c:url value="gonderilecekSayfaAdresi"
var="gonderilecekParametreler" >
<c:param name="parametreAdi1" value="parametreDegeri1">
<c:param name="parametreAdi2" value="parametreDegeri2">
<c:param name="parametreAdi3" value="parametreDegeri3">
</c:url>
<c:forEach var="i" begin=" baslangicSayisi" end=" bitisSayisi" step=" artisMiktari">
<c:choose>
<c:when test="şart"><c:out value="değer" /> Şarta göre verilen mesaj<br></c:when>
<c:otherwise><c:out value="bitisDeğeriAşılırsa" /> Varsayılan mesaj<br></c:otherwise>
</c:choose>
</c:forEach>
<body>
<h1>JSTL c:redirect kullanımı</h1>
<c:redirect url="ornek1.jsp" />
</body>
<body>
<h2>JSTL SQL Tagları ile MySQL Veritabanı Bağlantısı</h2>
<sql:query var="sorgu"
dataSource="jdbc/JSPStandardTagLibraryProjesiDatasource">
SELECT
`musteri_bilgileri`.`musteri_id`,
`musteri_bilgileri`.`musteri_no`,
`musteri_bilgileri`.`musteri_adi`,
`musteri_bilgileri`.`musteri_soyadi`,
`musteri_bilgileri`.`musteri_meslegi`,
`musteri_bilgileri`.`musteri_email`
FROM `magazatakibi`.`musteri_bilgileri`;
</sql:query>
<table border="1">
<!-- Kolonların Başlıkları -->
<tr>
<c:forEach var="kolonBasligi" items="${sorgu.columnNames}">
<th><c:out value="${kolonBasligi}"/></th>
</c:forEach>
</tr>
<!-- Kolonların Bilgileri -->
<c:forEach var="satir" items="${sorgu.rowsByIndex}">
<tr>
<c:forEach var="kolon" items="${satir}">
<td><c:out value="${kolon}"/></td>
</c:forEach>
</tr>
</c:forEach>
</table>
</body>
JSP Standard Tag Library Projesiweb5-JSTL XML tagsarabalar.xml
<?xml version="1.0" encoding="UTF-8"?>
<arabalar>
<araba>
<marka>MERCEDES</marka>
<model>E-Serisi Sedan</model>
<renk>Gri</renk>
</araba>
<araba>
<marka>BMW</marka>
<model>6 Serisi Cabrio</model>
<renk>Siyah</renk>
</araba>
<araba>
<marka>ANADOL</marka>
<model>Otosan 500</model>
<renk>Beyaz</renk>
</araba>
<araba>
<marka>TOYOTA</marka>
<model>Corolla</model>
<renk>Mavi</renk>
</araba>
</arabalar>
<h2>JSTL XML Tags Kullanımı</h2>
<c:import url="arabalar.xml" var="url" />
<x:parse xml="${url}" var="XmlBelgesi" />
<table border="1">
<thead>
<tr>
<th><b>MARKASI</b></th>
<th><b>MODELİ</b></th>
<th><b>RENGİ</b></th>
</tr>
</thead>
<tbody>
<x:forEach var="otomobil" select="$XmlBelgesi/arabalar/araba">
<tr>
<td><font color="red"><x:out select="$otomobil/marka"/></font></td>
<td><font color="red"><x:out select="$otomobil/model"/></font></td>
<td><font color="red"><x:out select="$otomobil/renk"/></font></td>
</tr>
</x:forEach>
</tbody>
</table>
Yayınlanmış Kitaplarım
www.umuttepeyayinlari.com
www.udemy.com/u/mimaraslan
Online Video Eğitimlerim
Güzel gören güzel dü ünür.ş
Güzel dü ünen hayatından lezzet alır.ş
B.S.N.
JSPseminerine katılıp beni sabırla
dinlediğiniz için sizlere çok teşekkür ederim.
Bilgisayar Mühendisi Mimar ASLAN
www.udemy.com/u/mimaraslan
mimaraslan@gmail.com

More Related Content

What's hot (7)

Işık Üniversitesi - Spring Core
Işık Üniversitesi - Spring CoreIşık Üniversitesi - Spring Core
Işık Üniversitesi - Spring Core
 
İstanbul Üniversitesi - Swing Application Framework
İstanbul Üniversitesi - Swing Application Frameworkİstanbul Üniversitesi - Swing Application Framework
İstanbul Üniversitesi - Swing Application Framework
 
AnkaraJUG Nisan 2013 - Java Persistance API
AnkaraJUG Nisan 2013 - Java Persistance APIAnkaraJUG Nisan 2013 - Java Persistance API
AnkaraJUG Nisan 2013 - Java Persistance API
 
Angular Web Programlama
Angular Web ProgramlamaAngular Web Programlama
Angular Web Programlama
 
Java ee kursu-izmir
Java ee kursu-izmirJava ee kursu-izmir
Java ee kursu-izmir
 
React.js Web Programlama
React.js Web ProgramlamaReact.js Web Programlama
React.js Web Programlama
 
Java ee kursu-tuzla
Java ee kursu-tuzlaJava ee kursu-tuzla
Java ee kursu-tuzla
 

Viewers also liked (8)

Bilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSF
Bilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSFBilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSF
Bilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSF
 
Beykoz Meslek Yüksekokulu - (JavaServer Faces) JSF
Beykoz Meslek Yüksekokulu - (JavaServer Faces) JSFBeykoz Meslek Yüksekokulu - (JavaServer Faces) JSF
Beykoz Meslek Yüksekokulu - (JavaServer Faces) JSF
 
Kocaeli Üniversitesi - (JavaServer Faces) JSF
Kocaeli Üniversitesi -  (JavaServer Faces) JSFKocaeli Üniversitesi -  (JavaServer Faces) JSF
Kocaeli Üniversitesi - (JavaServer Faces) JSF
 
SRS for student database management system
SRS for student database management systemSRS for student database management system
SRS for student database management system
 
Türkiye tanıtım sunusu ingilizce
Türkiye tanıtım sunusu ingilizceTürkiye tanıtım sunusu ingilizce
Türkiye tanıtım sunusu ingilizce
 
Turkey Ppt
Turkey PptTurkey Ppt
Turkey Ppt
 
Turkey presentation
Turkey presentationTurkey presentation
Turkey presentation
 
presentation of Turkey
presentation of Turkeypresentation of Turkey
presentation of Turkey
 

Similar to Yalova Üniversitesi - (JavaServer Pages) JSP (20)

Java SE 8 Programming
Java SE 8 Programming Java SE 8 Programming
Java SE 8 Programming
 
Java EE Struts
Java EE StrutsJava EE Struts
Java EE Struts
 
Java ee kursu-atasehir
Java ee kursu-atasehirJava ee kursu-atasehir
Java ee kursu-atasehir
 
Java ee kursu-catalca
Java ee kursu-catalcaJava ee kursu-catalca
Java ee kursu-catalca
 
Java ee kursu-bagcilar
Java ee kursu-bagcilarJava ee kursu-bagcilar
Java ee kursu-bagcilar
 
Java ee kursu-maltepe
Java ee kursu-maltepeJava ee kursu-maltepe
Java ee kursu-maltepe
 
Java ee kursu-kartal
Java ee kursu-kartalJava ee kursu-kartal
Java ee kursu-kartal
 
Java EE Nedir? (Baku JUG)
Java EE Nedir? (Baku JUG)Java EE Nedir? (Baku JUG)
Java EE Nedir? (Baku JUG)
 
Java ee kursu-gaziantep
Java ee kursu-gaziantepJava ee kursu-gaziantep
Java ee kursu-gaziantep
 
Java ee kursu-gungoren
Java ee kursu-gungorenJava ee kursu-gungoren
Java ee kursu-gungoren
 
Java ee kursu-antalya
Java ee kursu-antalyaJava ee kursu-antalya
Java ee kursu-antalya
 
Primeface
PrimefacePrimeface
Primeface
 
Java ee kursu-kagithane
Java ee kursu-kagithaneJava ee kursu-kagithane
Java ee kursu-kagithane
 
Java ee kursu-sultanbeyli
Java ee kursu-sultanbeyliJava ee kursu-sultanbeyli
Java ee kursu-sultanbeyli
 
Java ee kursu-esenyurt
Java ee kursu-esenyurtJava ee kursu-esenyurt
Java ee kursu-esenyurt
 
Java ee kursu-esenler
Java ee kursu-esenlerJava ee kursu-esenler
Java ee kursu-esenler
 
Java ee kursu-avcilar
Java ee kursu-avcilarJava ee kursu-avcilar
Java ee kursu-avcilar
 
Java ee kursu-kocaeli
Java ee kursu-kocaeliJava ee kursu-kocaeli
Java ee kursu-kocaeli
 
Java ee kursu-umraniye
Java ee kursu-umraniyeJava ee kursu-umraniye
Java ee kursu-umraniye
 
Java ee kursu-cekmekoy
Java ee kursu-cekmekoyJava ee kursu-cekmekoy
Java ee kursu-cekmekoy
 

Yalova Üniversitesi - (JavaServer Pages) JSP

  • 1. YALOVA ÜN VERS TESİ İ İ Bilgisayar Mühendisi Mimar ASLAN www.udemy.com/u/mimaraslan mimaraslan@gmail.com
  • 2.
  • 3. JSP ve nedir? Ve ne Değildir? JavaServer Pages (JSP) bir programlama dili değilidir. Java diline ait teknolojilerden bir tanesidir. JavaServer Pages sayfalarının dosya uzantısı .jsp’dir. JSP kurumsal dinamik web projelerinde kullanılmaktır. JSP, HTML kodlarının arasına yazılır ve server(sunucu) tarafındaki Java class(sınıf)ları ile birlikte çalışır.
  • 4. Neden JSP kullanmalıyım? JSP’nin temelinde JAVA dili vardır. JSP gücünü nesne yönelimli JAVA dilinden almaktadır. JSP teknolojisi Java sofrasındaki herşeyden kolaylıkla yer içer. JSP geniş çaplı dinamik web projeleri için altyapı sunar.
  • 5. Java programlama dilini bu kadar önemli yapan şeyler nelerdir? Günümüz teknolojilerinde pastanın en büyük dilinmini Java proglama dili almaktadır. Java en basit elektronik araçtan tutunda Mars’taki uzay aracına kadar kullanılmaktadır.
  • 7. JSP’nin geliştirilmesinde hangi kurumlar rol aldılar? Java Servlet’in kullanımı web alında muhteşemdi fakat programcıların Servletleri kodlamaları oldukça uzun zaman alıyordu. Sun Microsystems bu duruma bir çare aradılar ve JavaServer Pages (JSP) betik dili doğdu. Apache Group'a JSP ve Java Servlet kodlarının üzerinde çalışmaları için bu dev projeyi verdiler. Kısa bir zaman sonra Apache Group'ta Tomcat adlı ürünü piyasaya sürdü. Sonuçta meşhur Apache's Tomcat ortaya çıktı.
  • 8. Web Server (Web Sunucusu) Web sunucuları farklı istemcilerden gönderilen isteklere cevaplar vermektedir. Günümüzde ücretli ve ücretsiz birçok web sunucusu bulunmaktadır.
  • 9. Application Server (Uygulama Sunucusu) Java kodlarının çalıştırılması demek uygulama demektir. Bu durumda Application Server(Uygulama Sunucusu)nda bir JSP sayfasının çalıştırılması da bir java uygulamasının çalışması demektir. JSP sayfaları sıradan Web Serverlerde değil de Application Server(Uygulama Sunucusu)nda çalışırlar. JSP ile yazılan sayfaları sunucuda servletlere yani saf java kodlarına çevrilir.
  • 10. JSP ve Servlet ilişkisi Servletler platformlardan-bağımsız %100 java modül(parça)larıdır. Html kodlarının arasına yazılan her JSP sayfası sunucuda servlete yani java koduna çevrilir. Böylece her sayfanın servleti sunucuda oluşturuluyor. Servletler web serverlerin yeteneklerini ve yapabilecekleri işlerin kalitesini arttırırlar.
  • 11. JSP ile Servletler birbirini tamamlayıcı iki teknolojidir. JSP ve Servlet ilişkisi
  • 12. JSP, Servletlerin devamı mıdır ? Servlet teknolojisinin web sayfalarında kullanımını kolaylaştırılması JSP ile olmuştur. Servletler üzerinden proje geliştirmek çok uzun zaman alıyordu ve çok ta zahmetliydi.
  • 13. JSP ve Temel Tagları 1- Declaration tag Bildiri etiketi <%! %> 2- Expression tag İfade etiketi <%= %> 3- Directive tag Emir etiketi <%@ directive … %> 4- Scriptlet tag Kodlama etiketi <% ... %> 5- Action tag Olay tagı
  • 14. Declaration tag- Bildiri etiketi <%! public int tarih = 1453 ; public String lider = "Fatih Sultan Mehmet Han" ; %> Değişkenleri ve metodları tanımlarken kullanılır. Başında ( ! ) ünlem vardır ve ifade sonunda ( ; ) noktalı virgül vardır.
  • 15. Expression tag - İfade etiketi JSP sayfalarında Java ifadelerini kullanırken gereklidir. Web sayfasına herhangi birşeyleri yazı olarak yazdırmak için kullanışlıdır. Başında ( = ) eşittir vardır ve ifade sonunda ( ; ) noktalı virgül yoktur. Tarih : <%= new java.util.Date() %>
  • 16. Directive tag - Emir etiketi 1.Page directive (Sayfa) JSP sayfasında işlenecek sınıfları ve bilgileri tanımlar. 2.Include directive (Ekleme, dahil etme) Dışarıdan harici dosya, web sayfalarını ve kod parçalarını JSP sayfalarına ekler. • 3.Tag library directive (Etiket kütüphanesi) Özel etiket kütüphaneleri kullanır. <%@ page import = "java.util.*, java.sql.*" %> <%@ include file = "haberler.jsp" %> <%@ taglib uri = "tag library URI" prefix = "bubizimtagimizinonisimi" %> <%@ taglib uri ="http://java.sun.com/jsp/jstl/core" prefix ="c" %>
  • 17. Scriptlet tag - Kodlama etiketi Java kodlarımızı yazarken işimize yarar. <% String sehirAdi = "İstanbul" ; out.println (sehirAdi) ; int fetihTarihi = 1453 ; out.println (fetihTarihi) ; %>
  • 18. Standard Tag Library (JSTL) •JSTL, JSP nin standart etiket arşividir. •Temel amacı java web uygulamalarını geliştirmeyi ve kullanılabilirliği artırmaktır. •JSP scriptlets yani normal Java kodlarına göre JSTL kullanmanın daha kolaydır.
  • 19. Standard Tag Library (JSTL) JSP içinde Java kodlarını basitleştirmekdir. JSTL temelde sağladığı kolaylıklarıyla JSP nin ayrılmaz bir parçasıdır. JSTL standardize edilmiştir.
  • 20. JSTL kullanmanın avantajları nedir? Scriptlets (JSP içinde Java kodları)ı karmaşıktır ve muhafaza edilmesi son derece zordur. Scriptlets’in aksine JSTL nin JSP sayfasından okunması ve bakımı kolaydır. JSTL nin etiketleri normal HTML etiketlerine benzerdir. Scriptlets (JSP içinde Java kodları) yerine JSTL kullanırsak HTML programcıları kolaylıkla JSP içinde neler olup bittiğini anlayabilir. JSTL de her etiketinin adı kendini açıklar tarzdadır ve anlaşılmayı da kolaylaştırır.
  • 21. JSTL Türü Nelere destek verir? Prefix (Ön ek) Core Değişken desteği vardır. cAkış kontrolü vardır. URL yönetimi vardır. Çeşitli alt tagları vardır. Format I18n Yerel formatlar desteği vardır. fmtMesaj biçimlendirme desteği vardır. Sayı ve tarih biçimlendirme desteği vardır. Functions Yardımcı fonksiyon koleksiyonları vardır. fnDizgi metinlerin kullanımına destek vardır. Database SQL desteği vardır. sql XML Core Tags desteği vardır. xAkış kontrolü vardır. Dönüşüm desteği vardır. JSTL Etiket Türleri
  • 22. JSTL Core Tags JSTL Türü Nelere destek verir? Tags(Etiketler) Prefix (Ön ek) Core Değişken desteği vardır. remove set c Akış kontrolü vardır. choose when otherwise forEach forTokens if URL yönetimi vardır. import param redirect param url param Çeşitli alt tagları vardır. catch out <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  • 23. JSTL Format Tags Internationalization Tags Tablosu JSTL Türü Nelere destek verir? Tags(Etiketler) Prefix (Ön ek) Format I18n Yerel formatlar desteği vardır. setLocale requestEncoding fmt Mesaj biçimlendirme desteği vardır. bundle message param setBundle Sayı ve tarih biçimlendirme desteği vardır. formatNumber formatDate parseDate parseNumber setTimeZone timeZone <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  • 24. JSTL Function Tags <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> JSTL Türü Nelere destek verir? Tags(Etiketler) Prefix (Önek) Functions Yardımcı fonksiyon koleksiyonları vardır. length fnDizgi metinlerin kullanımına destek vardır. toUpperCase, toLowerCase substring, substringAfter, substringBefore trim replace indexOf, startsWith, endsWith, contains, containsIgnoreCase split, join escapeXml
  • 25. JSTL SQL Tags <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> JSTL Türü Nelere destek verir? Tags(Etiketler) Prefix (Ön ek) Database SQL desteği vardır. setDataSource query dateParam param transaction update dateParam param sql
  • 26. JSTL XML tags <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %> JSTL Türü Nelere destek verir? Tags(Etiketler) Prefix (Ön ek) XML Core Tags desteği vardır. out parse set xAkış kontrolü vardır. choose when otherwise forEach if Dönüşüm desteği vardır. transform param
  • 27. JSTL nin eksiklikleri nelerdir? Scriptlets (JSP içinde Java kodları)ı daha esnekliktir. JSP programcısına tam detaylı inceden inceye kontrolü ele almasına izin verir. JSTL’de perde arkasında olup bitenlerden haberdar olmak zorunda değiliz. JSTL deki bir çok özel her etiketin vazifesine göre farklı amaçları vardır. Bu da JSTL yi iyi bilmeyen HTML programcılarını yorabilir.
  • 29.
  • 30. ornek1.jsp <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSTL c:out kullanımı</title> </head> <body> <h1>JSTL c:out kullanımı</h1> <c:out value="Güzel gören güzel düşünür." /> <br> <c:out value="Güzel düşünen, hayatından lezzet alır." /> </body> </html>
  • 31.
  • 32. <body> <h1>JSTL c:set - c:remove ve c:out kullanımı</h1> <c:set var="degisken" value="Güzel gören güzel düşünür. Güzel düşünen, hayatından lezzet alır." /> <c:out value="${degisken}" /> <hr> <c:remove var="degisken" /> <c:out value="${degisken}" /> <c:out value="Mesajımız silinmiş." /> </body>
  • 33.
  • 34.
  • 35. Operatör JSP sayfalarında kullanılan JSTL deki karşılığı > gt < lt >= ge <= le == eq != ne && and || or ! not ‘’ empty / div % mod
  • 36. <c:if test="${ KontrolEdilenDeger Opertörler Şartımız }"> Testin sonucu ${KontrolEdilenDeger} olarak belirlendi. </c:if> <body> <h1>JSTL c:if kullanımı</h1> <h2> <c:if test="${param.gecerlilikdenetimi}"> Geçerlilik gecerlilik denetimi : ${param.gecerlilikdenetimi} </c:if> <br> <c:if test="${param.adisoyadi != null}"> Adı Soyadı null değilse? != null : ${param.adisoyadi} </c:if> <br> <c:if test="${param.puani >= 0 and param.puani <= 10}"> 0-10 üzerinden Puanı : ${param.puani} </c:if> </h2> </body>
  • 37. <c:url value="gonderilecekSayfaAdresi" var="gonderilecekParametreler" > <c:param name="parametreAdi1" value="parametreDegeri1"> <c:param name="parametreAdi2" value="parametreDegeri2"> <c:param name="parametreAdi3" value="parametreDegeri3"> </c:url> <c:forEach var="i" begin=" baslangicSayisi" end=" bitisSayisi" step=" artisMiktari"> <c:choose> <c:when test="şart"><c:out value="değer" /> Şarta göre verilen mesaj<br></c:when> <c:otherwise><c:out value="bitisDeğeriAşılırsa" /> Varsayılan mesaj<br></c:otherwise> </c:choose> </c:forEach> <body> <h1>JSTL c:redirect kullanımı</h1> <c:redirect url="ornek1.jsp" /> </body>
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45. <body> <h2>JSTL SQL Tagları ile MySQL Veritabanı Bağlantısı</h2> <sql:query var="sorgu" dataSource="jdbc/JSPStandardTagLibraryProjesiDatasource"> SELECT `musteri_bilgileri`.`musteri_id`, `musteri_bilgileri`.`musteri_no`, `musteri_bilgileri`.`musteri_adi`, `musteri_bilgileri`.`musteri_soyadi`, `musteri_bilgileri`.`musteri_meslegi`, `musteri_bilgileri`.`musteri_email` FROM `magazatakibi`.`musteri_bilgileri`; </sql:query>
  • 46. <table border="1"> <!-- Kolonların Başlıkları --> <tr> <c:forEach var="kolonBasligi" items="${sorgu.columnNames}"> <th><c:out value="${kolonBasligi}"/></th> </c:forEach> </tr> <!-- Kolonların Bilgileri --> <c:forEach var="satir" items="${sorgu.rowsByIndex}"> <tr> <c:forEach var="kolon" items="${satir}"> <td><c:out value="${kolon}"/></td> </c:forEach> </tr> </c:forEach> </table> </body>
  • 47.
  • 48. JSP Standard Tag Library Projesiweb5-JSTL XML tagsarabalar.xml <?xml version="1.0" encoding="UTF-8"?> <arabalar> <araba> <marka>MERCEDES</marka> <model>E-Serisi Sedan</model> <renk>Gri</renk> </araba> <araba> <marka>BMW</marka> <model>6 Serisi Cabrio</model> <renk>Siyah</renk> </araba> <araba> <marka>ANADOL</marka> <model>Otosan 500</model> <renk>Beyaz</renk> </araba> <araba> <marka>TOYOTA</marka> <model>Corolla</model> <renk>Mavi</renk> </araba> </arabalar>
  • 49. <h2>JSTL XML Tags Kullanımı</h2> <c:import url="arabalar.xml" var="url" /> <x:parse xml="${url}" var="XmlBelgesi" /> <table border="1"> <thead> <tr> <th><b>MARKASI</b></th> <th><b>MODELİ</b></th> <th><b>RENGİ</b></th> </tr> </thead> <tbody> <x:forEach var="otomobil" select="$XmlBelgesi/arabalar/araba"> <tr> <td><font color="red"><x:out select="$otomobil/marka"/></font></td> <td><font color="red"><x:out select="$otomobil/model"/></font></td> <td><font color="red"><x:out select="$otomobil/renk"/></font></td> </tr> </x:forEach> </tbody> </table>
  • 50.
  • 53. Güzel gören güzel dü ünür.ş Güzel dü ünen hayatından lezzet alır.ş B.S.N. JSPseminerine katılıp beni sabırla dinlediğiniz için sizlere çok teşekkür ederim. Bilgisayar Mühendisi Mimar ASLAN www.udemy.com/u/mimaraslan mimaraslan@gmail.com

Editor's Notes

  1. SGSGD