JavaScript – Genel Bakış

asdsadas

Bu yazımızda JavaScript diline giriş yapacağız

JavaScript Netscape firması tarafından geliştirilmiş , web sayfalarına etkileşimli ve dinamik özellikler katmamızı sağlayan standart bir script dilidir

JavaScript kullanarak HTML bileşenlerine erişip bu bileşenlerin değerlerini dinamik olarak değiştirebiliriz

Örnek JavaScript kodu

<html>
<head>
<script type="text/javascript">
 var d = new Date();
 var time=d.getHours();
 
 if(time < 12){
  alert('Günaydın');                             
 }else{
  alert('Merhaba');
 }

</script>
</head>
</html>

Güncel web tarayıcılarının hepsi JavaScript i desteklemektedir . Fakat bazı durumlarda Javascript kodları çalışırken tarayıcıların bazı fonksiyonları desteklememesi nedeniyle sıkıntı yaşanabilmektedir

JavaScript Kodları HTML kodlarının hangi bölümünde yazılmalıdır ? 

Javascript kodları HTML HEAD kısmına ve BODY kısmına yazılabilir

<html>
<head>
<script type="text/javascript">
 
         *******
         **
         **    JS KODLARI
         **
         *******

</script>
</head>
</html>

 

<html>
<head>
</head>
<body>
     <script>
       document.write("<p>This is a paragraph</p>"); 
     </script> 
</head>
</html>

Continue reading JavaScript – Genel Bakış

JSF JSTL , JSTL Functions

JSP Standard Tag Library (JSTL) & JSF

Burada bir kac ornek yapacagiz ve JSTL kodlarimizi xhtml dosyalarinda kullanabildigimizi gorecegiz.

Facelet dosyalari , <c:out> JSTL tagini kullanmamiza izin vermez!

JSP dosyalarimizda JSTL i kullanabilmek icin @taglib directive eklememiz gerekliydi.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

Facelets sayfalarimizda da namespace eklememiz gerekli

xmlns:c="http://java.sun.com/jstl/core"

<c:set> ,<c:if> gibi JSTL taglari icin jar eklememiz gerekmezken c:forEach icin eklememiz gerekmektedir.

pom.xml

	        <dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.1.2</version>
		</dependency>

		<dependency>
			<groupId>taglibs</groupId>
			<artifactId>standard</artifactId>
			<version>1.1.2</version>
		</dependency>

JSTLBean.java

package _17.jstl;

import java.util.HashMap;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name = "JSTLBean")
@SessionScoped
public class JSTLBean {

	private String property1;
	private Map<String, String> map = new HashMap<String, String>();

        //getters and setters
}

Continue reading JSF JSTL , JSTL Functions

JSF Expression Language

Bu bolumde Expression Language konusuna deginecegiz.

2 tane Expression Language kumesi mevcuttur.

  • JSP Expression Language
  • JSF Expression Language

JSP Expression Language ile JSF Expression Language arasinda farkliliklar mevcuttur. Gramer olarak baktigimizda

  • JSP Expression Language dolar $ karakteri ile baslar ve suslu parantezler ile devam eder/sonlanir.
  • JSF Expression Language diyez # isareti ile baslar ve suslu parantezler ile devam eder/sonlanir.
  • JSP Expression Language , page compilation time da yani sayfa render edildiginde hemen calistirilir.
  • JSF Expression Language , deferred ( ertelenmis / gecikmeli) olarak calisir. JSF lifecycle context ine gore calisacaktir.

Unified Expression Language

Unified Expression Language ozelligi JSF 2.1 ile birlikte gelmistir. JSP Expression Language ve JSF Expression language ‘un bir birlesimi  (union) olarak ortaya koyulmustur.

Expressionlar icin deferred evaluation/degerlendirme
Expressionlar icin read/write modu
JSTL ( JSP Standard Tag Library ) taglarinin deferred olarak calisabilmesi. Continue reading JSF Expression Language

JSF Resource Bundle (Properties Dosyalarının Kullanımı)

Bu yazımızda JSF içerisinde properties dosyalarını nasıl kullanacağımızı inceleyeceğiz. JSF sayfalarında manuel olarak eklediğimiz karakter setlerini genellikle resource bundle dosyalarına koyarız Alttaki örnekte label bileşenine değeri static olarak verilmiştir

<h:outputLabel value="Ad"/>

Alttaki örnekte ise label bileşenine değeri bir bundle dosyasından alınmıştır

<h:outputLabel value="#{msg.ad}/>
Resource Bundle Konfigurasyonu
1.Adım : src klasörü altında resources paketi oluşturulur
2.Adım : resources paketi altında messages.properties dosyası kopyalanır.
3.Adım : messages.properties dosyasına aşağıdaki bilgiler kopyalanır
name=Ad
surname=Soyad
address=Adres
myName=My name is {0}
 

Continue reading JSF Resource Bundle (Properties Dosyalarının Kullanımı)

JSF Sayfa Geçişleri ve Yönlendirmeleri (Page Navigation)

threepages

Bu yazımızda JSF sayfaları arasında nasıl yönlendirme yapabileceğimizi inceleyeceğiz

Dinamik web sayfaları geliştirirken ihtiyaçlar doğrultusunda farklı sayfalara geçiş yapmak gerekir . Örnek verirsek bir alışveriş sitesinde bir ürüne tıkladıktan sonra o ürünün detaylarını gösteren farklı bir web sayfasının açılmasını bekleriz

Alttaki şekilde bir web sayfasının örnek sayfa geçişleri görülmektedir

faces-config_

JSF içerisinde sayfa geçişlerini farklı yöntemler kullanarak yapabiliriz

JSF Sayfası İçerisinde Otomatik Yönlendirme

Bu yöntemde jsf dosyasının içerisinde yönlendireceğimiz web sayfasını belirtiyoruz . Alttaki örnekteki web sayfasında Gönder butonuna bastığımız zaman userDetail.jsp sayfası açılır.

Continue reading JSF Sayfa Geçişleri ve Yönlendirmeleri (Page Navigation)

JSF ManagedProperty

jsf

Bu yazımda son derece faydalı olduğunu düşündüğüm ‘ManagedProperty’  anotasyonunu elimden geldiğince açıklamaya çalışacağım. Kısa bir örnek vererek başlayayım;

Bir sitede kullanıcı girişi olduğunu ve giriş yaparken kullanıcı bilgilerini userBean de tuttuğumuzu varsayalım. Sitenin işleyişine göre bir sayfa içerisinde birden çok Managed Bean kullanmamız mümkün. Kullanıcının girişini onaylayıp anasayfaya yönlendirdik. Anasayfada farklı bir Bean içerisinde kullanıcı bilgilerine göre veritabanından veri çekmemiz gerekiyor. İşte böyle bir durumda bu kullandığımız Bean içerisine userBean deki kullanıcı verilerini diğer Bean içerisine aktarmamız gerekiyor. ‘ManagedProperty’ anotasyonu tam olarak bu işe yarıyor. Kullanımı oldukça kolay. Ama verinin aktarıldığı Managed Beanler için kullandığımız Scope türüne dikkat edelim , aksi taktirde hata almamız muhtemeldir.

Şimdi küçük bir örnekle nasıl yapıldığını görelim. Bu yaptığım örnekte User adında bir POJO var ve bu POJO da kullanıcının adı ve soyadı yer alıyor. Web sayfamda bir inputText , commandButton ve outputLabel var. inputText içerisine aldığım veriyi firstBean içerisinde saklıyorum. Butona bastığımda ise outputLabel içerisine secondBean içerisine aktardığım firstBean deki veriyi getiriyorum. Anlatırken karmaşık gelmiş olabilir ancak aşağıdaki kodları incelediğinizde ne kadar kolay olduğunu görebilirsiniz. Continue reading JSF ManagedProperty

AWS Storage (Depolama) Servisleri Hakkında

aws_depolama

Amazon S3: Amazon’un Object Storage servisidir. Bulut’ta 1byte -5 TB bir dosyayı (key, value) şeklinde saklamanızı ve sonrada bunu çekebilmenizi sağlar.

  • Web Sayfaları için Statik Content burada tutabilirsiniz (HTML, JS, Video, Image)
  • Analiz etmek istediğiniz büyük ölçekli verilerinizi veya dosyalarınızı S3’te tutabilirsiniz
  • Backup veya Arşivlemek iştediğiniz verinizi S3’de tutabilirsiniz.

Amazon Glacier: Amazon’ün Arşiv servisidir. Çok büyük verilerinizi çok ucuza saklamak istiyorsanız. Bu verilere anlık erişim ihtiyacınız yoksa bu servis sizin için oldukça uygun. AWS Glacier erişim için Import/Export servisini kullanmanız veya S3’deki Object’ler üzerinden kural tanımlayarak Object LifeCycle Glacier eklemeniz gerekir.

Amazon EBS: Sanal EC2 makinelerinin hardiskleridir diyebiliriz. Kolayca snapshot alınabilen ESB’ler dosya sistemi ve veritabanı olarak rahatlıkla kullanılabilir. 1 GB-16 TB arasında istediğiniz harddiski oluşturup sisteminize entegre edebilirsiniz.

Amazon EC2 Instance Storage: EBS’den farklı olarak aynı fiziksel makinenin üzerindeki harddiskler’dir. Sürekli değişen buffer, temporary veri ve cahce gibi mekanizmalar için oldukça uygundur.

aws_1 Continue reading AWS Storage (Depolama) Servisleri Hakkında

Java Server Faces Scope Kavramı

Scope’nin kelime anlamı alan,faaliyet alanı demek.  JSF sayfalarımızda ki yapmak istediğimiz işlemlerin her birine bu sayfaların ne amaç taşıdığını ne amaç için hizmet edeceğini söylememiz gerekir. Yapacağımız işe göre JSF sayfalarımıza tanımlamalar yapmamız gerekmektedir. Önceki derste incelediğimiz JSF Yaşam Döngüsü ‘nde (Management Bean) Bean’ların faaliyet alanları ve süreleri scope’ler ile belirlenmektedir.

Bu Scope’lar 6 adettir.

Session Scope

HTTP stateless/durumsuz bir protokoldur. Yani browser/istemci server/sunucu ile baglanti kurar, istekte bulunur(request) cevabi alir(response) ve browser ile server arasinda baglanti kapanir. Yani her baglanti bir request/response icindir.

Session Scope ( @SessionScoped ) Managed Bean’ler , HTTP session boyunca yasayacaktir. Session, ayni client/istemcinin birden fazla istek/request icin devamliligi saglar.

Kullanıcılarımız için Session oluştururuz. Bu Session Scope oturum kapanana kadar işlemlerimizi gerçekleştirebiliriz. Continue reading Java Server Faces Scope Kavramı

Request – 02

Merhaba Arkadaslar,
Bu bolumde request konusuna devam edecegiz. ServletRequest ve HttpServletRequest arabirimlerinde bulunan metotlari incelemeye devam edecegiz

Ornek Uygulama

Bu ornek uygulamamizda yeni bir sinif olusturacagiz bir onceki paketi kullanabiliriz.

Sinifimiz ;
MoreRequestMethod

Deployment descriptor(web.xml) dosyamizda yeni servlet sinifimiz icin tanimlama yaplim.

	<servlet>
		<servlet-name>MoreRequestMethod</servlet-name>
		<servlet-class>_05_Request.MoreRequestMethod</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>MoreRequestMethod</servlet-name>
		<url-pattern>/morerequestmethod</url-pattern>
	</servlet-mapping>

Continue reading Request – 02

JSF Lifecycle (Yaşam Döngüsü)

jsf_lifecycle

Bu bolumde JSF Lifecycle (yasam dongusunu) konusunu inceleyecegiz.

JSF Lifecycle 6 fazdan/phase olusur.

  • Restore View
  • Apply Request Values
  • Process Validations
  • Update Model Values
  • Invoke Application
  • Render Response

Restore View

Restore kelime anlami olarak yenileme/yeniden kurmak anlamina gelmektedir.
Bir JSF sayfasi icin istek/request geldiginde , link ya da button tiklandiginda,  ilk olarak Restore View fazi baslatilir.

Her JSF sayfasi serverde Component Tree olarak veri yapisi seklinde saklanir.

xhtml sayfalarimizda h:form , h:inputText gibi taglar yer almaktadir. Her tag bir tag handler sinifi ile iliskilidir. JSF tag handler siniflari isbirligi icinde calisarak component tree yapisi olusturur. Component Tree bir tur veri yapisidir/ data structure. Bu veri yapisinda JSF sayfamizda yer alan Java objelerimiz yer alir. Ornegin 2 UIInput objemiz ; <h:inputText> ve <h:inputSecret> gibi.

JSF sayfasina ilk istek geldiginde Component Tree olusturulur , daha sonraki istekler icin hali hazirdaki bu Component Tree kullanilir.

Restore View fazinda 2 durum/case vardir ; Continue reading JSF Lifecycle (Yaşam Döngüsü)