Merhaba, bir önceki yazıda JSP‘de çok fazla kullanılmayan üç nesneye değinmiştik. Bu yazıda ise gömülü nesnelerin sonuncusu olan Exception nesnesini anlatmaya çalışacağım.

Exception nesnesi java.lang.Throwable sınıfından oluşturulmuştur.  Bu nesneye sadece hata sayfası(Error Page) olarak belirlenmiş sayfalardan erişilebilir. Bir sayfanın hata sayfası olarak belirtilmesi için Directive Tag kullanarak isErrorPage özniteliğine “true” değeri verilmelidir. Aşağıda bu duruma örnek verelim.

Örnek Uygulama

Girilen iki sayıyı bölen bir uygulamamız olsun. Eğer kullanıcı ikinci sayıya 0 girerse, 0’a bölünme hatası ortaya çıkacaktır. Bu hatayı yakalayıp önceden belirlediğimiz bir sayfada gösterelim.

index.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
<head>
    <title>Directive Tags</title>
</head>
<body>
<form action="bolmeYap.jsp" method="post">
    <table>
        <tr>
            <td>İlk Sayı:</td>
            <td><input type="text" name="ilkSayi"/></td>
        </tr>
        <tr>
            <td>İkinci Sayı:</td>
            <td><input type="text" name="ikinciSayi"/></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="Böl" style="width:100%;"/></td>
        </tr>
    </table>
</form>
</body>
</html>

İki adet inputtan oluşan bir form oluşturduk. Butona basıldığında bolmeYap.jsp sayfasına gidecek. Biz de o sayfada bu formdan gelen sayıları alıp bölme işlemi yapacağız.

bolmeYap.jsp

1
2
3
4
5
6
7
<%@ page language="java" contentType="text/html; charset=UTF-8" errorPage="hataSayfasi.jsp" %>
<%
    int ilkSayi = Integer.parseInt(request.getParameter("ilkSayi"));
    int ikinciSayi = Integer.parseInt(request.getParameter("ikinciSayi"));
    int sonuc = ilkSayi / ikinciSayi;
    out.println("İŞLEMİN SONUCU : " + sonuc);
%>

Burada önemli bir nokta şu: en üst satırda Directive Tag(Emir etiketi) kullanarak, errorPage özniteliğine hata oluştuğunda gidilecek sayfanın ismini verdik.

hataSayfasi.jsp

1
2
3
4
5
6
7
8
9
10
11
12
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Hata Sayfası</title>
</head>
<body>
<h1>Bir hata meydana geldi!!</h1>
<h3>Hata: <%=exception%></h3>
</body>
</html>

Bu sayfada ise exception nesnesini kullanarak hatayı ekrana yazdırdık. Bu nesneyi kullanabilmek için en üst satırda isErrorPage=”true” diyerek sayfanın bir hata sayfası olduğunu belirttik.

Ekran Görüntüleri

3 4  

Bu yazıyla birlikte JSP Implicit Objects konusunu bitirmiş oluyoruz. Bir sonraki yazıda JSP‘de Yönlendirme konusuna değineceğim. Görüşmek üzere.