Archive for the ‘ JSP(Java Server Pages) ’ Category

mail.jar dosyasını: http://prntscr.com/hou0

MailGonder.java

package ethemsulan.com;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.Security;
import java.util.Properties;
public class MailGonder {
private static final String SMTP_HOST_NAME = "smtp.gmail.com";
private static final String SMTP_PORT = "465";
private static String emailMsgTxt =null;
private static String emailSubjectTxt = null;
// mailin kimden gittiğini gösteren adres.Gerçek gmail adresin
private static final String
        emailFromAddress = "ethemsulan@gmail.com";
private static final String SSL_FACTORY =
        "javax.net.ssl.SSLSocketFactory";
// mail göndermek istediğimiz adresler
private static String sendTo = null;
private static MailGonder instance = null;
private MailGonder() { }

public static MailGonder getinstance()
{
        if (instance == null)
                instance = new MailGonder();
        return instance;
}
public static void setEmailMsgTxt(String emailMsgTxt) {
    MailGonder.emailMsgTxt = emailMsgTxt;
}
public static void setEmailSubjectTxt(String emailSubjectTxt) {
    MailGonder.emailSubjectTxt = emailSubjectTxt;
}
public static void setSendTo(String sendTo) {
    MailGonder.sendTo = sendTo;
}
public void sendSSLMessage() throws MessagingException {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
props.put("mail.smtp.socketFactory.fallback", "false");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
// buraya gmail mail adresinizi ve sifrenizi girmelisiniz.
return new PasswordAuthentication("ethemsulan@gmail.com",
    "mesela123");
}
});
Message msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress(emailFromAddress);
msg.setFrom(addressFrom);
InternetAddress addressTo = new InternetAddress(sendTo);
msg.setRecipient(Message.RecipientType.TO, addressTo);
msg.setSubject(emailSubjectTxt);
msg.setContent(emailMsgTxt, "text/plain");
Transport.send(msg);
}  }

Orj kod:http://www.ethemsulan.pastebin.com/byvACAAb

index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
JSP Page
<form action="UyeOl.jsp" method="POST">







Email Adresi: <input type="text" name="email" value="" />
Parola: <input type="password" name="parola1" value="" />
Parola Tekrar: <input type="password" name="parola2" value="" />
<input type="submit" value="Uye Ol" />

Orj kod:http://www.ethemsulan.pastebin.com/bd7dgkDM

UyeOl.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%-- jsp sayfamizda kullanmak istedigimiz siniflari import ediyoruz--%>
<%@page import="ethemsulan.com.MailGonder, ethemsulan.com.Uye,ethemsulan.com.IdeUret" %>

    
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        JSP Page
    
    
    <%!
    String email,parola1,parola2;
    %>
    <%
email=request.getParameter("email");
parola1=request.getParameter("parola1");
parola2=request.getParameter("parola2");
if(!parola1.equals(parola2)){
out.println("Parolalar ayni degil");
    return;
//email formatin kontrolunu yapiyor.
}else  if (!email.matches("(?i)\\b[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\\.)+[A-Z]{2,6}\\b")) {
 out.println("Email formati yanlis");
    return;
    }
 %>
<jsp:useBean id="uye" class="ethemsulan.com.Uye" scope="request"/>
<jsp:setProperty name="uye" property="email" value="${param['email']}"/>
<jsp:setProperty name="uye" property="parola1"
                 value="${param['parola1']}"/>
    <%!
    String aktKodu,uyeEmail;
    %>
<input type="hidden" name="akt"
value="<jsp:getProperty name="uye" property="parola1"/>">
<input type="hidden" name="email" value=
      "<jsp:getProperty name="uye" property="email" />">
<%
aktKodu=request.getParameter("parola1");
uyeEmail=request.getParameter("email");
%>
<%
MailGonder.getinstance().setEmailSubjectTxt("Mehmet Ethem SULAN");
MailGonder.getinstance().setSendTo(uyeEmail);
MailGonder.getinstance().setEmailMsgTxt("Java Bloguna Hosgeldiniz : \n Uyelik Linkiniz:\n" +
Uye.aktLinki() + "\nBu Link'e tiklayin ve "+
IdeUret.getInstance().AkKoduUret(aktKodu)+"   ile Uyeliginizi Aktiflestirebilirsiniz.\n");
MailGonder.getinstance().sendSSLMessage();
out.println("Sizin gmail hesabinizdan "+uyeEmail+" mail gonderildi");
    %>
     

Orj kod:http://www.ethemsulan.pastebin.com/gpCfSHFY

IdeUret.java

package ethemsulan.com;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Encoder;
public class IdeUret {
public static synchronized IdeUret getInstance()
{
if(instance == null)
{
   instance = new IdeUret();
}
return instance;
}
   private static IdeUret instance;

private IdeUret()
{
}

public synchronized String AkKoduUret(String plaintext)
{
MessageDigest md = null;
try
{
//Secure Hash Algorithm
  md = MessageDigest.getInstance("SHA");
}
catch(NoSuchAlgorithmException e)
{
  e.printStackTrace();
}
try
{
  md.update(plaintext.getBytes("UTF-8"));
}
catch(UnsupportedEncodingException e)
{
  e.printStackTrace();
}
byte siraDizisi[] = md.digest();
String hash = (new BASE64Encoder()).encode(siraDizisi);
return hash;
}  }

orj kod:http://www.ethemsulan.pastebin.com/jiFj1uwt

Uye.java

package ethemsulan.com;
public class Uye {
private String email=null;
private String parola1=null;
public String getEmail() {
    return email;
}
public void setEmail(String email) {
    this.email = email;
}
public String getParola1() {
    return parola1;
}
//Parolaya ozel bir ide uretir
public void setParola1(String parola1) {
    this.parola1 = parola1;
}
public static String aktLinki()
{
    return "http://www.ethemsulan.com";
}
}

Orj kod:http://www.ethemsulan.pastebin.com/PEj1n8mz

Java bean detayli bilgi icin: http://www.ethemsulan.com/2010/06/how-to-input-and-output-parameters-from.html

Uygulamanın zipli hali: http://hotfile.com/dl/49503509/380bada/ethemsulan.com.rar.html

Zipin dosyasını çıkartığınızda içinde içinde AktivasyonFormu ve mail.jar  ve resim dosyası var.AktşvasyonFormunun içinde mail.jar dosyası zaten var. Netbeanse zipten çıkartıp yüklemek için http://prntscr.com/hovl resme bakın.Uygulamayı çalıştırmadan önce MailGonder.java sınıfın içindeki gerçek gmail ve parolanızı girip istediğiniz bir mail adresine mail gönderebilrisiniz.

Resim: http://prntscr.com/hosv

index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
JSP Page 
<form action="UyeBilg.jsp" method="POST">

<%-- Buradaki name,parola1,parola2 Uye.java yani JavaBeanimizdeki
degiskenelrle ayni olmalidir.Yani isimelr ayni olamli.--%>
    

        


                


                

                


Email Adresi: <input type="text" name="email"/>
Parola: <input type="password" name="parola1"/>
Parola Tekrar: <input type="password" name="parola2" value="" />
<input type="submit" value="Uye Ol" />

Orj kod:http://www.ethemsulan.pastebin.com/4L6AiUYj

UyeBilg.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="ethemsulan.com.Uye" %>

    
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        JSP Page
    
    
        <%
if(!request.getParameter("parola1").equals(request.getParameter("parola2"))){
out.println("Parolar ayni degil");
//return sistemi bu if{} icinde durduruyor.Yani asagidaki kisimlar islenmiyor.
            return;
        }
        %>
<jsp:useBean id="a" class="ethemsulan.com.Uye" scope="request"/>
 
<jsp:setProperty name="a" property="email" value="${param['email']}"/>
<jsp:setProperty name="a" property="parola1" value="${param['parola1']}"/>
<jsp:setProperty name="a" property="parola2" value="${param['parola2']}"/>
            <%
            out.println("Benandeki degerler asagidaki gibidir
");
            %>
            <jsp:getProperty name="a" property="email"/>
            <jsp:getProperty name="a" property="parola1"/>
            <jsp:getProperty name="a" property="parola2"/>

            <%!
            String email;
            %>
            <%
            out.println("

");
            %>
Javabendeki email: <input type="text" name="email"
          value="<jsp:getProperty name="a" property="email"/>"/>
            <%
            email=request.getParameter("email");
out.println("
Degiskene atilan bean degeri :
"+email);
            %>
            <%
            Uye uyeNesnem=new Uye();
//beanimizda baska metod tanimlayabiliriz.Fakat
// beandaki degerleri direkt alamaz.gene null olur
//Baska bean icin metod tanimlanabilir javabean icinde.
out.println("
Beanimize nesne uzwerinden elemanlarin
" +
" degerlerini alamiyoruz. Email degeri null olur :"+uyeNesnem.getEmail());
out.println("
Benadeki metod :
"+uyeNesnem.baskaMetod());
            %>
    

orj kod:http://www.ethemsulan.pastebin.com/K4kf00MB

Uye.java

 

package ethemsulan.com;
//JavaBean degiskenelre sadece get ve set metodlariyle erisilir
//Bu metod ve degiskenelr static olamaz.
//Buradaki bilgiler jsp sayfalari arasinda bilgi tasinmayi saglar
public class Uye {
    private String email=null;
    private String parola1=null;
    private String parola2=null;
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getParola1() {
        return parola1;
    }
    public void setParola1(String parola1) {
        this.parola1 = parola1;
    }
    public String getParola2() {
        return parola2;
    }
    public void setParola2(String parola2) {
        this.parola2 = parola2;
    }
//JavaBeanimizde baska metod tanimlama
    public int baskaMetod(){
        return 34+17;
    }  }

Orj kod:http://www.ethemsulan.pastebin.com/PLC3urWZ

Kişiye özel jsp etiketini 3 adımda oluşturabiliriz. 1.Tag handler isminde bir takı classı oluştururlur. 2.Tag library descriptor yanı .tld uzantılı bir xml ayar dosyasının oluşturulması. 3.taglib ile tanımlanan takının jps sayfasına eklenmesi.Bu da javabeanler gibi bileşen haline getirilip tektrar tekrar kullanılabilir.Daha önceki örneklerde farklı firmaların takılarını görmüştük.

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib uri="/WEB-INF/tlds/tagim.tld" prefix="SimdikiZaman" %>
JSP Page
    
        Tarih saat  :  
    

//--------------------------------------------
package www.ethemsulan.com;
import java.io.IOException;
import java.util.Date;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;
//extends ile ya TagSupport yada BodyTagSupport tan turetecez
//Yerel tarih urettik bu takiyla
public class ZamanTag extends BodyTagSupport{
    Date zaman=new Date();
public int doStartTag(){
       try{
JspWriter yaz=pageContext.getOut();
yaz.println(zaman.toLocaleString());
}catch(IOException e){e.printStackTrace();}
        return SKIP_BODY;
    }  }
//------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd">
  1.0
  <short-name>tagim</short-name>
  /WEB-INF/tlds/tagim
//tagimin ismi ethem ve tag class ta ZamanTag.java sinifin
//bulundugu paket yani paketismi.taki sinifimiz
//paket=www.ethemsulan.com tag handler=ZamanTag
  
      ethem
<tag-class>www.ethemsula
n.com.ZamanTag</tag-class>
      JSP
  

tld

Web uygulamanızı sağ tıklayıp new—>other—>web—>tag library descriptor ayar dosyasını oluşturun resimdeki gibi.

tldtakimiz

Buraya dikkat taglib uri den .tld dosyanızın yolunu resimde görüldüğü gibi tanımlanır. .tld için de taghandler sınıfımızın tam yolu yanı paketismi.sınıf ismi.

<?xml version="1.0" ?>
<%-- sayfanin en basina yazin--%>
<%@page contentType="text/xml"%>
<%@page import="java.sql.DriverManager,java.sql.Connection" %>
<%@page import="java.sql.PreparedStatement, java.sql.ResultSet" %>
<%!
Connection baglanti=null;
PreparedStatement ifade=null;
ResultSet sonuc=null;
%>
<%
try{
Class.forName("org.postgresql.Driver");
baglanti=DriverManager.getConnection("jdbc:postgresql:" +
       "//localhost/postgres", "postgres", "ethemsulan");
ifade=baglanti.prepareStatement("select * from kitap");
sonuc=ifade.executeQuery();
}catch(Exception e){
e.printStackTrace();
}
//KitapSt.xsl ile bu sayfa ayni klasorde olduguna dikkat edin
//eger farkli yerdeyse yerini belrtin.,..xml dir
//verileri postgresql veritabanindan cekiyor.
%>
<?xml-stylesheet type="text/xsl" href="KitapSt.xsl"?>

    <%
    while(sonuc.next()){
    %>
    
        
            
        
        
            
        
        
            
        
        
            
        
    
    <%
   }
baglanti.close();
   %>

Orj kod:http://www.ethemsulan.pastebin.com/f3cee91af

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/><xsl:template match="/">
KitapSt.xsl
<table border="1" with="850" cellpadding="4" cellspacing="2">
<td bgcolor="#ff8089">Kitap ISBN
<td bgcolor="#af8090">Ad
<td bgcolor="#bf3310">Yazar
<td bgcolor="#cf5582">Fiyat
<xsl:for-each select="katalog/kitap">
<td bgcolor="green">
    <xsl:value-of select="isbn"/>
<td bgcolor="#998844">
     <xsl:value-of select="ad"/>
<td bgcolor="#bbbbbb">
     <xsl:value-of select="yazar"/>
<td bgcolor="red">
    <xsl:value-of select="kitapfiyati"/>
 
       </xsl:for-each>



Orj kod:http://www.ethemsulan.pastebin.com/f46c4472f

xml ya da xsl oluşturmak için uygulamamızı sağ tıklayıp new—>other—>xml den seçebiliriz.Aşağıda resimde bir çok seçenek gösterilmiş.css için en üstte webi seçin.

xslol 

Netbenasede .xsl ve .jsp aynı yerde olduğuna dikkat edin.Ve her zaman ki gibi postgresql jdbc driveri yüklemeyi unutmayın.Eğer veritabanı kodlarını tam anlaamdıysanız:http://www.ethemsulan.com/2010/02/transaction-nedir-ve-jsp-ile-postgresql.html bakabilirsiniz.

pr

Xsl xml e stil eklemek için geliştirilmiştir.Xml, xsl için moremotion programını: http://www.turkprogram.com/download/Moremotion-Xml-Editor.html indirebilirisniz.Bu kod postgresqlden kayıtları jsp ile xml formatına döüştürüp ve xsl ile stil verilerek ekrana yazılır.Xml’e dönüşen verileri farklı platformlardan kullanabiliriz.Bu örneğin amacı jspde xml nasıl kullanıldığını göstermektir.Çıktıya bakmak için: http://prntscr.com/45nm

Bu örneği javada dosya işlemelri ya da diğer bir çok işlem olduğu gibi javada nasıl gerçekleşiyorsa jspde de aynı şekildedir.Yanı ben istediğim java paket ya da sınıfı import edip jspde kullanabilirim.Eğer dosya işlemelriyle ilgili fazla örnek istiyorsanız blog arşivinden Ocak ayına bakın : http://www.ethemsulan.com/2010_01_01_archive.html

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.io.File, java.io.FileOutputStream" %>
<%@page import="java.io.PrintWriter, java.io.RandomAccessFile" %>
<%@page import="javax.swing.JOptionPane" %>
JSP Page
        <%
File dosya=new File("c:/dosyam2.txt");
//dosya yoksa olustur
        if(!dosya.exists()){
        dosya.createNewFile();
        }
//doya bir outstream yani kanal olusturur.
FileOutputStream dosyaEris=new 
      FileOutputStream(dosya);
//kanala degeri yaziyor.socket yanı networktede böyledir.
PrintWriter yazici=new PrintWriter(dosyaEris);
String yazilacakDeger=
 JOptionPane.showInputDialog("Bir deger gir");
//daha önceki verileri silip bu yeni değeri yazar.
//Eğer silemden sonuna eklenmesini istiyorsak.okuyaz.seek ile dosya sonuna
//konumlamamız lazım.
   yazici.println(yazilacakDeger);
//Eğer açtığınız dosyayı kapatmazsanız.başka erişim olamıyor
//ve değer de yazılmıyor. yazici.close() yazılmalı ki dosyaya
//yazma ve başka erişim gerçekleşebilsin
        yazici.close();
RandomAccessFile okuYaz=
     new RandomAccessFile(dosya, "rw");
String sonaEkle="Bu satir yazialanalrin sonauna eklenilir.";
//Bu dosyanın sonuna konumlanır.
        okuYaz.seek(okuYaz.length());
        okuYaz.writeBytes(sonaEkle);
        okuYaz.seek(0);
        String satir=okuYaz.readLine();
        while(satir!=null){
        out.println(satir+"
");
        satir=okuYaz.re
adLine();
        }
        %>

Orj kod:http://www.ethemsulan.pastebin.com/f4dc141c6

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.io.File"%>
<%@page import="java.io.IOException" %>
JSP Page
        <%
        try{
//c nin altinda klasorum isminde bir klasor varsa.onun ismi ve pathini yazar.
//eger yoksa mkdir() ile olusturur.exists() varsa true donderir.
File kl=new File("c:/klasorum");
        if(kl.exists()){
out.println("
Klasor zaten var ismi-->
"
+kl.getName()+"
pathname-->
"+kl.getPath());
        }
        else{
        kl.mkdir();
out.println("
Klasör olusturuldu
");
        }
        }catch(IOException e){
        e.printStackTrace();
        }
//text dosyasi yoksa olusturulur varsa ismi ve yolunu yazar
        try{
File ds=new File("c:/dosyam.txt");
        if(ds.exists()){
out.println("
Dosya zaten vra ismi-->
"+
ds.getName()+"
yolu-->
"+ds.getAbsolutePath());
        }else{
        ds.createNewFile();
out.println("
dosyam isminde bir text dosyası olusturuldu
");
        }
        }catch(IOException e2){
        out.println(e2);
        }
        %>
    

Orj kod:http://www.ethemsulan.pastebin.com/f615af1d2

<%@page contentType="text/html" pageEncoding="UTF-8"%>
JSP Page 
           <%!
String formAd,formParola,formEmail,formIl,formEgitim,
formAnadil,formIngilizce,formRusca,formIlgi,formHatirla;
           %><%
formAd=request.getParameter("ad");
formParola=request.getParameter("parola");
formEmail=request.getParameter("email");
formIl=request.getParameter("il");
formEgitim=request.getParameter("egitim");
formAnadil=request.getParameter("anadil");
formIngilizce=request.getParameter("ingilizce");
formRusca=request.getParameter("rusca");
formIlgi=request.getParameter("ilgi");
formHatirla=request.getParameter("hatirla");
           %>
<%--ad ve parola boş girilirse forward ile index.jsp ye yönlendiriyor
Bu sayfa hiç görünmez.--%>
<% if(formAd.length()==0 || formParola.length()==0){ %>
 
         <jsp:forward page="index.jsp"/>
<%--Email formatını regex ifadeyle kontrol edilmiş.Eğer doğru
format girilirse bilgiler yazıyor.Aksi halde else ile
ile linki tıklayıp geri dönebiliriz.--%>
           <%
 } else if (formEmail.matches("(?simx)\\b[A-Z0-9._%+-]+" +
        "@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b")) { %>
Kullanici adiniz:

    Parola:

    Email adresiniz:

    Yaşadığınız il:

    Eğitim: 

    Ana diliniz:

    Yabanci diliniz:<%
    if(formIngilizce!=null){
    out.print(formIngilizce+"
");
    }if(formRusca!=null){
    out.print(formRusca);
    }
        %>
    
Ilgi alanınız:

        <%  if(formHatirla!=null){
out.println("Hatirlanma:"+formHatirla);
       }  %>

<%--Uyarı email kontrolunu yapan if in } parantezi aşağıdakidir.--%>
        <%
    } else {
        %>
<%-- javascrip kullanılmış.Eğer bu linki tıklayıp geri dönerseniz
daha önce yazdığınız form bilgileri parola dışında sıfırlanmıyor.
Bununla forward ile yönlendirmenin farkını göstermeye çalıştım.--%>

<a href='javascript: history.back()'>

Geri donup emailin dogru formatını gir

        
<%-- Uygulamada resim isminde bir klasörüm var.Resimlerden biri ben.jpg
dikkat eğer ben.JPG yazarsanız bulamaz.Büyük-küçük harfe duyarlıdır.
Diğer resimde grt.PNG dir.grt.png yanlış olur--%>
<img src="./resim/ben.jpg" with="100" height="50">

<img src="./resim/grt.PNG" with="100" height="50">
    

Form sayfasi: http://www.ethemsulan.com/2010/02/jspde-html-ile-form-olusturma.html

<%@page contentType="text/html" pageEncoding="UTF-8"%>
JSP Page
<%--genel olarak html ile form bilgilerini kullanmaya çalıştım.Label nasıl kullanıldığını
göstermek için yazdım.kontrol.jsp de session veya cookie oluşturulmuyor.
JSP ve Servlet örneklerinde oturum nasıl oluşturulduğunu açıklamıştım.--%>
<form action="Kontrol.jsp" method="POST">
    <table border="1">
Kullanici Adiniz:
<input type="text" name="ad" />
 Parola:
<input type="password" name="parola">
E-mail:
 <input type="text" name="email"/>
Bulunduğunuz Il:
<select name="il">
         Canakkale
         Istanbul
         Ankara
    
Eğitim Durumunuz:

<input type="radio" name="egitim" value="Lisans" checked>Lisans

<input type="radio" name="egitim" value="Yuksek Lisans">Yuksek Lisans

Bildiğiniz Dilelr:
<input type="checkbox" name="anadil" value="Turkce" checked>Türkçe

<input type="checkbox" name="ingilizce" value="Ingilizce">Ingilizce

<input type="checkbox" name="rusca" value="Rusca">Rusça

 Ilgi alanınız:
<textarea name="ilgi" cols="10" rows="3">
Bilgileri hatirla:
  <label id="a">
<input type="checkbox" name="hatirla" value="evet" id="a">
      Kullanici adi ve parola hatirla
      

 <input type="submit" value="Gonder" />
<input type="reset" value="Iptal" />

Orj kod:http://www.ethemsulan.pastebin.com/f3eb3a78

kontrol.jsp orjinal kodu:http://www.ethemsulan.pastebin.com/f55534c9d

Servlette yönlendirme linki: http://www.ethemsulan.com/2010/02/bir-servlet-sayfasn-digerine-sunucu.html

b1

web.xmlin içinde

    javax.servlet.jsp.jstl.sql.dataSource
    jdbc:mysql://localhost/ethemsulan,com.mysql.jdbc.Driver,root,123

Bir tanımlamayla mysql veritabanımıza erişimi,driver eklemeyi global değişkende tanımlamış olduk.Yanı bu proje içindeki herhangi bir sayfadan mysql deki ethemsulan databaseye ait herhangi bir tabloya erişim gerçekleştirebiliriz.Her sefer conenction baglanti, clas.forname ile driver yüklemekten kurtuluyoruz.mysql username=root ve password=123 benimki.Sol da apache tpmcat seçilmiş ona dikkat edin ve jstl ler eklenmiş libraries klasöründe ayrıca mysql jdbc driverda eklenmiş.JSTL javax.servlet.jsp.jstl.sql.dataSource bu parametreyi kullanıyor erişimde.örnekte <%@ taglib uri="http://java.sun.com/jstl/sql_rt” prefix=”sql”%> seçildiğine dikkat edin.yanı sql_rt li olan taglib.

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/sql_rt" prefix="sql"%>
<%--<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
bunu kullanırsanız expression hatasını alırsınız. yani value="${satir.isbn} yazmaya izin vermiyor--%>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
JSP Page
   <sql:query var="sonucKumesi">
        select * from kitap
   
<c:forEach var="satir" items="${sonucKumesi.rows}">
     <c:out value="${satir.isbn}"/>
     <c:out value="${satir.ad}"/>
     <c:out value="${satir.yazar}"/>
     <c:out value="${satir.fiyat}"/>


    

orj kod:http://www.ethemsulan.pastebin.com/f7a64c39e

JSTL(JavaServerPages Standard Tag Library) JSP’nin standart etiket kütüphaneleridir.Firmalar kendilerine göre etiket kütüphaneleri geliştirebilirler.JSTL sun firmasına ait 4 tane etiket kütüphanesi vardır.Koşul ve döngüler: <%@taglib uri="http://java.sun.com/jsp/jstl/core” prefix=”c”%> , xml : <%@ taglib uri="http://java.sun.com/jsp/jstl/xml” prefix=”x”%> , sql : <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql”%> , tarih formatlari,para birimleri : <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt”%> , funksiyonlar : <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions”%>

JSTL jar dosyalarını netbeanste eklemek için:

j1

Aynı postgresql jdbc driveri eklemek gibidir.Netbeans’te bütün jar dosyaalr bu şekilde eklenilir.Eclipse de eklemek için: http://www.ethemsulan.com/2009/12/eclipse-de-jar-olusturmajar-uzantl.html bakın.

j2

JSTL 1.1 i seçince add library buttonu aktif olur.Eğer ekliyeceğiniz jar dosyası burda yoksa create yazılan yeri tıklayıp aynı eclipsedeki gibi kendi belirtiğiniz jar dosyasını ekleyebilirsiniz.

Eğer bu Apache tomcat değilde GlassFish v3 domaini seçerseniz jstl.jar dosyalarını eklemek zorunda kalamzsınız.Ilk örneğimizde basit uygulamalrda apache tomcati kullanalım sisteme fazla yük getirmediğinden tafsiye etmiştim.Ama bu uygulamalar artık basit uygulamalar değil.Yanı bundan sonra web projemizin isimlendirmeden sonraki adımda server and setting adımında glassfishi seçmek istiyorsanız

g

Bu apache tomcata göre çok daha gelişmiş bir sunucudur.

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.util.LinkedList"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 JSP Page
<c:forEach var="i" begin="0" end="20">
     <c:out value="${i*i} "/>
 

        <%
LinkedList listemiz = new LinkedList();
    listemiz.add("Mehmet");
    listemiz.add("Ethem");
    listemiz.add("SULAN");
session.setAttribute("kisi", listemiz);
        %>
 <c:forEach var="i" items="${kisi}">
            ${i}
 

<c:set var="degisken" value="Canakkale"/>
  degisken degeri: ${degisken}

    </body

Orj kod:http://www.ethemsulan.pastebin.com/f449277a9