14 Nisan 2012 Cumartesi
24 Mart 2012 Cumartesi
Java Web Filter Ekleme
Günümüzde çoğu web uygulamaları giriş gerektiren uygulamalardır.
Böyle uygulamalarda ziyaretçiler sayfaya giriş yaptıktan sonra bazı özel sayfalara erişebiliyorlar.Örneğin kullanıcı profil sayfası.Kullanıcı sisteme giriş yaptıktan sonra profil sayfasına erişebilir ve erişmesi için bir linki oluşur.
Örnek verelim: "http://wwww.deneme.com/profil.htm"
Bu örnek linke kullanıcı uygulamaya giriş yapmışsa kendi profilini görüntüleyebilir aksi halde "Sayfa bulunamadı" ,"Erişim Engellendi" vb gibi sayfa uyarıları alır.
Peki bu kısıtlama web uygulamalarında nasıl sağlanır.Bunun cevabını aşağıda adım adım gerçekleştirelim.
Java geliştirme ortamının MyEclipse olarak ele aldım.(Eclipse'den hiç bir farkı yok)
Yeni bir Java web projesi açalım.Proje ismi Deneme olsun.Java Web uygulamalarında genellikle Web uygulama sunucusu olarak Apache Tomcat kullanılır ve portu 8080 olarak başlangıçta ayarlanmıştır.(İsteğe bağlı olarak portu değiştirilebilir.)
Proje detayına çok inmeyeceğim çünkü bu kısımda sadece Web url filtrelemeyi anlatacağım.
O zaman uygulamaya erişmek için "http://localhost:8080/Deneme" bu adresi girmemiz gerekir.
Tüm Java Web uygulamalarında standart olarak aşağıdaki klasörler bulunur.
src (Java kodu),WebRoot(Web dosyaları)
WebRoot altında da WEB-INF klasörüde her zaman bulunmaktadır.
Aynı zamanda da bu klasör altında da web.xml de her zaman bulunmaktadır.
Yani geliştirme ortamında web.xml görüntülemek için Deneme/WebContent/WEB-INF/web.xml bu dizine gidebilirsiniz.
Java Web uygulamalarında web.xml vazgeçilmezdir.Uygulama yöntemleri,kuralları,konfigürasyonlar vb burda işlenir.
Web filtreleme için de burayı kullanacağız.
Örnek web.xml içeriği
---------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------
Şimdi bizim yapacağımız web.xml içeriğine filtreleme sağlamak için gerekli tanımı koyacağız.Son hali de aşağıdaki gibi olacak.
web.xml
---------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------
Yukarıdaki "" bölümünü kısaca anlatalım.
"filter-name" ===============> Filtreleme ismi.
"filter-class" ===========> Filtrelemeyi sağlayan java kodudur.Ve kod aşağıdaki gibidir.Yukarıda yazılan "filter.GirisFiltreleme" java class dizinidir.
---------------------------------------------------------------------------------------------------
package filter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.StringTokenizer;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
public class GirisFiltreleme implements Filter {
static Logger logger = Logger.getLogger(GirisFiltreleme.class.getName());
private Collection noFilterURIs = null;
private Collection initialURIs = null;
private String loginOccurredAttributeName = null;
private String loginPage = null;
protected FilterConfig filterConfig = null;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.loginOccurredAttributeName = filterConfig.getInitParameter("loginOccurredAttributeName");
this.loginPage = filterConfig.getInitParameter("loginPage");
StringTokenizer tokenizer = new StringTokenizer(filterConfig.getInitParameter("noFilterURIs"),filterConfig.getInitParameter("noFilterURISeperator"));
noFilterURIs = new ArrayList();
while (tokenizer.hasMoreTokens()) {
noFilterURIs.add(tokenizer.nextToken());
}
tokenizer = new StringTokenizer(filterConfig.getInitParameter("initialURIs"), filterConfig.getInitParameter("noFilterURISeperator"));
initialURIs = new ArrayList();
while (tokenizer.hasMoreTokens()) {
initialURIs.add(tokenizer.nextToken());
}
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpSession session = ((HttpServletRequest) request).getSession();
String loginOccurredAttribute = (String) session.getAttribute(loginOccurredAttributeName);
String requestURI = ((HttpServletRequest) request).getRequestURI();
if (logger.isDebugEnabled()) {
logger.debug("Path: " + requestURI);
}
// check the URL to see if request must be filtered
if (noFilterURIs.contains(requestURI)) {
if (logger.isDebugEnabled()) {
logger.debug("No filter required..");
}
// no filter required, go on
chain.doFilter(request, response);
}
// check if user has already signed in
else if (loginOccurredAttribute == null) {
if (logger.isDebugEnabled()) {
logger.debug("Filter applied.. No session exists, send to login page..");
}
// no! send the user to the login page
RequestDispatcher rd = filterConfig.getServletContext().getRequestDispatcher(loginPage);
rd.forward(request, response);
}
else {
if (logger.isDebugEnabled()) {
logger.debug("Filter applied.. Session exists, go on..");
}
chain.doFilter(request, response);
}
}
public void destroy() {
this.filterConfig = null;
}
}
---------------------------------------------------------------------------------------------------
"init-param" ==========> Filtrelemede uygulanacak kurallar parametrelerini tanımlar.
loginPage ------------------>Giriş yapılacak sayfayı tanımlar.
noFilterURIs---------------->Giriş gerektirmeyen sayfayı veya sayfaları gösterir.Örneğin iletisim.html
noFilterURISeperator-------->Adres kısmında kullanılacak ayraç sembölü
loginOccurredAttributeName-->Giriş yapan kullanıcılar, giriş kontrolü için otururum nesnesine(SESSION) bir tanım yapılması gerekir.Örneğin=USER_ID
Genel olarak toparlayacak olursak.
Uygulamaya giriş yapan kullanıcılar uygulama dizini altındaki sayfalara erişebilecekler.Örneğin http://localhost:8080/Deneme/Profil.html adresine girdiğinde kendisine ait profil bilgilerini görüntüleyebilecektir.
Ziyaretçiler ise adrese girdiğinde "Erişim engellendi","Sayfa bulunamadı" vb
gibi uyarılar alacaktır.Yukarıda iletisim sayfası için filtreleme engeli koymadık.
Yani http://localhost:8080/Deneme/iletisim.html sayfasına erişebilecekler.
Böylece Java Web uygulamalarında filtrelemeyi sağlamış olduk.
Umarım yararlı bilgi olur.İyi günler dilerim.
Böyle uygulamalarda ziyaretçiler sayfaya giriş yaptıktan sonra bazı özel sayfalara erişebiliyorlar.Örneğin kullanıcı profil sayfası.Kullanıcı sisteme giriş yaptıktan sonra profil sayfasına erişebilir ve erişmesi için bir linki oluşur.
Örnek verelim: "http://wwww.deneme.com/profil.htm"
Bu örnek linke kullanıcı uygulamaya giriş yapmışsa kendi profilini görüntüleyebilir aksi halde "Sayfa bulunamadı" ,"Erişim Engellendi" vb gibi sayfa uyarıları alır.
Peki bu kısıtlama web uygulamalarında nasıl sağlanır.Bunun cevabını aşağıda adım adım gerçekleştirelim.
Java geliştirme ortamının MyEclipse olarak ele aldım.(Eclipse'den hiç bir farkı yok)
Yeni bir Java web projesi açalım.Proje ismi Deneme olsun.Java Web uygulamalarında genellikle Web uygulama sunucusu olarak Apache Tomcat kullanılır ve portu 8080 olarak başlangıçta ayarlanmıştır.(İsteğe bağlı olarak portu değiştirilebilir.)
Proje detayına çok inmeyeceğim çünkü bu kısımda sadece Web url filtrelemeyi anlatacağım.
O zaman uygulamaya erişmek için "http://localhost:8080/Deneme" bu adresi girmemiz gerekir.
Tüm Java Web uygulamalarında standart olarak aşağıdaki klasörler bulunur.
src (Java kodu),WebRoot(Web dosyaları)
WebRoot altında da WEB-INF klasörüde her zaman bulunmaktadır.
Aynı zamanda da bu klasör altında da web.xml de her zaman bulunmaktadır.
Yani geliştirme ortamında web.xml görüntülemek için Deneme/WebContent/WEB-INF/web.xml bu dizine gidebilirsiniz.
Java Web uygulamalarında web.xml vazgeçilmezdir.Uygulama yöntemleri,kuralları,konfigürasyonlar vb burda işlenir.
Web filtreleme için de burayı kullanacağız.
Örnek web.xml içeriği
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
Şimdi bizim yapacağımız web.xml içeriğine filtreleme sağlamak için gerekli tanımı koyacağız.Son hali de aşağıdaki gibi olacak.
web.xml
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
Yukarıdaki "
"filter-name" ===============> Filtreleme ismi.
"filter-class" ===========> Filtrelemeyi sağlayan java kodudur.Ve kod aşağıdaki gibidir.Yukarıda yazılan "filter.GirisFiltreleme" java class dizinidir.
---------------------------------------------------------------------------------------------------
package filter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.StringTokenizer;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
public class GirisFiltreleme implements Filter {
static Logger logger = Logger.getLogger(GirisFiltreleme.class.getName());
private Collection noFilterURIs = null;
private Collection initialURIs = null;
private String loginOccurredAttributeName = null;
private String loginPage = null;
protected FilterConfig filterConfig = null;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.loginOccurredAttributeName = filterConfig.getInitParameter("loginOccurredAttributeName");
this.loginPage = filterConfig.getInitParameter("loginPage");
StringTokenizer tokenizer = new StringTokenizer(filterConfig.getInitParameter("noFilterURIs"),filterConfig.getInitParameter("noFilterURISeperator"));
noFilterURIs = new ArrayList();
while (tokenizer.hasMoreTokens()) {
noFilterURIs.add(tokenizer.nextToken());
}
tokenizer = new StringTokenizer(filterConfig.getInitParameter("initialURIs"), filterConfig.getInitParameter("noFilterURISeperator"));
initialURIs = new ArrayList();
while (tokenizer.hasMoreTokens()) {
initialURIs.add(tokenizer.nextToken());
}
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpSession session = ((HttpServletRequest) request).getSession();
String loginOccurredAttribute = (String) session.getAttribute(loginOccurredAttributeName);
String requestURI = ((HttpServletRequest) request).getRequestURI();
if (logger.isDebugEnabled()) {
logger.debug("Path: " + requestURI);
}
// check the URL to see if request must be filtered
if (noFilterURIs.contains(requestURI)) {
if (logger.isDebugEnabled()) {
logger.debug("No filter required..");
}
// no filter required, go on
chain.doFilter(request, response);
}
// check if user has already signed in
else if (loginOccurredAttribute == null) {
if (logger.isDebugEnabled()) {
logger.debug("Filter applied.. No session exists, send to login page..");
}
// no! send the user to the login page
RequestDispatcher rd = filterConfig.getServletContext().getRequestDispatcher(loginPage);
rd.forward(request, response);
}
else {
if (logger.isDebugEnabled()) {
logger.debug("Filter applied.. Session exists, go on..");
}
chain.doFilter(request, response);
}
}
public void destroy() {
this.filterConfig = null;
}
}
---------------------------------------------------------------------------------------------------
"init-param" ==========> Filtrelemede uygulanacak kurallar parametrelerini tanımlar.
loginPage ------------------>Giriş yapılacak sayfayı tanımlar.
noFilterURIs---------------->Giriş gerektirmeyen sayfayı veya sayfaları gösterir.Örneğin iletisim.html
noFilterURISeperator-------->Adres kısmında kullanılacak ayraç sembölü
loginOccurredAttributeName-->Giriş yapan kullanıcılar, giriş kontrolü için otururum nesnesine(SESSION) bir tanım yapılması gerekir.Örneğin=USER_ID
Genel olarak toparlayacak olursak.
Uygulamaya giriş yapan kullanıcılar uygulama dizini altındaki sayfalara erişebilecekler.Örneğin http://localhost:8080/Deneme/Profil.html adresine girdiğinde kendisine ait profil bilgilerini görüntüleyebilecektir.
Ziyaretçiler ise adrese girdiğinde "Erişim engellendi","Sayfa bulunamadı" vb
gibi uyarılar alacaktır.Yukarıda iletisim sayfası için filtreleme engeli koymadık.
Yani http://localhost:8080/Deneme/iletisim.html sayfasına erişebilecekler.
Böylece Java Web uygulamalarında filtrelemeyi sağlamış olduk.
Umarım yararlı bilgi olur.İyi günler dilerim.
7 Mart 2012 Çarşamba
Oracle nasıl kaldırılır veya nasıl silinir.
Merhabalar.
İnsanların en çok sorun yaşadığı problemlerden bir tanesi Oracle yüklediği Bilgisayardan Oracle kaldırmamasıdır.
Aslında alışageldiğimiz mevcut yöntem yüklediğimiz programların Denetim Masasında Programlar Bölümünden Programı kaldırmaktır.Ama Oracle için bu durum söz konusu değildir.Son çıkan sürümlerde uninstaller paketi eklendiğini duydum.Ama biz aşağıdaki yöntemi kullanacağız.(Uninstaller öğrenene kadar).
Aşağıdaki adımları sırayla izleyelim.
1.ADIM
Başlat Tuşundan -Tüm Programlar-Donatıları-Çalıştır kısmını açıyoruz.
Gelen ekrana "services.msc" komutunu yazıp tamam tuşuna tıkladıktan sonra
hizmetler veya Servisler dediğimiz ekran açılacaktır.
Başında Oracle* yazılı tüm servislere aynı adım uygulanacak.
Servis üzerine sağ tıklayıp Durdur diyeceğiz.Bu servislerin isimlerini
bir notepad yazmanızda fayda var.Notepad ismini servisler olarak
kaydedebilirsiniz.Servis isimleri şu şekilde alınır.
Servis üzerine sağ tıklayıp Özelliklerden Hizmet Adı olan yerde yazılıdır.
Bu isimleri her servis servisler text dosyasına yazalım.
2.ADIM
Bu adım çok kolaydır.Oracle yüklü olan dizini tamamen sileceğiz.
(Genellikle varsayılan olarak C dizini altında app olarak kaydedilir.)
3.ADIM
Oracle yüklenirken Registera da yazar.
Register ulaşmak için Yukarıda anlatığımız Çalıştır kısmını açacağız.
"regedit" komutunu yazıp tamam tuşuna basıyoruz.
Açılan pencerede HKEY_LOCAL_MACHINE-->SOFTWARE-->Oracle siliyoruz.
4.ADIM
Şimdi tüm silmeleri hallettik.Ama tek bir şey kaldı.
1.adımda servisleri durdurduk ve servis isimlerini bir text dosyaya yazdık.
Bu servisleri de kaldırmamız gerekiyor.
Başlat tuşuna cmd yazıyoruz.(arama kısmına) cmd.exe bulunacaktır.Bu exe dosyasına
sağ tıklayıp yönetici olarak çalıştırıyoruz.
Gelen komut penceresine her servis için ayrı olarak aşağıdaki
komutu yazıyoruz ve enter (tamam) tuşuna basacağız.
sc delete servisAdı
servisAdı yazılan yere servis ismini yazıyoruz.Hatırlarsanız servis isimlerini
bir text dosyaya yazdık.Ordan kopyalayıp komuta yapıştırabiliriz.
Bu adımlardan sonra Bilgisayarınızdan oracle ile ilgili hiçbir şey kalmayacaktır.
Umarım yararlı bir bilgi olmuştur.
Başarılar dilerim.
İnsanların en çok sorun yaşadığı problemlerden bir tanesi Oracle yüklediği Bilgisayardan Oracle kaldırmamasıdır.
Aslında alışageldiğimiz mevcut yöntem yüklediğimiz programların Denetim Masasında Programlar Bölümünden Programı kaldırmaktır.Ama Oracle için bu durum söz konusu değildir.Son çıkan sürümlerde uninstaller paketi eklendiğini duydum.Ama biz aşağıdaki yöntemi kullanacağız.(Uninstaller öğrenene kadar).
Aşağıdaki adımları sırayla izleyelim.
1.ADIM
Başlat Tuşundan -Tüm Programlar-Donatıları-Çalıştır kısmını açıyoruz.
Gelen ekrana "services.msc" komutunu yazıp tamam tuşuna tıkladıktan sonra
hizmetler veya Servisler dediğimiz ekran açılacaktır.
Başında Oracle* yazılı tüm servislere aynı adım uygulanacak.
Servis üzerine sağ tıklayıp Durdur diyeceğiz.Bu servislerin isimlerini
bir notepad yazmanızda fayda var.Notepad ismini servisler olarak
kaydedebilirsiniz.Servis isimleri şu şekilde alınır.
Servis üzerine sağ tıklayıp Özelliklerden Hizmet Adı olan yerde yazılıdır.
Bu isimleri her servis servisler text dosyasına yazalım.
2.ADIM
Bu adım çok kolaydır.Oracle yüklü olan dizini tamamen sileceğiz.
(Genellikle varsayılan olarak C dizini altında app olarak kaydedilir.)
3.ADIM
Oracle yüklenirken Registera da yazar.
Register ulaşmak için Yukarıda anlatığımız Çalıştır kısmını açacağız.
"regedit" komutunu yazıp tamam tuşuna basıyoruz.
Açılan pencerede HKEY_LOCAL_MACHINE-->SOFTWARE-->Oracle siliyoruz.
4.ADIM
Şimdi tüm silmeleri hallettik.Ama tek bir şey kaldı.
1.adımda servisleri durdurduk ve servis isimlerini bir text dosyaya yazdık.
Bu servisleri de kaldırmamız gerekiyor.
Başlat tuşuna cmd yazıyoruz.(arama kısmına) cmd.exe bulunacaktır.Bu exe dosyasına
sağ tıklayıp yönetici olarak çalıştırıyoruz.
Gelen komut penceresine her servis için ayrı olarak aşağıdaki
komutu yazıyoruz ve enter (tamam) tuşuna basacağız.
sc delete servisAdı
servisAdı yazılan yere servis ismini yazıyoruz.Hatırlarsanız servis isimlerini
bir text dosyaya yazdık.Ordan kopyalayıp komuta yapıştırabiliriz.
Bu adımlardan sonra Bilgisayarınızdan oracle ile ilgili hiçbir şey kalmayacaktır.
Umarım yararlı bir bilgi olmuştur.
Başarılar dilerim.
7 Ocak 2012 Cumartesi
Java ile Scp bağlantı yoluyla uzak bilgisayardan dosya yüklemek
KÜTÜPHANELER:
chilkat.jar
jsch.jar
jython.jar
log4j-1.2.14.jar
scpimpl.jar
KOD:
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Writer;
import java.util.Properties;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class ScpGetFile {
private String User;
private String Password;
private int Port = 22;
private String Server;
private String RemoteFilepath;
private String SaveFilePathDest;
private File file = null;
public static void main(String[] args) throws Exception {
ScpGetFile scp = new ScpGetFile();
scp.setPassword("password");
scp.setPort(22);
scp.setUser("user");
scp.setServer("server ip");
scp.setRemoteFilepath("path destination");
scp.setSaveFilePathDest("c:/");
scp.SaveFileFromServer();
}
public void SaveFileFromServer() throws Exception {
String[] strdizi = this.getRemoteFilepath().split("/");
if (null == this.getFile())
this.file = new File(this.getSaveFilePathDest()
+ strdizi[strdizi.length - 1]);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
config.put("compression.s2c", "zlib,none");
config.put("compression.c2s", "zlib,none");
JSch jsch = new JSch();
String filePath = this.getRemoteFilepath();
Session session = jsch.getSession(this.getUser(), this.getServer());
session.setConfig(config);
session.setPort(this.getPort());
session.setPassword(this.getPassword());
session.connect();
ChannelSftp c = (ChannelSftp) session.openChannel("sftp");
c.connect();
InputStream is = c.get(filePath);
BufferedInputStream bf = new BufferedInputStream(is);
try {
DataInputStream in = new DataInputStream(is);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine = "";
StringBuffer genel = new StringBuffer();
int sayac = 0;
while (true) {
sayac++;
if (null == br.readLine()) {
break;
} else genel.append(br.readLine() + "\n");
}
Writer output = new BufferedWriter(new FileWriter(file));
output.write(genel.toString());
output.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
c.disconnect();
session.disconnect();
}
}
public void setRemoteServerLogin() {
}
public String getUser() {
return User;
}
public void setUser(String user) {
User = user;
}
public String getPassword() {
return Password;
}
public void setPassword(String password) {
Password = password;
}
public int getPort() {
return Port;
}
public void setPort(int port) {
Port = port;
}
public String getServer() {
return Server;
}
public void setServer(String server) {
Server = server;
}
public String getRemoteFilepath() {
return RemoteFilepath;
}
public void setRemoteFilepath(String remoteFilepath) {
RemoteFilepath = remoteFilepath;
}
public String getSaveFilePathDest() {
return SaveFilePathDest;
}
public void setSaveFilePathDest(String saveFilePathDest) {
SaveFilePathDest = saveFilePathDest;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
}
chilkat.jar
jsch.jar
jython.jar
log4j-1.2.14.jar
scpimpl.jar
KOD:
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Writer;
import java.util.Properties;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class ScpGetFile {
private String User;
private String Password;
private int Port = 22;
private String Server;
private String RemoteFilepath;
private String SaveFilePathDest;
private File file = null;
public static void main(String[] args) throws Exception {
ScpGetFile scp = new ScpGetFile();
scp.setPassword("password");
scp.setPort(22);
scp.setUser("user");
scp.setServer("server ip");
scp.setRemoteFilepath("path destination");
scp.setSaveFilePathDest("c:/");
scp.SaveFileFromServer();
}
public void SaveFileFromServer() throws Exception {
String[] strdizi = this.getRemoteFilepath().split("/");
if (null == this.getFile())
this.file = new File(this.getSaveFilePathDest()
+ strdizi[strdizi.length - 1]);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
config.put("compression.s2c", "zlib,none");
config.put("compression.c2s", "zlib,none");
JSch jsch = new JSch();
String filePath = this.getRemoteFilepath();
Session session = jsch.getSession(this.getUser(), this.getServer());
session.setConfig(config);
session.setPort(this.getPort());
session.setPassword(this.getPassword());
session.connect();
ChannelSftp c = (ChannelSftp) session.openChannel("sftp");
c.connect();
InputStream is = c.get(filePath);
BufferedInputStream bf = new BufferedInputStream(is);
try {
DataInputStream in = new DataInputStream(is);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine = "";
StringBuffer genel = new StringBuffer();
int sayac = 0;
while (true) {
sayac++;
if (null == br.readLine()) {
break;
} else genel.append(br.readLine() + "\n");
}
Writer output = new BufferedWriter(new FileWriter(file));
output.write(genel.toString());
output.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
c.disconnect();
session.disconnect();
}
}
public void setRemoteServerLogin() {
}
public String getUser() {
return User;
}
public void setUser(String user) {
User = user;
}
public String getPassword() {
return Password;
}
public void setPassword(String password) {
Password = password;
}
public int getPort() {
return Port;
}
public void setPort(int port) {
Port = port;
}
public String getServer() {
return Server;
}
public void setServer(String server) {
Server = server;
}
public String getRemoteFilepath() {
return RemoteFilepath;
}
public void setRemoteFilepath(String remoteFilepath) {
RemoteFilepath = remoteFilepath;
}
public String getSaveFilePathDest() {
return SaveFilePathDest;
}
public void setSaveFilePathDest(String saveFilePathDest) {
SaveFilePathDest = saveFilePathDest;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
}
3 Ekim 2011 Pazartesi
Java Scp bağlantı kodu
KÜTÜPHANELER:
chilkat.jar
jsch.jar
jython.jar
log4j-1.2.14.jar
scpimpl.jar
KOD:
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Writer;
import java.util.Properties;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class ScpGetFile {
private String User;
private String Password;
private int Port = 22;
private String Server;
private String RemoteFilepath;
private String SaveFilePathDest;
private File file = null;
public static void main(String[] args) throws Exception {
ScpGetFile scp = new ScpGetFile();
scp.setPassword("password");
scp.setPort(22);
scp.setUser("user");
scp.setServer("server ip");
scp.setRemoteFilepath("path destination");
scp.setSaveFilePathDest("c:/");
scp.SaveFileFromServer();
}
public void SaveFileFromServer() throws Exception {
String[] strdizi = this.getRemoteFilepath().split("/");
if (null == this.getFile())
this.file = new File(this.getSaveFilePathDest()
+ strdizi[strdizi.length - 1]);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
config.put("compression.s2c", "zlib,none");
config.put("compression.c2s", "zlib,none");
JSch jsch = new JSch();
String filePath = this.getRemoteFilepath();
Session session = jsch.getSession(this.getUser(), this.getServer());
session.setConfig(config);
session.setPort(this.getPort());
session.setPassword(this.getPassword());
session.connect();
ChannelSftp c = (ChannelSftp) session.openChannel("sftp");
c.connect();
InputStream is = c.get(filePath);
BufferedInputStream bf = new BufferedInputStream(is);
try {
DataInputStream in = new DataInputStream(is);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine = "";
StringBuffer genel = new StringBuffer();
int sayac = 0;
while (true) {
sayac++;
if (null == br.readLine()) {
break;
} else genel.append(br.readLine() + "\n");
}
Writer output = new BufferedWriter(new FileWriter(file));
output.write(genel.toString());
output.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
c.disconnect();
session.disconnect();
}
}
public void setRemoteServerLogin() {
}
public String getUser() {
return User;
}
public void setUser(String user) {
User = user;
}
public String getPassword() {
return Password;
}
public void setPassword(String password) {
Password = password;
}
public int getPort() {
return Port;
}
public void setPort(int port) {
Port = port;
}
public String getServer() {
return Server;
}
public void setServer(String server) {
Server = server;
}
public String getRemoteFilepath() {
return RemoteFilepath;
}
public void setRemoteFilepath(String remoteFilepath) {
RemoteFilepath = remoteFilepath;
}
public String getSaveFilePathDest() {
return SaveFilePathDest;
}
public void setSaveFilePathDest(String saveFilePathDest) {
SaveFilePathDest = saveFilePathDest;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
}
chilkat.jar
jsch.jar
jython.jar
log4j-1.2.14.jar
scpimpl.jar
KOD:
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Writer;
import java.util.Properties;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class ScpGetFile {
private String User;
private String Password;
private int Port = 22;
private String Server;
private String RemoteFilepath;
private String SaveFilePathDest;
private File file = null;
public static void main(String[] args) throws Exception {
ScpGetFile scp = new ScpGetFile();
scp.setPassword("password");
scp.setPort(22);
scp.setUser("user");
scp.setServer("server ip");
scp.setRemoteFilepath("path destination");
scp.setSaveFilePathDest("c:/");
scp.SaveFileFromServer();
}
public void SaveFileFromServer() throws Exception {
String[] strdizi = this.getRemoteFilepath().split("/");
if (null == this.getFile())
this.file = new File(this.getSaveFilePathDest()
+ strdizi[strdizi.length - 1]);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
config.put("compression.s2c", "zlib,none");
config.put("compression.c2s", "zlib,none");
JSch jsch = new JSch();
String filePath = this.getRemoteFilepath();
Session session = jsch.getSession(this.getUser(), this.getServer());
session.setConfig(config);
session.setPort(this.getPort());
session.setPassword(this.getPassword());
session.connect();
ChannelSftp c = (ChannelSftp) session.openChannel("sftp");
c.connect();
InputStream is = c.get(filePath);
BufferedInputStream bf = new BufferedInputStream(is);
try {
DataInputStream in = new DataInputStream(is);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine = "";
StringBuffer genel = new StringBuffer();
int sayac = 0;
while (true) {
sayac++;
if (null == br.readLine()) {
break;
} else genel.append(br.readLine() + "\n");
}
Writer output = new BufferedWriter(new FileWriter(file));
output.write(genel.toString());
output.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
c.disconnect();
session.disconnect();
}
}
public void setRemoteServerLogin() {
}
public String getUser() {
return User;
}
public void setUser(String user) {
User = user;
}
public String getPassword() {
return Password;
}
public void setPassword(String password) {
Password = password;
}
public int getPort() {
return Port;
}
public void setPort(int port) {
Port = port;
}
public String getServer() {
return Server;
}
public void setServer(String server) {
Server = server;
}
public String getRemoteFilepath() {
return RemoteFilepath;
}
public void setRemoteFilepath(String remoteFilepath) {
RemoteFilepath = remoteFilepath;
}
public String getSaveFilePathDest() {
return SaveFilePathDest;
}
public void setSaveFilePathDest(String saveFilePathDest) {
SaveFilePathDest = saveFilePathDest;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
}
25 Eylül 2011 Pazar
Üniversite Faaliyetleri
Üniversiteler tarafından organize edilen faaliyetleri düzenli bir şekilde takip edebilirsiniz.Yükseköğretim Kurumu'u (Yök) tarafından hazırlanan Üniversite faaliyetleri bilgi sisteminden ziyaretçiler yararlanabiliyor.Üstelik sisteme üye olan her kullanıcı kendi takip alan listesini oluşturabiliyor. (Liste,faaliyet alanlarından oluşmaktadır)
Takip listenizdeki alanlarla ilgili herhangi bir faaliyet yayına girdiğinde mail yoluyla haberdar ediliyorsunuz.
Detaylı bilgi için: http://wwww.faaliyet.yok.gov.tr
Takip listenizdeki alanlarla ilgili herhangi bir faaliyet yayına girdiğinde mail yoluyla haberdar ediliyorsunuz.
Detaylı bilgi için: http://wwww.faaliyet.yok.gov.tr
22 Eylül 2011 Perşembe
Oracle sql -Hiyerarşik tablolarda bağlı veriler getirmek
Merhaba arkadaşlar.
Veritabanı tablolarımızda bazen hiyerarşik veriye ihtiyaç duyarız.
Aşağıda bir örnekle açıklayalım
----------------------------------
Örnek Tablo=Personel
tablo sütunları sırasıyla
Personel_id,Personel_adi,Bagli_Personel_id
Veriler
-------------------------------------------------------------
0 'Üst personel' -1
1 'Murat' 0
2 'Ahmet' 1
3 'Mehmet' 1
4 'Duygu' 1
5 'Ayşe' 4
6 'Ali' 4
Bu tablodan da gördüğümüz gibi Murat personeline bağlı 3 personel var.Bu 3 personelden Duygu ya bağlı 2 personel var.Bu bilgileri hiyerarşik olarak getirmek
istiyorsanız aşağıdaki oracle sql yazmanız yeterlidir.
select *
from personel start with personel_id=1
connect by prior personel_id=Bagli_Personel_id
İyi çalışmalar diliyorum...
Veritabanı tablolarımızda bazen hiyerarşik veriye ihtiyaç duyarız.
Aşağıda bir örnekle açıklayalım
----------------------------------
Örnek Tablo=Personel
tablo sütunları sırasıyla
Personel_id,Personel_adi,Bagli_Personel_id
Veriler
-------------------------------------------------------------
0 'Üst personel' -1
1 'Murat' 0
2 'Ahmet' 1
3 'Mehmet' 1
4 'Duygu' 1
5 'Ayşe' 4
6 'Ali' 4
Bu tablodan da gördüğümüz gibi Murat personeline bağlı 3 personel var.Bu 3 personelden Duygu ya bağlı 2 personel var.Bu bilgileri hiyerarşik olarak getirmek
istiyorsanız aşağıdaki oracle sql yazmanız yeterlidir.
select *
from personel start with personel_id=1
connect by prior personel_id=Bagli_Personel_id
İyi çalışmalar diliyorum...
Kaydol:
Kayıtlar (Atom)