Selamlar...
Bu örnekte kullanacağımız araçlar:
1 adet PostgreSql veritabanı.
1 adet java sınıfı
2 adet jsp sayfası
Bir tutam jar dosyası
Amacımız kişilerin resimlerini veritabanında tutmak ve istendiğinde ekrana basmak.
PostgreSql'de bir tablo oluşturalım. Ben 'KISI_RESIM' dedim adına, siz başka bir isim de verebilirsiniz. Ama kişilere ait resimlerin tutulacağı bir tablo olduğunu göz önünde bulundurursak, GLOBAL_YATIRIM_GOSTERGELERI falan gibi bir isim de vermemek lazım.:)
Tablomuzda iki adet alan olsun. Birincisi KISI_ID, ikincisi de RESIM. Birinci alan(KISI_ID) varchar(50), ikinci alan(RESIM) da BYTEA olsun.
Postgresql kurulumu, tablo oluşturma ile ilgili bilgi için daha evvelki görüntülü anlatımlara bakabilirsiniz.
Buraya kadar sorunsuz geldiğinizi farzedersek devam edebiliriz.
Java sınıfımızın içinde resimYukle metodu ve onun ihtiyacı olan yan metotlar olacak.
ResimIslemleri.java
private boolean resmiIsle(String pResimYolu, String strKisiId)
{         
Connection baglanti = null ; 
String sqlINSERT = " INSERT INTO KISI_RESIM (KISI_ID, RESIM) values (?, ?) " ; 
String sqlDELETE = " DELETE FROM KISI_RESIM WHERE KISI_ID = "   strKisiId ; 
FileInputStream fis = null ; 
PreparedStatement ps = null ; 
Statement stmt = null ; 
int intIslenenKayitSayisi = 0 ; 
boolean iseHataVar = true ; 
try 
{       
    if (!strKisiId.equals("")) 
    { 
        Properties prop = new Properties(); 
        prop.put("user","kullanici"); 
        prop.put("password","sifre");         
        Class.forName("org.postgresql.Driver"); 
        baglanti = DriverManager.getConnection("jdbc:postgresql://localhost:5432/TEST_DB", prop); 
        baglanti.setAutoCommit(false) ; 
        File file = new File(pResimYolu) ; 
        fis = new FileInputStream(file) ; 
        stmt = baglanti.createStatement() ; 
        intIslenenKayitSayisi = stmt.executeUpdate(sqlDELETE) ; 
        if (intIslenenKayitSayisi>0) 
            System.out.println("strKisiId:"   strKisiId); 
        ps = baglanti.prepareStatement(sqlINSERT) ; 
        ps.setLong(1, Long.parseLong(strKisiId)) ; 
        ps.setBinaryStream(2, fis, (int)file.length()) ; 
        ps.executeUpdate() ; 
        iseHataVar = false ; 
    } 
catch(Exception e) 
    System.out.println("GenelIslemler.resmiIsle()"   e.getMessage()); 
    iseHataVar = true ; 
finally 
    try 
    { 
        if(fis != null) 
        { 
            fis.close() ; 
        }
        if (iseHataVar)
        {
            baglanti.rollback() ;
        }
        else
        {
            baglanti.commit() ;
        }
        if (ps != null)
        {
            ps.close() ;
            ps = null ;
        }
        if (baglanti != null)
        {
            baglanti.close() ;
            baglanti = null ;
        }           
    }
    catch(Exception e)
    {
        System.out.println("resmiIsle"   e.getMessage()) ;
    }
}
return !iseHataVar ;
}//private boolean resmiIsle(String pResimYolu, String strKisiId)
 
JSP sayfalarımızdan birisi geriye gif döndüren bir jsp sayfası(ResmiBas.jsp). Ajax örneğimizdeki sayfa da geriye XML döndürüyordu hatırlarsak. Bu sayfa da GIF döndürüyor. Diğer JSP sayfamız da kişiye ait bilgilerin ve resminin basıldığı sayfa(ResimEkleGoster.jsp).
ResmiBas.jsp    
java.sql.Connection baglanti = null ;
ServletOutputStream o = null ;
ResultSet rs = null ;
byte[] imgBytes = null ;
PreparedStatement ps = null ;    
response.setContentType("image/gif") ;
String strKisiId = "" ;
if (request.getParameter("pKisiId") != null)
{
strKisiId = request.getParameter("pKisiId") ;
}   
try
{   
if (!strKisiId.equals(""))            
{
   Properties prop = new Properties();
   prop.put("user","kullanici");
   prop.put("password","sifre");        
   Class.forName("org.postgresql.Driver");
   baglanti = DriverManager.getConnection("jdbc:postgresql://localhost:5432/TEST_DB", prop);
   ps = baglanti.prepareStatement("SELECT RESIM FROM KISI_RESIM WHERE KISI_ID = "   strKisiId) ;
   rs = ps.executeQuery() ;
   if (rs != null)
   {
       while(rs.next())
       {
           imgBytes = rs.getBytes(1);
           o = response.getOutputStream();
       }
       rs.close() ;
   }        
   ps.close();
   baglanti.close() ;
   if (imgBytes != null)
   {
          o.write(imgBytes);
   }
   out.clear();
   out = pageContext.pushBody();
}
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
 
ResmiYukleGoster.jsp
if (!strKisiId.equals(""))            
{
   Properties prop = new Properties();
   prop.put("user","kullanici");
   prop.put("password","sifre");        
   Class.forName("org.postgresql.Driver");
   baglanti = DriverManager.getConnection("jdbc:postgresql://localhost:5432/kullanici", prop);
   ps = baglanti.prepareStatement("SELECT RESIM FROM KISI_RESIM WHERE KISI_ID = "   strKisiId) ;
   rs = ps.executeQuery() ;
   if (rs != null)
   {
       while(rs.next())
       {
           imgBytes = rs.getBytes(1);
           o = response.getOutputStream();
       }
       rs.close() ;
   }        
   ps.close();
   baglanti.close() ;
   if (imgBytes != null)
   {
          o.write(imgBytes);
   }
   out.clear();
   out = pageContext.pushBody();
}
 
Resmin boyutlarını java sınıfı içerisinde ayarlamak(genişletmek, uzatmak) falan mümkün ama ben uğraşmadım. Ben 105x130'dan büyükse yüklememe yöntemini seçtim. İsterseniz siz, gelen resmi boyutlandırabilirsiniz. Ayrıca resmi önce diskte 'kisiResimler' adında bir dizin oluşturup oraya atıyorum sonra da ordan veritabanına yazıyorum. Siz işlem bittikten sonra diksten silebilirsiniz de. 
ResimYukleGoster.zip
ya da
 
İhtiyaç olacak Jar dosyaları
ya da
Saygılar...
# Kategoriler : Java Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz

Selamlar...

Tek bir bilgisayarda farklı Java projelerini farklı portlardan aşağıdaki çalıştırabiliriz.
Öncelikle Apache Tomcat'i indiriyoruz. http://tomcat.apache.org/download-70.cgi 

Zip olan sürümünü indirirseniz kurulum yapmaniza da gerek kalmaz. 
Eğer yoksa Eclipse'i indirmemiz gerek. http://www.eclipse.org/downloads/ (Eclipse IDE for Java EE Developers)


İndirdiğimiz tomcat klasörünün adını apache-tomcat-7_8020 yapalım. Sonra aynı yere bundan bir tane daha kopyalayıp adını apache-tomcat-7_8010 yapalım.
Yani birisi 8010 portundan çalışacak, birisi de 8020'den.
Tabi bunun için bir ayar yapmamız lazım.
apache-tomcat-7_8010/conf/server.xml dosyasını açıyoruz notepad ile.    

1
<Server port="8005" shutdown="SHUTDOWN">

satırını    

1
<Server port="8015" shutdown="SHUTDOWN">

olarak değiştiriyoruz. 

 

 

1
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

satırını

1
<Connector port="8010" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

olarak değiştiriyoruz.

 

 

1
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

 satırını    

1
<Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />

olarak değiştiriyoruz.

Eclipse'te projelerimizi sağ tıklayıp yeni sunucu ekleme seçeneği ile her ikisine farklı tomcat sunucularını gösterirsek işlem tamamlanmış olur. 

 

Saygılar...

# Kategoriler : Java Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar...
Java'da dosya yükleme işlemini aşağıdaki şekilde yapabiliriz.
// Önce kullanacağımız değişkenleri tanımlamakla başlıyoruz.
// Tek bir sayfada yapacağız işlemi
     
String tt = "" ;
String dosyaAdi = "" ;
String contentType = request.getContentType() ;
String dosyaYolu = "" ;
String yuklenecekDizin = "" ;
 
// Eğer sayfanın altındaki form postalandıysa contentType null değildir ve içinde "multipart/form-data" geçiyordur.
// Bu durumda if'in içine giriyoruz ve gelen dosyayı belirttiğimiz dizine yüklüyoruz.
// Ben yüklenecek dizini değişkenden aldım ve değerine de "C:" dedim.
// Bunu siz sayfadan da alabilirsiniz.
// Formun içinden bize gelen elemanlara bakıyoruz ve sadece dosya türünde olanı alıyoruz. 
// Başka tipte elemanlar da gelebilir. Onları almamalıyız.
 
// Eğer sayfanın ilk yüklenişi ise de o zaman else kısmına giriyoruz ve formumuzu oluşturuyoruz.
// Formumuzda neler var? Bir adet "File" elemanı, bir adet "Reset" butonu, bir adet de "Submit" butonu.
// Ben boş mu diye kontrol etmedim ama siz formu postalamadan evvel dosya seçilmemişse formu postalamayabilirsiniz.
// 
if ((contentType != null) &amp;amp;&amp;amp; (contentType.indexOf("multipart/form-data") &amp;gt;= 0)) 
{        
    DiskFileItemFactory diskFile = new DiskFileItemFactory() ;
    ServletFileUpload fu = new ServletFileUpload(diskFile) ;
    fu.setSizeMax(301401501);    //bayt    
    java.util.List&amp;lt;DiskFileItem&amp;gt; fileItems = new ArrayList&amp;lt;DiskFileItem&amp;gt;() ; 
    fileItems = fu.parseRequest(request);
    Iterator&amp;lt;DiskFileItem&amp;gt; itr = fileItems.iterator();    
    FileItem fi = null ;
    File olusacakDosya = null ;
    yuklenecekDizin = "C:" ;
    while(itr.hasNext()) 
    {
          fi = (FileItem)itr.next();    
          if(!fi.isFormField()) //isFormField() degilse File turunde bi elemandir gelen.
          {
              dosyaAdi = fi.getName();
              if (dosyaAdi != null) 
              {
                  dosyaAdi = FilenameUtils.getName(dosyaAdi);
              }
              else
              {
                  dosyaAdi = "" ;                      
              }
                dosyaYolu = yuklenecekDizin "/" dosyaAdi ;
            if (!dosyaAdi.equals(""))
            {
                olusacakDosya = new File(dosyaYolu) ;
                   fi.write(olusacakDosya) ;
            }
            else
            {        
                out.println("&amp;lt;span class=\"renkliKelime\"&amp;gt;Dosya adı boş. Yükleme başarısız!&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;") ;
                return ; 
            }
          }//if(!fi.isFormField())           
    }//while(itr.hasNext())
    out.println("&amp;lt;span class=\"renkliKelime\"&amp;gt;Dosya başarı ile karşıya yüklendi : &amp;lt;span style=\"color:#ff0000; font-weight:bold; \"&amp;gt;" dosyaYolu "&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;") ;        
}        
else
{
     tt = "&amp;lt;form method=\"post\" ACTION=\"DosyaYukle.jsp\" id=\"frmUpload\" name=\"frmUpload\" ENCTYPE=\"multipart/form-data\"&amp;gt;" ;
     tt = "&amp;lt;table id=\"tblUpload\" name=\"tblUpload\"&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td colspan=\"2\"&amp;gt;" ;
     tt = "&amp;lt;input type=\"file\" name=\"dosyaUpload\" id=\"dosyaUpload\"&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;" ;
     tt = "&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input type=\"submit\" name=\"btnGonder\" id=\"btnGonder\" value=\"GÖNDER\"&amp;gt;&amp;lt;/td&amp;gt;" ;
     tt = "&amp;lt;td&amp;gt;&amp;lt;input type=\"reset\" name=\"btnTemizle\" id=\"btnTemizle\" value=\"TEMİZLE\"&amp;gt;" ;
     tt = "&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;" ;
    tt = "&amp;lt;/form&amp;gt;" ; 
    out.println(tt) ;
}
DosyaYukle.jsp:
ya da
İhtiyaç olacak JAR dosyaları
ya da
 
Saygılar...
# Kategoriler : Java Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar...
Java-JSP ile bir zip dosyasını tarayıcımızdan seçip C dizinine bu zipi açan bir uygulama yazmıştım zamanında. 
Ekte ihtiyacınız olan JSP, JAVA ve JAR dosyaları mevcuttur.
ZipInputStream zipDosyasi = new ZipInputStream(inputStream) ;
ZipEntry zipIcindekiDosya = null ;
String strDosyaAdi = "" ;
int zipIcindekiDosyaSayisi = 0 ;
if (!pDizin.endsWith(DOSYAAYIRACI))
{
    pDizin  = DOSYAAYIRACI ;
}
if ((zipIcindekiDosya = zipDosyasi.getNextEntry()) != null)
{
    do
    {
        String entryName = zipIcindekiDosya.getName();
        if (!zipIcindekiDosya.isDirectory())
        {
            strDosyaAdi = pDizin   entryName;
            dosyayiOlustur(zipDosyasi, strDosyaAdi);//Dosya oluşturulurken dizin de oluşturuluyor.
            zipIcindekiDosyaSayisi   ;
        }
    }
    while ((zipIcindekiDosya = zipDosyasi.getNextEntry()) != null) ;
    System.out.println("Açılan zip dosyası sayısı : "   zipIcindekiDosyaSayisi) ;
}
else
{
    throw new IOException("Açılmak istenen dosya zip dosyası değil!") ;
}
 

Unzip.java ZipiAc.jsp
ya da
İhtiyaç olacak JAR dosyaları
ya da
Bu JAR dosyalarını projenizin olduğu dizindeki WebContent altındaki WEB-INF dizini içine atıp Eclipse üzerinde projenizi sağ tıklayıp yenilemeniz gerekmektedir.
 
Saygılar...
# Kategoriler : Java Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz

Selamlar...

Tomcat'te sanal dizin oluşturmak mümkün. Hem 5.5 hem de 6.0'da aşağıdaki şekilde yapabilirsiniz.
Misal resimlerin olduğu bir dizin var ve diskin E:\Resimler dizininde olsun.
1. Tomcat'in kurulduğu dizinde conf klasörü altında Catalina/localhost klasörleri yoksa bunları oluşturmak lazım. 
2. Bu dizinin altına(Tomcat dizini/Catalina/localhostresimler.xml adında bir xml dosyası oluşturmak lazım.
3. XML'in içeriği de şu şekilde olacak:
<Context path=”/resimler” docBase=”E:/Resimler” debug=”0″ privileged=”true”>
</Context>

4. Tomcat'i yeniden başlatıyoruz.
5. İşlem tamam.

http://localhost:8080/resimler/deneme.gif
şeklinde yazarsak, E:\Resimler\deneme.gif resmine tarayıcıdan ulaşılabilir.

 

Saygılar...

# Kategoriler : Java Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar... 
Java'ya yeni başlayanlara faydası olacağını düşündüğüm txt dosyası oluşturup kayıt yapan basit bir java uygulaması.
Buradan indirebilirsiniz.
Java'da PostgreSQL veritabanına kayıt yapma örneği olacak bundan sonraki örnek. Fakat bunun için Java-PostgreSQL ve Apache kurulumlarının anlatıldığı görüntülü bir ders hazırladım. Ön hazırlık mahiyetinde. 
Buradan indirebilirsiniz.
PostgreSQL'de basit bir veritabanı oluşturmayı görüntülü olarak anlattım. Daha sonra da bu veritabanına ekleme, listeleme örneği gelecek.
Buradan indirebilirsiniz.
Java, Apache ve PostgreSQL kullanarak veritabanına kayıt yapan basit bir uygulamanın görüntülü anlatımı.
Buradan indirebilirsiniz. 
 
Saygılar...
# Kategoriler : Java Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Selamlar...
Java'da basit bir uygulama ile Excel dosyasındaki kayıtları Xml dosyasına aşağıdaki şekilde aktarabiliriz.
Kodları zip olarak indirmek isterseniz aşağıdaki adreslerden indirebilirsiniz:
http://www.divshare.com/download/8968631-92e (Java)
C#'ta nasıl yapıldığını burada anlatmıştık.
Java için de şu şekilde:
package com.zamkinos.genel;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Locale;
 
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
 
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.read.biff.BiffException;
 
public class ExcelIslemleri
{
    public int intExcelKolon_1 = 0 ;
    public int intExcelKolon_2 = 0 ;
    public String strXmlOzellikAdi_1 = "" ;
    public String strXmlOzellikAdi_2 = "" ;
    public int intBaslangicSatir = 0 ;
    public int intBitisSatir = 0 ;
    public int intCalismaSayfasiNo = 1 ;
    
    public boolean excel2Xml(String pExcelYolu)
    {
        boolean iseBasarili = false ;
        FileInputStream fs = null ;
        WorkbookSettings wbS = null ;
        Workbook wb = null ;
        Sheet cs = null ;
        Cell satirHucreler[] = null;
        int i = 0 ;
        String strTR = "" ;
        String strENG = "" ;
        int intSayac = 1 ;
        Document xmlDokuman = null ;
        Node nodKelime = null ;
        Node nodKategori = null ;
        String strKategoriAdi = "" ;
        try
        {
            fs = new FileInputStream(new File(pExcelYolu)) ;
            wbS = new WorkbookSettings() ;
            wbS.setLocale(new Locale("tr", "TR")) ;
            wb = Workbook.getWorkbook(fs, wbS) ;
            cs = wb.getSheet(intCalismaSayfasiNo);
            xmlDokuman = DocumentHelper.parseText("<kok>") ;
            if (cs != null)
            {
                strKategoriAdi = GenelIslemler.TR2ENG(cs.getName()) ;
                nodKategori = XmlIslemleri.newCH(xmlDokuman.getRootElement(), strKategoriAdi) ;               
                for (i=intBaslangicSatir; i&lt;=intBitisSatir; i  )
                {
                    satirHucreler = cs.getRow(i) ;
                    if (satirHucreler != null)
                    {
                        strENG = satirHucreler[intExcelKolon_1].getContents() ;
                        strTR = satirHucreler[intExcelKolon_2].getContents() ;
                        nodKelime = XmlIslemleri.newCH(nodKategori, "Kelime") ;
                        XmlIslemleri.setNV((Element)nodKelime, strXmlOzellikAdi_1, strENG) ;
                        XmlIslemleri.setNV((Element)nodKelime, strXmlOzellikAdi_2, strTR) ;
                        XmlIslemleri.setNAV((Element)nodKelime, "ID", String.valueOf(intSayac)) ;
                        intSayac    ;
                    }
                }
                XmlIslemleri.xmleYaz(xmlDokuman, "J:/"   strKategoriAdi   ".xml") ;
                iseBasarili = true ;
            }
        }
        catch(Exception e)
        {
            System.out.println("ExcelIslemleri.excel2Xml()"   e.getMessage()) ;
        }
        finally
        {
            try
            {
                if (fs != null)
                    fs.close();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
        return iseBasarili ;
    }
    
 
    
    public void dosyayiOku(String pExcelDosyasi)
    {
        init(pExcelDosyasi);
    }
    
    public void init(String filePath)
    {
        FileInputStream fs = null;
        try
        {
            fs = new FileInputStream(new File(filePath));
            contentReading(fs);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try {
                fs.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    public void contentReading(InputStream fileInputStream) {
        WorkbookSettings ws = null;
        Workbook workbook = null;
        Sheet s = null;
        Cell rowData[] = null;
        int rowCount = '0';
        int columnCount = '0';
        int totalSheet = 0;
  
        try {
            ws = new WorkbookSettings();
            ws.setLocale(new Locale("en", "EN"));
            workbook = Workbook.getWorkbook(fileInputStream, ws);
  
            totalSheet = workbook.getNumberOfSheets();
            if(totalSheet &gt; 0) {
                System.out.println("Total Sheet Found:"   totalSheet);
                for(int j=0; j<totalsheet; j  )="" {="" name:="" workbook.getsheet(j).getname());="" }="" getting="" default="" i.e.="" 0="" s="workbook.getSheet(0);" cell="" getheadingfromxlsfile(s);="" sheet,="" will="" return="" you="" that="" are="" occupied="" with="" some="" data="" rows="" s.getrows());="" rowcount="s.getRows();" no="" of="" columns="" in="" sheet="" system.out.println(="" total="" column="" inside="" sheet:=""  ="" s.getcolumns());="" columncount="s.getColumns();" reading="" individual="" row="" content="" for="" (int="" i="0;">&lt; rowCount; i  ) {
                //Get Individual Row
                rowData = s.getRow(i);
                if (rowData[0].getContents().length() != 0) { // the first date column must not null
                    for (int j = 0; j &lt; columnCount; j  ) {
                        switch (j) {
                        case 0:
                            System.out.println("Employee Id:"   rowData[j].getContents());
                        case 1:
                            System.out.println("Employee Name:"   rowData[j].getContents());
                        case 2:
                            System.out.println("Employee Designation:"   rowData[j].getContents());
                        default:
                            break;
                        }
                    }
                }
            }
            workbook.close();           
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        catch (BiffException e)
        {
            e.printStackTrace();
        }
    }
    
    public void getHeadingFromXlsFile(Sheet sheet)
    {
        int columnCount = sheet.getColumns();
        for (int i = 0; i &lt; columnCount; i  )
        {
            System.out.println(sheet.getCell(i, 0).getContents());
        }
    }
 
}
Saygılar...
# Kategoriler : Java Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz
Arama
  Ara
Sayfalar
Takvim
<Temmuz 2017>
PSÇPCCP
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456
Bağlantılar