arşiv

yazar arşivi

Ceturk Oracle Konferansı

Çarşamba, 20 Nis 2011 jdeveloper yorum yok

Bugüne kadar Türkiye’de çok farklı konu ve teknoloji ile ilgili yaptığı ücretsiz etkinliklerle bilişim sektörünün gelişmesine katkıda bulunanCETURK, Türkiye’deki bilişim toplulukları arasında bir ilke daha imza atarak Azerbaycan’da gerçekleştireceği Oracle Konferansı ile yurtdışı etkinliklerine başlıyor. Azerbaycan Oracle Konferansı 7 Mayıs 2011 tarihinde Azerbaycan Teknik Üniversitesi‘nde alanında uzman konuşmacıların katılımıyla ücretsiz olarak gerçekleşecektir.

Konferansa Türkiye’den Talip Hakan Öztürk, Azerbaycan’dan Kamran Agayev, Ramin Orucov ve Teymur Hacıyev katılacaktır.

Ayrıntılı bilgi için tıklayınız.

Etkinliğe kayıt için tıklayınız.

Categories: Teknoloji Tags: ,

Jsf 2.0 İle Login.jsf (with PrimeFaces)

Cumartesi, 19 Şub 2011 jdeveloper yorum yok

Bu defa size login işleminden bahsedeceğim.Aslında işlem biraz basit

ama biraz java bean ile durumları oynayabilirsiniz.Örnek olarak Jpa ile veritabanına baglanarak login işlemini onaylatabilirsiniz.Guvenlik durumunu ayarlayabilirsiniz.Bu gibi durumları bean içinde yapabilirsiniz.Şimdilik ben veritabanına falan baglanmayacağım.Basit olarak bir şifre olacak bu şifrenin girilip girilmediğini onaylayacağız.Yanlış veya boş geçilme durumunda ise bazı mesajlar ekrana çıkartacağız.

Şimdi yine bir önceki anlattığım gibi araçlar kullandım.Tabiki bazı resim ve cssler için oynamanız gerekebilir.Şimdi ilk olarak yapmamız gereken yine aynı şekilde bir dynamic web project acmalıyız.

File->New->Dynamic Web Project
Bundan sonra web.xml dosyamızı jsf ve primefacese göre configire etmemiz lazım.

web.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 id="WebApp_ID" version="2.5">
 <display-name>Calendar</display-name>
 
 <servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup> 1 </load-on-startup>
 </servlet>
 
 <!-- Faces Servlet Mapping -->
 <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.jsf</url-pattern>
 </servlet-mapping>
 <!-- Prime Resource Servlet -->
 <servlet>
  <servlet-name>Resource Servlet</servlet-name>
  <servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
 </servlet>
 
 <!-- Prime Resource Mapping  -->
 <servlet-mapping>
  <servlet-name>Resource Servlet</servlet-name>
  <url-pattern>/primefaces_resource/*</url-pattern>
 </servlet-mapping>
 
 <welcome-file-list>
  <welcome-file>index.html</welcome-file>
 </welcome-file-list>
</web-app>

Bu işlemi yaptıktan sonra şimdi yapmamız gereken xhtml sayfamızı tasarlamamız.Tabi ki burada sizin isteginize ve zevkinize kalmıs bir durumdur.Benim suan yaptıgım tasarımın kodu aşağıdaki gibidir.

login.jsf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.prime.com.tr/ui">
 
<h:head></h:head>
<h:body>
<p:panel id="panel" header="Üye Girişi" footer="Mehmet Demircioğlu">
<h:outputLabel value="Giriş İçin İcona Tıklayınız--->"></h:outputLabel>
<h:outputLink id="loginLink" value="javascript:void(0)" onclick="dlg.show()" title="login">
	<p:graphicImage value="/images/login.png" />
</h:outputLink>
</p:panel>
<p:growl id="growl" showDetail="true" life="3000" />
 
<p:dialog id="dialog" header="Kullanıcı Girişi" widgetVar="dlg">
	<h:form>
 
		<h:panelGrid columns="2" cellpadding="5">
			<h:outputLabel for="username" value="Kullanıcı Adı: *" />
			<h:inputText value="#{loginBean.username}"
					id="username" required="true"
requiredMessage="Kullanıcı Adını Bos Gecemezsiniz." />
 
			<h:outputLabel for="password" value="Şifre: * " />
			<h:inputSecret value="#{loginBean.password}"
 
id="password" required="true" requiredMessage="Şifreyi Bos Gecemezsiniz"/>
 
			<f:facet name="footer">
				<p:commandButton value="Giriş" update="growl"
					actionListener="#{loginBean.login}"
					oncomplete="handleLoginRequest(xhr, status, args)"/>
			</f:facet>
		</h:panelGrid>
 
	</h:form>
</p:dialog>
 
<script type="text/javascript">
	function handleLoginRequest(xhr, status, args) {
		if(args.validationFailed || !args.loggedIn) {
			jQuery('#dialog').effect("shake", { times:3 }, 100);
		} else {
			dlg.hide();
			jQuery('#loginLink').fadeOut();
		}
	}
</script>
 
</h:body>

Bu işlemi yaptıktan sonra artık java kodlarımızı konusturabiliriz.Java Beanımız aşagıdaki gibi kod şeklindedir.

LoginBean.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package org.mhmt.dem;
 
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
 
import org.primefaces.context.RequestContext;
 
@ManagedBean(name="loginBean")
@RequestScoped
 
public class LoginBean {
 
	private String username;
 
	private String password;
 
	public String getUsername() {
		return username;
	}
 
	public void setUsername(String username) {
		this.username = username;
	}
 
	public String getPassword() {
		return password;
	}
 
	public void setPassword(String password) {
		this.password = password;
	}
 
	public void login(ActionEvent actionEvent) {
		RequestContext context = RequestContext.getCurrentInstance();
		FacesMessage msg = null;
		boolean loggedIn = false;
 
		if( username.equals("Mehmet") &&  password.equals("jdeveloper")) {
 
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("HOŞ GELDİNİZ. " + username + " Kullanıcımız. "  + "!"));
 
		} else {
			loggedIn = false;
			msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Hatalı Giriş", "Şifre veya Kullanıcı Adınız yanlış..");
		}
 
		FacesContext.getCurrentInstance().addMessage(null, msg);
		context.addCallbackParam("loggedIn", loggedIn);
	}
 
}

İşlemleri tamamladıktan sonra artık çalıştırabiliriz.Web browsera şu linki yazarak çalıştırabiliriz.

http://localhost:8080/LoginApplication/Login.jsf

Artık işlemler tamamlanmıstır.Hepinize kolay gelsin.

Hibernate-Jpa Kayıt İşlemi

Cumartesi, 19 Şub 2011 jdeveloper yorum yok

Şimdiki konumuz primefaces ile bir kayıt formu oluşturarak, hibernate jpa framework ile de database kayıt yaptırmak.Şimdi bizim için gerekli olan kütüphaneler ve araçlar;

  • Ecilips Helios
  • Tomcat
  • Jsf Mojarra 2.0
  • Hibernate Framework jarları
  • Primefaces

Bunların kurulumunu eski yazılarımda görebilirsiniz.Tekrardan anlatmayacağım.Yapacağımız işlem aslında çok basit olacak.Amaç hibernate frameworkünü kullanarak javax.persistenceden sessionlar yerine entitymanagerfactory olusturarak database baglantısını gerçekleştireceğiz.Hibernatete kullanılan xmller yerine entitylerimizi(databasede tablo oldugunu anlatmak) @annationslarla tablo oldugunu belirteceğiz.Şimdi ilk src klasörümüzün altına META-INF dosyasını olusturalım.Bunun amacı kodlar Tomcatte derlenirken persistence.xml(database configure) buradan arayacak olması.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
 
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
	<persistence-unit name="OYS" transaction-type="RESOURCE_LOCAL">
 
		<class>org.mhmt.login.Uyekayit</class>
  <properties>
   <property name="hibernate.show_sql" value="true" />
   <property name="hibernate.hbm2ddl.auto" value="update" />
   <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
   <property name="hibernate.connection.username" value="root" />
   <property name="hibernate.connection.password" value="root" />
   <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/oys" />
   <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
  </properties>
 </persistence-unit>
</persistence

Bundan sonra artık entity sınıfımızı olusturalım.

Uyekayit.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package org.mhmt.login;
package org.mhmt.login;
 
import java.io.Serializable;
import javax.persistence.*;
 
/**
 * The persistent class for the uyekayit database table.
 *
 */
@Entity
@Table(name="uyekayit")
public class Uyekayit implements Serializable {
	private static final long serialVersionUID = 1L;
 
	@Id
	@GeneratedValue
	private int id;
 
	@Column(name="adi")
	private String adi;
 
	@Column(name="adres")
	private String adres;
 
	@Column(name="mail")
	private String mail;
 
	@Column(name="soyadi")
	private String soyadi;
 
	@Column(name="telefon")
	private int telefon;
 
    public Uyekayit() {
    }
 
	public int getId() {
		return this.id;
	}
 
	public void setId(int id) {
		this.id = id;
	}
 
	public String getAdi() {
		return this.adi;
	}
 
	public void setAdi(String adi) {
		this.adi = adi;
	}
 
	public String getAdres() {
		return this.adres;
	}
 
	public void setAdres(String adres) {
		this.adres = adres;
	}
 
	public String getMail() {
		return this.mail;
	}
 
	public void setMail(String mail) {
		this.mail = mail;
	}
 
	public String getSoyadi() {
		return this.soyadi;
	}
 
	public void setSoyadi(String soyadi) {
		this.soyadi = soyadi;
	}
 
	public int getTelefon() {
		return this.telefon;
	}
 
	public void setTelefon(int telefon) {
		this.telefon = telefon;
	}
 
}

Biz burada java sınıfımızın üzerine @Entity ile bunun databasede bir tablo oldugunu belirttik.Daha sonra ise @Table tagı ilede bunun veritabanında hangi tablo oldugnu belirttik.Son olarakta @id,@GeneratedValue,@Column ile de bunların tablo içindeki id ve kolon isimlerini belirtmiş olduk.Artık tablomuz kullanıma hazır bir şekile yani objelere dönüşmüş oldu.Şimdi ise bizim ekranımız(jsf sayfaları) yani view ile konusturacagımız java beane geldi.
Kayit.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package org.mhmt.login;
 
import java.io.Serializable;
 
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
 
@ManagedBean(name="kayitBean")
@RequestScoped
 
public class Kayit implements Serializable {
 
	private EntityManagerFactory fctry;
	private EntityManager manager;
 
	/**
	 *
	 */
	private static final long serialVersionUID = 1L;
 
	private Uyekayit kayit=new Uyekayit();
 
	public Uyekayit getKayit() {
		return kayit;
	}
 
	public void setKayit(Uyekayit kayit) {
		this.kayit = kayit;
	}
 
	public void kayitYap()
	{
		try {
 
		fctry=Persistence.createEntityManagerFactory("OYS");
		manager=fctry.createEntityManager();
		manager.getTransaction().begin();
		manager.persist(kayit);
		manager.getTransaction().commit();
		manager.close();
		manager.close();
		System.out.println("basarılı");
 
		} catch (Exception e) {
 
		System.out.println("hataaaa");
		}
	}
 
}

Burada aslında yapılan işlem eskiden hibernate ile Sessionfactory ile yapılan insert işlemi Entitymanager ile yapılmaktadır.Entitymanager da olan persist() propertysi ise insert sql komutunu arka planda çalıştırmaktadır.Kısaca böyle özetleyebiliriz.Yani bizim uzunca insert sql komutunu yazmamıza gerek kalmamaktadır.

Son olarak PrimeFaces teknolojisini kullanarak bir tane form tasarlayalım.Formumuz aşagıdaki gibi olacak ben burada template üs kısmından üye girişi diye bir link koyarak formun çıkmasını sağlayacam.

Üye Kayıt Formu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<h:outputLink value="javascript:void(0)" onclick="dlg.show()">Üye Ol!</h:outputLink>  
 
<p:dialog header="Kullanıcı Kayit" widgetVar="dlg" resizable="false">  
    <h:form>  
 
        <h:panelGrid columns="2" style="margin-bottom:10px;width:300px;">  
            <h:outputLabel for="Adi" value="Adiniz:" />  
            <h:inputText id="Adi" value="#{kayitBean.kayit.adi}" />
 
            <h:outputLabel for="Soyadi" value="Soyadi:" />  
            <h:inputText id="Soyadi" value="#{kayitBean.kayit.soyadi}" />  
 
            <h:outputLabel for="Mail" value="Mailiniz" />  
            <h:inputText id="Mail" value="#{kayitBean.kayit.mail}" /> 
            <h:outputLabel for="Telefon" value="Telefon:" />  
            <h:inputText id="Telefon" value="#{kayitBean.kayit.telefon}" /> 
            <h:outputLabel for="Adres" value="Adres:" /> 
            <h:inputText id="Adres"  value="#{kayitBean.kayit.adres}" /> 
 
 
        </h:panelGrid>  
 
        <p:commandButton value="Kaydet" update=":display" oncomplete="dlg.hide();" action="#{kayitBean.kayitYap}"/>  
 
    </h:form>  
</p:dialog>

Artık işlemlerimiz tamamlandı.Aşagıda olusturmus oldugumuz jsf sayfasını görebilirsiniz.

Categories: J2EE Tags:

Jsf 2.0 Eclipse Üzerinde Çalıştırılması

Cumartesi, 05 Şub 2011 jdeveloper yorum yok

İlk olarak jsf nedir? Bu soruyu kısaca açıklayalım.Jsf yeni nesil web uygulama çatısı diye açıklayabiliriz.MVC tasarım destğini oldugunca kullanması avantajlarından sayailiriz.Bazı özelliklerinden bahsedecek olursak;

  • Geniş çaplı marka ve endüstri desteği
  • Web uygulaması geliştirmede Daha yüksek  seviyeli soyutlama
  • Davranış ve görüntüleme arasında iyi bir ayrım sağlar
  • Bileşen modeline dayanır.
  • Genişletilebilir bileşen ve rendering mimarisi

Şimdi eclipse üzerine nasıl entegre edeceğiz acıklayalım;

1-İlk olarak buradan Jsf 2.0 jar dosyalarını indiriyoruz.(Binary Bundle olanın en son sürümünü indiriyoruz.)

2-Ecilipse acıyoruruz.Buradan New->DynamicProject seçiyoruz.

Yukarıdaki resim gibi işlemleri hallediyoruz.Unutmayın configaritondan JavaServer Faces 1.2V  veya 2.0V seciniz.

3-Daha sonra Windows sekmesinden Prefences seciyoruz.Daha sonra buradan da Java altında bulunan Build Path ile yeni bir User Library olusuturuyoruz.Bunu yapmamızın sebebi jsf sayfaları olustururken jsf dosyalarını kolaylıkla projemızın içine alınmasıdır.

4-Daha sonra jstl4.jar dosyasını indirip,projemizin WEBCONTENT altında bulunan lib klasörünün içine atıyoruz.

5-Daha sonra önceden oluşturmuş oldugumuz User libraryde bulunan Jsf libini projemizin içine alıyoruz.

6-İşlemler bittikten sonra proje klasörü aşağıdaki şekilde gibidir.

Burada faces-config.xml ise jsf ayarlarıdır.Buradan istediğiniz şekil değiştirebilirsiniz.Şimdi kısa bir örnek yapalım.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
 
<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
 
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<html>
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 
jsf Ornek-mehmetdemircioglu.com
 
</head>
 
<body>
 
<f:view>
 
<h:inputText>Merhaba Dünya!!</h:inputText>
 
</f:view>
 
</body>
 
</html>

Jsf ile hibernate entegrasonu yazısını kısa zaman içerisinde bloglayacağım.

Categories: J2EE Tags: , ,