The European Union s Making the Labour Market more Inclusive III programme For North Cyprus Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module 2:Server Side Internet Programming Modül 2: Sunucu Tarafı Internet Programlaması Laboratuar Notları A project implemented by CyberSoft Bilişim Teknolojileri Ltd. This project is funded by European Union. The contents of this publication are the sole responsibility of Cybersoft Bilişim Teknolojileri Ltd. and can in no way be taken to reflect the views of the European Union.
İçerik Bölüm 9: Java Server Pages (JSP)...2 1. Örnek 1: Hello Name...3 2. Örnek 2: Basit Hesap Makinesi...7 2.1 Uygulama 1: Hesap Makinesine çıkartma,çarpma,bölme fonksiyonu ekleme...10 3. Örnek 3: Database e bağlantı kurma...10 3.1 Uygulama 2: Database den form aracılığıyla sorgulama yapma...11 3.2 Uygulama 3: Database e form aracılığıyla insert ve delete yapma...13 2
Örnek 1. Hello Name Örneği Yeni bir Web Application Projesi Yaratma: 1. Yeni bir New Project Wizard açmak için File New Project. 2. Categories : Java Web ve Projects:Web Application seçiniz. 3. Project Name kısmına helloname giriniz ve Next e basınız. 3
4. Server: GlassFishServer ve Java EE Version : Java EE 6 Web seçiniz ve Next e basınız. 5. Framework seçmeyiniz ve sadece Finish e basınız. 4
6. Project tabından bakarsanız basiccalc için bir index.jsp yaratılmıştır. 7. index.jsp dosyasının içine aşağıdaki kodu yapıştırınız. index.jsp <html> <head> <title>jsp Page</title> </head> <body> <h1>entry Form </h1> <form name="name Input Form" action="response.jsp"> Enter your name: <input type="text" name="name" value="" /> <input type="submit" value="ok" name="submit" /> </form> </body> </html> 8. Daha sonra Project tabından helloweb inüzerinde sağ-tık yapınız ve New JSP basarak yeni bir JSP dosyası açınız. 5
9. Yeni yarattığınız JSP dosyasına response ismini veriniz. 10. response.jsp dosyasının içine aşağıdaki kodu yazınız. <% String name = request.getparameter("name");%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>jsp Page</title> </head> <body> <h1>hello, <%out.print(name);%> </h1> </body> </html> 6
11. Daha sonra pojenizi çalıştırınız.sonuç aşağıdaki gibi olacaktır. Enter your name: kısmına isim girip OK butonuna basarsanız sonuc aşağıdaki gibi olacaktır. Örnek 2. Basit Hesap Makinesi Bu örnekte tek bir tane JSP dosyası kullanarak içine hem Java kodu hem de html nasıl yazabileceğimizi göreceğiz. Java kodları <% ile başlayıp %> ile bitmelidir. 1. basiccalc isminde yeni bir Web Application Projesi Yaratınız. 2. Öncelikle aşağıdaki gibi bir form yaratmak için index.jsp dosyasının içine gerekli olan HTML kodlarını yazınız. 7
<html> <head> <title>calculating two values</title> </head> <body> <h1>basic Calculator</h1> <form method="post" action="index.jsp"> <table> <td>first number</td> <td><input type="text" name="first_number" value="" size="10" /></td> <td>second number</td> <td><input type="text" name="second_number" value="" size="10" /></td> </form> <td><input type="submit" name="submit" value="hesapla" size="10" /></td> <td>sonuç</td> <td><input type="text" name="sonuç" value="<%out.println(add);%>" size="10" /></td> </table> 3. Daha sonra java kodlarını yazmak için <% açınız ve gerekli libraryleri ekleyebilmek için matematiksel işlemler yapılacagı library ekleyiniz. <%@ page import="java.io.*" %> 4. Formdan gelecek olan değeri almak için request.getparameter komutu kullanılmaktadır. Bunu için öncelikle java kodu yazılacağını gösteren <% açınız.ilk sayıyı almak için String fnmr = request.getparameter("first_number"); 8
5. Gelen değerin null olup olmadığını kontrol ediniz. if (fnmr == null) fnmr="0"; 6. İkinci sayı içinde benzer kodu yazınız. String snmr = request.getparameter("second_number"); if (snmr == null) snmr="0"; 7. Gelen değerler string olduğu için toplama yapabilmek için öncelikle integer e dönüştürmemiz gereklidir. sayı1= Integer.parseInt(fnmr); sayı2= Integer.parseInt(snmr); 8. Daha sonra toplama işlemini yapınız ve %> ile kapatınız. add = sayı1+sayı2; 9. İndex.jsp dosyasının içeriği aşağıdaki gibi olacaktır. <%@ page import="java.io.*" %> <% int add=0, eksi=0; String fnmr = request.getparameter("first_number"); if (fnmr == null) fnmr="0"; String snmr = request.getparameter("second_number"); if (snmr == null) snmr="0"; sayı1= Integer.parseInt(fnmr); sayı2= Integer.parseInt(snmr); add = sayı1+sayı2; %> <html> <head> <title>calculating two values</title> </head> <body> <h1>basic Calculator</h1> <form method="post" action="index.jsp"> <table> <td>first number</td> <td><input type="text" name="first_number" value="" size="10" /></td> 9
/></td> <td>second number</td> <td><input type="text" name="second_number" value="" size="10 <td><input type="submit" name="submit" value="hesapla" size="10" /></td> <td>sonuç</td> <td><input type="text" name="sonuç" value="<%out.println(add);%>" size="10" /></td> </table> </form> Uygulama 1: Yukarıdaki basit hesap makinesi örneğimi çıkartma,çarpma,bölme yapacak şekilde geliştiriniz. Örnek 3: Database e bağlantı kurma 1. Yeni bir Web application projesi yaratınız ve ismin databaseconn veriniz. 2. Aşağıda verilen kod postgresql e nasıl bağlantı yapılacağını göstermektedir. Kodu inceleyiniz, index.jsp dosyasına yapıştırınız ve çalıştırınız. <% Connection conn = null; ResultSet result = null; Statement stmt = null; try { Class c = Class.forName("org.postgresql.Driver"); catch (Exception e) { System.out.println ("Error occured"+e); try { conn=drivermanager.getconnection("jdbc:postgresql://localhost:5432/studentrecord"," postgres", "deneme123"); catch (SQLException se) { System.out.println ("Error occured"+se); try { stmt = conn.createstatement(); result = stmt.executequery("select * from studentrecord); while (result.next()) { out.print(result.getint(1)+" "); 10
out.print(result.getstring("stud_first_name")+" "); out.println(result.getstring(3)+"<br>"); catch (SQLException se) { System.out.println ("Error occured"+se); result.close(); %> 3. Database olarak PostgreSQL kullanıyoruz. Dolayısıyla postgresql driver ini gerekli libraryler içine eklemelisiniz. Bunun için projects tabından databaseconn bulunuz ve libraries folder üzerinde sağ-tık yaparak add JAR/folder tıklayınız. 4. Karşınıza bir add JAR/folder penceresi açılacaktır. Buradan uygun path bularak postgresql driverini yükleyiniz. Path genellikle şu şekildedir : C:\Program Files\NetBeans 6.9.1\ide\modules\ext Uygulama 2: Yukarıda verilen örneği geliştirerek kullanıcının database sorgulaması yapabilmesi için aşağıdaki gibi bir form yaratınız. 11
İpuçları : 1. Girilen ismi almak için request.getparameter komutunu kullanınız. String isim = request.getparameter("student_name"); 2. Ekrana Student_id, stud_first_name ve stud_last_name bilgilerini tek satırda boşluklarla birlikte yazdırmalıdır. Bunun için gerekli SQL kodu aşağıdaki gibidir. select * from studentrecord where stud_first_name like '" + isim + "%'" 3. Sonucu da şu şekilde ekrana yazdırabilirsiniz: while (result.next()) { out.print(result.getint(1)+" "); out.print(result.getstring("stud_first_name")+" "); out.println(result.getstring(3)+"<br>"); 12
Uygulama 3: Database e insert ve delete yapabilmek için bir form hazırlayınız. Form aşağıdaki gibi olmalıdır: İpuçları: 1. insert.jsp ve delete.jsp file isimli iki dosya oluşturunuz. 2. İçerilerine database connection yapıp, gerekli SQL statementini çalıştıracak komutları yazınız. 3. insert.jsp için getparameter komutları şu şekilde olmalıdır: String stdid = request.getparameter("i_student_id"); String stdname = request.getparameter("i_stud_first_name"); String stdlname = request.getparameter("i_stud_last_name"); Insert komutu şu şekilde olmalıdır: stmt.executequery("insert INTO public.studentrecord (student_id,stud_first_name,stud_last_name) VALUES('"+stdid+"','"+stdname+"','"+stdlname+"')"); 4. delete.jsp için getparameter komutları şu şekilde olmalıdır: String stdid = request.getparameter("i_student_id"); delete komutu şu şekilde olmalıdır: stmt.executequery("delete FROM studentrecord WHERE student_id='"+stdid+"'") 13