www.sabanciuniv.edu/kcenter



Benzer belgeler
Üst Düzey Programlama

Üst Düzey Programlama

Üst Düzey Programlama

Intercepting Filter Tasarım Şablonu KurumsalJava.com

Basit bir web uygulaması

Java Programlama Giriş

Client Server Database

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

HTML isteklerini anlayarak HTML sonucu üreten ve yaygın olarak kullanılan temel Servlet sınıfı HttpServlet tir.

9. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Programlama Yazılımı ile Web Sitesi Oluşturma

solid; BORDER-LEFT: #1F9FFF 0px solid; BORDER-RIGHT: #1F9FFF 0px solid; BORDER-TOP: #1F9FFF 0px solid; COLOR: #1F9FFF; FONT-FAMILY: Trebuschet MS;

Tomcat Uygulama Sunucusunun Kurulumu. İlk olarak adresine gidiyoruz.

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

TÜRKİYE ELEKTRONİK FON ALIM SATIM PLATFORMU WEB SERVİS İŞLEMLERİ

1.PROGRAMLAMAYA GİRİŞ

ÖZGÜR YAZILIMLAR İLE J2EE

Oturum Öncesi Tanımlı Oturum Kimliği Çerezi Açığı Gökhan

Spring Security Framework Harezmi Bilişim Çözümleri

Front Controller Tasarım Şablonu KurumsalJava.com

.com. Kurumsal Java. Özcan Acar com

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

JBoss Seam Next Generation Integration Framework

PHP 1. Hafta 2.Sunum

Öğr. Gör. Serkan AKSU 1

Özcan Acar 2009 Kurumsal Java.com

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

Üst Düzey Programlama

JAVA API v2.0 Belge sürümü: 2.0.2

Üst Düzey Programlama

ÖRÜN (WEB) GÜVENLİĞİ. Hazırlayan: Arda Balkanay

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

Algorithm of Your Life. AJAX ve...

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.


WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Üst Düzey Programlama

.com. Özcan Acar 2009 Kurumsal Java.com

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Altuğ B. Altıntaş

Web Programlama Kursu

HTTP. (Hyper Text Transfer Protocol)

Python Web 2.0 Python ve Web 2.0 Son. Python ve Web 2.0. Gökmen GÖKSEL, 3 Mayıs 2007

Java da İstemci Tarafı Uygulamalar

PHP 1. Hafta 1. Sunum

SESSİON KULLANIMI. .Aşağıdaki Kodları da SessionDevam.asp adıyla kaydedelim. Language=VBScript Codepage="1254"%>

Html temelleri. Ders 4

Bilgisayar Programcılığı Uzaktan Eğitim Programı. e-bilg 121 AĞ TEKNOLOJİLERİNİN TEMELLERİ Öğr. Gör. Bekir Güler

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Java Programlamaya Giriş

EGE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ SUNUCU YAZILIM TEKNOLOJİLERİ LABORATUAR PROJESİ JAVA SERVER FACES

PHP ile İnternet Programlama

Bölüm 10: PHP ile Veritabanı Uygulamaları

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

Yazılım Akademisi 2011 Eğitim Sunumu -1

JSF Melih Sakarya. Java Server Faces Facelet

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

TeamBase5 BELEDİYE İLETİŞİM MERKEZİ SIEMENS

İnternet Programcılığı Öğr. Gör. Serkan AKSU Statik ve Dinamik Web Siteleri. Dinamik Web Sitesi Nedir?

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü

Ç NDEK LER G R fi 1 Bafllamadan Önce 1 Kitab Kimler Okumal? 1 Kitap çerisindeki Örnekler 2 Örneklerin Kullan m 3 Çekinmeden Yaz n 7

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Java EE 5 Teknolojileri Jboss Seam

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

08220 Internet Programcılığı II

JBoss Seam. Melih Sakarya

JAVASCRIPT JAVASCRIPT DİLİ

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

PROGRAMLAMA DERSİ 1. İNTERNET

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

PostgreSQL ve JBoss ile Java Kurumsal Çözümler. Nicolai Tufar

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlar!

Üst Düzey Programlama

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

CSRF (XSRF, Cross Site Request Forgery Cross Site Reference Forgery ) Nedir? Nasıl Kullanılır? ve Nasıl Korunulur?

JSTL DOKÜMANI. İçindekiler. Yazan: Elif Yavuz

İNTERNET PROGRAMLAMA II. Tanımlar

Üst Düzey Programlama

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

T.C.SOSYAL GÜVENLİK KURUMU. Genel Sağlık Sigortası Medula Optik E-rapor Web Servisleri Kullanım Kılavuzu

08217 Internet Programcılığı I Internet Programming I

Internet Programming II

One ASP.NET. 5 bileşen barındırmaktadır. Web Forms Model View Controller (MVC) Web Pages Web API SignalR

T.C.SOSYAL GÜVENLİK KURUMU. Genel Sağlık Sigortası Medula Optik E-rapor Web Servisleri Kullanım Kılavuzu

Transkript:

Sabancı Üniversitesi Bilişim Teknolojileri Yüksek Lisans Programı Seminerleri Java ile Web Uygulamaları Geliştirme Ahmet Demirelli SCJP 5.0 - SCWCD 1.4

Ajanda Web uygulaması nedir Basit bir CGI örneği Uygulama Sunucuları Bir Java Web Uygulaması için neler gerekli Web Tools Platform Servlet doget() ve dopost() methodları JSP JSP sayfalarında önceden tanımlı nesneler

Web Sayfaları request response GET /downloads/index.html HTTP 1.1 Accept : text/html Accept-Language: en-us User-Agent: Mozilla /4.0...

Web Siteleri Web sitesi ; Birbirleri ile ilişkili web sayfaları topluluğudur. Eğer web sitesi sadece tanıtım amaçlı ise ; Kullanıcı ile etkileşimi yoksa ; Sadece html sayfalarından ve o sayfalardaki text,resim,flash animasyon ve javascript kodları yeterlidir. istemci request response html Resimler.js dosaları.swf dosyaları

Web Uygulamaları Kullanıcı etkileşimi (kullanıcıdan bilgi alma...vb) Kullanıcı şifre onaylama (login işlemleri ) Arama işlemleri Oturum açma (alışveriş sepeti..vb ) Her kullanıcıya farklı arayüz...vb gibi gereksinimlerimiz varsa sunucu tarafında çalışan programlara ihtiyacımız var.

Web Uygulamaları ( CGI ) CGI Programları *.exe,*.cgi... etc

Basit CGI örneği Herhangi bir exe dosyasını Apache web server da /cgi-bin/ klasörü altına kopyalayıp. Browser adres satırına ; http://localhost/cgi-bin/hello.exe yazıp web sunucusundan bu programı çalıştırmasını istiyoruz. Hello.exe C# ile yazılmış bir windows programı class Program { static void Main(string[] args) { Console.WriteLine("Content-Type:text/html\n"); Console.WriteLine("Hello World"); } }

Uygulama Sunucusu Sunucu tarafında çalışacak uygulamaları yorumlayıp veya çalıştırıp ortaya çıkan sonuçları tekrar istemciye göndermekle görevli olan sunuculardır. *. php *. asp......... *. dll *. class.net J2EE

J2EE Uygulama Sunucuları J2EE Uygulama Sunucusu Web container WebComponents Servlet jsp Html / xml EJB container BusinessComponents SessionBean, EntityBean, MessageDrivenBean

J2EE Uygulama Sunucuları Tomcat Web Container **** JBoss Web + EJB container BEA WebLogic Web + EJB container IBM WebSphere Web + EJB container Oracle 10g Web + EJB container Sun ONE Web + EJB container

J2EE Web Uygulaması için Web Container (Tomcat 5.5) http://tomcat.apache.org/ J2EE Uygulama geliştirme ortamı (Web Tools Platform) http://download.eclipse.org/webtools/ ***Uygulamanın J2EE belirtimlerine uygun bir şekilde dosyalanmış olması gerekir.

Gerekli dosya ve klasörler BookStore Uygulama ana klasörü WEB-INF Özel klasör (dışarıdan erişime kapalı) classes Servlet class larınınn bulunacağı klasör lib Projede kullanılan extra kütüphaneler tlds Tag kütüphaneleri web.xml Uygulama konfigürasyon dosyası ( deployment descriptor ) HTML ve jsp dosyaları Uygulamada kullanılan diğer dosyalar

Web Tools Platform Java ile J2EE uygulamaları geliştirmeyi kolaylaştırmak için yazılmış bir eclipse eklentiler bütünüdür. http://download.eclipse.org/webtools/...kurulum ve Ayarlar... Web Tools Platformu indirip herhangi bir klasöre açıyoruz.

Web Tools Platform Web Tool Platform da uygulama geliştirmeye başlamadan önce perspective ayarlarını değiştirmeniz gerekmektedir. Bunun için ; Windwow Open Perspective Other.. J2EE seçiyoruz

Web Tools Platform Ayarları-1 Windows -> Preferences -> Server -> Installed JREs

Web Tools Platform Ayarları-2

Web Tools Platform Ayarları-3

Web Tools Platform Ayarları-4 Servers -> Right Click -> New Server

Web Tools Platform Ayarları-5

WTP - Yeni Proje Oluşturma-1 Project Explorer -> Dynamic Web Projects -> New -> Dynamic Web Project

WTP - Yeni Proje Oluşturma-2 Servlet Servlet classlarının classlarının kaynak kaynak kodları kodları (*.java (*.java dosyaları dosyaları ) ) Web Web içeriği içeriği (web.xml, (web.xml, jsp jsp ve ve htmldosyaları htmldosyaları ) )

Projeyi Sunucuda Çalıştırma-1

Projeyi Sunucuda Çalıştırma-2

Servlet Sunucu tarafında çalışan derlenmiş özel java class ları. Görevleri Kullanıcıdan gelen açık ( explicit ) bilgileri almak (Form bilgileri) Kullanıcıdan gelen kapalı (implicit) bilgileri almak (Request Header) Bu bilgilerle işlemler yapmak HTML çıktısı üretmek Açık bilgileri kullanıcıya göndermek ( HTML ) Kapalı bilgileri kullanıcıya göndermek (Response header) Kullanıcılar ile nasıl bilgi alışverişinde bulunacağız.?

Kullanıcılardan bilgi almak Sunucu tarafında çalışan uygulamalara kullanıcılar bilgiyi HTML-Formları ile veya URL ile gönderebilirler <html> <head></head> <body> <form <form action="index.jsp" method="get"> İsim İsim :<input type="text" name="isim" /><br> No No :<input type="text" name="id" /><br> <input type="submit" value="gonder"/> </form> </body></html>

HttpRequest & HttpResponse HttpRequest GET POST GET /downloads/index.jsp?isim=ahmet&no=447 HTTP 1.1 GET /downloads/index.jsp?isim=ahmet&no=447 HTTP 1.1 Accept Accept : : text/html text/html Accept-Language: Accept-Language: en-us en-us User-Agent: User-Agent: Mozilla Mozilla /4.0 /4.0 HTTP Header HTTP Body HttpResponse POST POST /downloads/index.jsp /downloads/index.jsp HTTP HTTP 1.1 1.1 Accept : text/html Accept : text/html Accept-Language: en-us Accept-Language: en-us User-Agent: Mozilla /4.0 User-Agent: Mozilla /4.0 isim=ahmet&no=447 isim=ahmet&no=447 HTTP/1.1 HTTP/1.1 200 200 OK OK Content-Length: Content-Length: 114 114 Date: Mon, 30 April 2006 11:07:44 GMT Date: Mon, 30 April 2006 11:07:44 GMT Content-Type: text/html Content-Type: text/html Server: Apache Server: Apache <html> <html> <head> </head><body>... <head> </head><body>... HTTP Header HTTP Body HTTP Header HTTP Body

Bir Sınıfın Servlet Olabilmesi için import import java.io.*; java.io.*; import import javax.servlet.*; javax.servlet.*; import import javax.servlet.http.*; HttpServlet sınıfının alt alt sınıfı sınıfı olmak olmak zorunda public public class class HelloWorld HelloWorldextends extendshttpservlet { public public void void doget(httpservletrequest req,httpservletresponse res) res) throws throws ServletException, IOException IOException { PrintWriter PrintWriterout out = res.getwriter(); res.getwriter(); out.println("hello World"); World"); } } GET GET ve ve POST POST isteklerini karşılayacak olan olandoget() veya veya dopost() methodların yazılması gerekir. Methodlar yazılmazsa gelen gelen istekler istekler cevapsız kalır. kalır.

doget() & dopost() methodları Browser HttpRequest HttpRequest HttpRequest HttpRequest GET GET POST POST Web Container HelloWorld.class service ( HttpRequest req, HttpResponse res ) doget ( HttpRequest req, HttpResponse res ) HttpResponse HttpResponse dopost ( HttpRequest req, HttpResponse res )

Servlet Yaşam Döngüsü Başlangıç init() init() Servlet Servlet classının classının hafızaya hafızaya ilk ilk defa defa yüklendiğinde yüklendiğinde çalışması çalışması gereken gereken kodlar kodlar bu bu method method içerisineyazılır içerisineyazılır Hizmet Hizmet service() service() doget() doget() dopost() dopost() İstemciden İstemciden gelen gelen isteğin isteğin ilk ilk karşılandığı karşılandığı methoddur. methoddur. İsteğin İsteğin türünü türünü belirleyip belirleyip ilgili ilgili methoda methoda yönlendirir. yönlendirir. GET isteklerine cevap veren method GET isteklerine cevap veren method POST isteklerine cevap veren method POST isteklerine cevap veren method Sonlandırma destroy() destroy() Servlet Servlet hafızadan hafızadan kaldırılırken kaldırılırken yapılacak yapılacak işlemleri işlemleri bu bu method method içerisine içerisine yazılır yazılır

DEMO - Servlet Örneği Web Tools Platform da oluşturduğmuz yeni projeye servlet eklemek doget() ve dopost() methodlarını yazmak Kullanıcıdan gelen bilgileri request nesnesinden almak ( request.getparameter() ) Kullanıcıya gönderilecek bilgileri response nesnesine yazmak. web.xml dosyası

web.xml (Deployment descriptor) Uygulamada hangi servletler var, bu servletlere URL ile nasıl ulaşılabilir. Authentication User roles Filters Güvenlik kısıtlamaları... etc

Problemler Eğer uygulamamızda yalnız servlet kullanarak yazarsak; Java Programcıları HTML bilmek zorunda HTML çıktısı verebilmek için sürekli print() fonksiyonu kullanılmak zorunda Yapılan küçük bir değişiklik için kod tekrar derlenmek zorunda Arayüz ile java kodları iç içe (spaghetti code) bulunmak zorunda

Çözüm Servlet Kod + İş Kuralları Sadece java kodu bulunmalı, mümkünse hiç HTML yazdırılmamalı. Görevini tamamladıktan sonra bir jsp sayfasına yönlendirilmeli. JSP (Java Server Pages) Arayüz Jsp bir HTML dizayn aracı kullanılarak düzenlenebilir (DreamWeaver,Frontpage..etc) Minimum java kodu bulunmalı. Sadece servletlerden dönen sonuçları ekrara bastırmak için kullanılmalı. JSTL kullanılmalı.

JSP (Java Server Pages) İçerisinde java kodu yazılabilen html sayfası. <HTML> <HEAD><TITLE>Deneme Sayfası</TITLE></HEAD> <BODY> <H2>JSP Sayfası </H2><br> Şu An : <%=new java.util.date() %> <table align= center > <tr><td> <% out.prinln( Hello JSP ) %> </td></tr> </table> </BODY></HTML>

JSP ifadeleri Expression <%= expression %> out.println() yazmak yerine Scriptlet <% code %> Declaration XML Syntax <jsp:expression>code</jsp:expression> <jsp:scriplet> code</jsp: scriplet> <%! code %> Mevcut jsp sayfasının tamamından ulaşılabilen değişkenler tanımlamak için kullanılır. <jsp:declaration>code</jsp: declaration>

JSP Önceden tanımlanmış nesneler request ( HttpRequest ) response ( HttpResponse ) out ( PrintWriter ) Response nesnesine birşeyler yazabilmek için kullanılır. session ( HttpSession ) Kullanıcıların oturum işlemleri için kullanılan nesnedir application ( ServletContext ) Tüm genel bilgilerin tutulabileceği nesne

JSP- Yaşam Döngüsü JSP sayfaları Web container tarafından servlet koduna dönüştürülür. Servlete dönüştürülen JSP compile edilir. Oluşan.class dosyası hafızaya yüklenip aşağıdaki methodlar sırasıyla çalıştırılır. jspinit() jspservice() JSP sayfsının body bölümü jspdestroy()

DEMO (Jsp-Servlet Uygulaması) Web Tools Platform da oluşturduğmuz yeni projeye jsp sayfası eklemek Scriplet,expression ve declaration taglari kullanmak Servletten response nesnesine request.setattribute() methodu ile eklenen bir değişkeni request.getattribute() methodu ile almak. JDBC ile MySQL veritabanından bilgi çekmek.

Sorular? ahmetdemirelli@sabanciuniv.edu