Javascript ile PostBack veya Submit İşlemi

Web programlama konulu eğitimlerde birçok programcı ve öğrencimin yanlış olarak postback yapma işlemini ASP.NET veya JSP, JSF gibi sunucu taraflı web teknolojileri tarafından gerçekleştirildiğini zannettiğini gözlemledim. Oysa postback, istemciye gönderilmiş sayfa içindeki form tag’i  ve istemci taraflı script marifetiyle yapılan bir işlemdir.

Okumaya devam et

Reklamlar

ASP.NET ve JSP’de Istemcide Görünmeyen HTML Yorumları

JSP ve ASP.NET ’te daha doğrusu HTML tarafında aşağıdaki gibi, 2 farklı yorum oluşturulabilir :

<!- – Yorum 1 – ->

<%- – Yorum 2 – -%>

Aralarındaki fark; 1.nin istemciye gönderilen ve tarayıcıda kaynağı görüntüle denildiğinde elde edilen HTML kodunda gözükmesi ancak 2. nin gözükmemesidir. Bu durum performans hatta yerine göre SEO açısından bile önem arz edebilir.

Javascript ile TextArea Kalan Karakter Sayısının Bulunması ve Karakter Sayısının Sınırlandırılması

<script language=”javascript”>
 
        var i = 0;
 
        function KalanKarakterSayisi(id, maxLength)
        {
            if (  event.keyCode == 8   )
            {
                if (  i != 0  )
                        –i;
            }
            else
            {   
                ++i;
            }
 
            var kalan = maxLength – i;
 
            if (   kalan >= 0   ) {
                document.getElementById(“sayi”).innerHTML = “Kalan : ” + kalan;
            }
            else {
                return false;
            }
        }
</script>
 
<textarea  style=”height: 184px;width: 393px” id=”txt” rows=”5″ cols=”50″ onkeydown=”return KalanKarakterSayisi(‘txt’, 15);”>
</textarea>
<br />
<span id=”sayi” />

Java ‘da (JSP) Tag Library Oluşturmak

Java ‘da  (JSP) Tag Library Oluşturmak

JSP’de var olan hazır tag’lerin dışında programcılarda sık ihtiyaç duydukları yapıları tag library oluşturup paketleyebilir ve sonra tekrar tekrar kullanabilir. Aşağıda Netbeans kullanılarak içeriği ve boyutu parametrik değiştirilebilen bir başlık kontrolü geliştirilmiştir.

TagLibrary’lere ilişkin bazı belirlemeler (içerik tutacak mı, attribute’leri neler olacak veya zorunlu mu olacak vb) .tld (tag library descriptor) uzantılı xml dosyalarla gerçekleştirilir. Netbeans’te proje ismi üzerine sağ tıklanıp açılan menüden “tag library descriptor” eklenmelidir.

 

Açılan pencerede isim, lokasyon, prefix ve uri tanımları yapılmalıdır.

Daha sonra projeye bir “tag handler” eklenmelidir bu işlem bir .java dosyası oluşturarak tag’in nasıl handle edileceğini yani sayfada kullanıldığında ne gerçekleştireceğini kodlamaya yarar.

 

Burada sınıf ismi ve paket belirlemelerini yapınız. Sonraki aşama :

 

Bu aşamada ise tag handler’ın tld dosyasıyla ilişkilendirilmesi, tag ismi ve attribute’lerinin isim ve türleri belirlenir. Böylece tld dosyası aşağıdaki gibi oluşacaktır :

 [Baslik.tld]

<?xml version=”1.0″ encoding=”UTF-8″?>

<taglib version=”2.1″ xmlns=”http://java.sun.com/xml/ns/javaee&#8221; xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance&#8221; xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd”&gt;

  <tlib-version>1.0</tlib-version>

  <short-name>csd</short-name>

  <uri>/WEB-INF/tlds/Baslik</uri>

  <tag>

    <name>Baslik</name>

    <tag-class>paket.Baslik</tag-class>

    <body-content>scriptless</body-content>

    <attribute>

      <name>size</name>

      <required>true</required>

      <rtexprvalue>true</rtexprvalue>

      <type>int</type>

    </attribute>

    <attribute>

      <name>content</name>

      <required>true</required>

      <rtexprvalue>true</rtexprvalue>

      <type>java.lang.String</type>

    </attribute>

  </tag>

</taglib>

 

Artık baslik.java yani handler dosyası geliştirilmelidir. Handler sınıfları içeriksiz tag’ler için SimpleTagSupport sınıfından türer. Böyle bir sınıfta attribute’ler veri elemanlarına ve setter fonksiyonlara karşılık gelir. Ayrıca doTag() isimli override edilen fonksiyon ise söz konusu tag’in nasıl bir html çıktısı üreteceğinin kodlandığı yerdir.

 

[Baslik.java]

package paket;

 

import java.io.IOException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.JspFragment;

import javax.servlet.jsp.tagext.SimpleTagSupport;

 

public class Baslik extends SimpleTagSupport {

    private int size;

    private String content;

 

     public void setSize(int size) {

        this.size = size;

    }

 

    public void setContent(String content) {

        this.content = content;

    }

 

    public void doTag() throws JspException, IOException {

        JspWriter out = getJspContext().getOut();

        out.println(“<h” + size + “>” + content + “</h” + size + “>” + “<hr>”);

 

        try {

            JspFragment f = getJspBody();

            if (f != null)

                f.invoke(out);

 

 

        } catch (java.io.IOException ex) {

            throw new JspException(“Error in Baslik tag”, ex);

        }

    }

}

 

Bu şekilde oluşturulan tag’i bir jsp sayfasında test etmek gerekirse, sayfaya @taglib direktifiyle tag register edilmelidir. Burada uri ve prefix belirlemeleri yapıldıktan sonra söz konusu tag sayfada prefix:TagName sintaksıyla kullanılabilir, inceleyiniz :   

 

 

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

 

<%@taglib uri=”WEB-INF/tlds/Baslik.tld” prefix=”csd”  %>


<html>

    <head>

        <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>

    </head>

    <body>

        <csd:Baslik  content=”C ve Sistem Programcilari Dernegi” size=”1″ />

    </body>

</html>

 

Aykut TAŞDELEN

C ve Sistem Programcıları Derneği Eğitmeni

aykuttasdelen@csystem.org

JSP’de Java Bean Kullanımı, Bean Nedir ?

JSP’de Java Bean Kullanımı, Bean Nedir ?

JSP ‘de sayfalar arası bilgi taşıma işleminde kolaylık sağlayan basit java sınıflarıdır. Ancak bu sınıfların marjinal faydası; özel JSP tag’leriyle deklaratif olarak nesnelerinin yaratılabilmesi, property’lerinin get/set edilebilmesi ve belirli bir skop’ta kullanılabiliyor olmasıdır. Örneğin ;

[Urun_Bean.java dosyası]

package beans;

 

public class Urun_Bean

{

      private String marka;

      private int adet;

      private double fiyat;

     

      public String getMarka()

      {

            return marka;

      }

 

      public void setMarka(String marka)

      {

            this.marka = marka;

      }

 

      public int getAdet()

      {

            return adet;

      }

 

      public void setAdet(int adet)

      {

            this.adet = adet;

      }

 

      public double getFiyat()

      {

            return fiyat;

      }

 

      public void setFiyat(double fiyat)

      {

            this.fiyat = fiyat;

      }

 

      public Urun_Bean()

      {

            // Def constructor

      }

     

      public String ToString()

      {

            String str = “<table border=’1′><tr><td>MARKA</td><td>ADET</td></tr>” ;

            str += “<tr><td>” + marka + “</td><td>” + adet + “</td></tr></table>”;

            return str;

      }

}

 

Bean Sınıflarının Temel Özellikleri

 

·         Deklaratif kod tarafında nesne yaratılabilmesi için explicit bir biçimde tanımlanmış default constructor’a sahip olmalıdır.

·         Bean sınıfları ayrı bir paket içinde olmalıdır.

·         public veri elemanları olmamalı, private veri elemanlarına da getter, setter fonksiyonlarla  erişilebilmelidir.

  • ToString() Fonksiyonu bulunmalıdır.
  • java.io.Serializable interface’ini implemente etmelidir.

Bean Kullanımı

Bean sınıfı yazıldıktan sonra aşağıdaki gibi JSP tarafında kullanılabilir.

jsp:useBean kullanımı sağlarken, jsp:setProperty, jsp:getProperty tag’leri property set ve get eden tag’lardır.

 

<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1” pageEncoding=“ISO-8859-1” %>

 

<html>

      <head>

            <meta http-equiv=“Content-Type” content=“text/html; charset=ISO-8859-1”>

      </head>

      <body>

     

            <jsp:useBean id=“urn” class=“beans.Urun_Bean” scope=“Application”  />

            <jsp:setProperty property=“marka” name=“” value=“Orfe”/>

            <jsp:setProperty property=“adet” name=“” value=“12”/>

            <jsp:setProperty property=“fiyat” name=“” value=“1252” />

            <%= urn.ToString() %>

           

      </body>

</html>

Aykut TAŞDELEN