Bagaimana cara kerja JSP Forward ?


Hay Gaes, selamat hari Rabu :D

Sebelum kita melangkah pada JSP forward, sebelumnya saya akan membahas sedikit tentang JSP. Apakah JSP itu? JSP (Java Server Pages) adalah bahasa scripting untuk web programing yang bersifat server side seperti halnya PHP dan ASP.

JSP dapat berupa gabungan antara baris HTML dan fungsi-fungsi dari JSP itu sendiri. Berbeda dengan servlet yang harus dikompilasi oleh user menjadi class sebelum dijalankan, JSP tidak perlu dikompilasi oleh user akan tetapi server yang akan melakukan tugasnya tersebut.

Setelah kita mengetahui sedikit apa itu JSP, selanjutnya saya akan mencoba untuk menerangkan tentang JSP forward, dan juga sample script coding yang digunakan.

Dalam pembahasan kali ini saya akan menggunakan 2 file jsp, yang pertama adalah home.jsp (home page), dan yang lainnya adalah hitung.jsp (forward page).

home.jsp

<%-- 
    Document   : home
    Created on : Apr 2, 2016, 11:01:14 AM
    Author     : Bagus Dwiyanu
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <% 
          String angka = request.getParameter("angka1");
          if(angka != null)
          {
        %>
        <jsp:forward page="hitung.jsp">
            <jsp:param name="nama" value="Bagus Dwiyanu" />
            <jsp:param name="nim" value="1311510117" />
        </jsp:forward>
        <%
          } else {
        %>
        <form action="home.jsp">
            <table>
                <tr>
                    <td>Input Angka 1</td>
                    <td>:</td>
                    <td><input type="text" name="angka1"></td>
                </tr>
                <tr>
                    <td>Input Angka 2</td>
                    <td>:</td>
                    <td><input type="text" name="angka2"></td>
                </tr>
                <tr>
                    <td><input type="submit" value="Cetak"></td>
                </tr>
            </table>
        </form>
        <% } %>
    </body>
</html>

Penjelasan Penggalan Script

Disini script akan membaca sebuah string "angka" pada parameter "angka1" di home.jsp, apabila value "angka" sudah terisi (tidak kosong), maka home.jsp akan langsung mem-forward sebuah parameter ke hitung.jsp.

Contoh parameter disini yang akan diforward adalah :
nama parameter "nama" dengan value "Bagus Dwiyanu"
nama parameter "nim" dengan value "1311510117"

<% 
  String angka = request.getParameter("angka1");
  if(angka != null)
  {
%>
<jsp:forward page="hitung.jsp">
    <jsp:param name="nama" value="Bagus Dwiyanu" />
    <jsp:param name="nim" value="1311510117" />
</jsp:forward>

apabila string "angka" pada home.jsp belum terisi sebuah value (null), maka akan tampil form input pada home.jsp

<form action="home.jsp">
    <table>
        <tr>
            <td>Input Angka 1</td>
            <td>:</td>
            <td><input type="text" name="angka1"></td>
        </tr>
        <tr>
            <td>Input Angka 2</td>
            <td>:</td>
            <td><input type="text" name="angka2"></td>
        </tr>
        <tr>
            <td><input type="submit" value="Cetak"></td>
        </tr>
    </table>
</form>

hitung.jsp

<%-- 
    Document   : hitung
    Created on : Mar 26, 2016, 12:10:10 AM
    Author     : Bagus Dwiyanu
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <table>
            <tr>
                <td>Bilangan Prima</td>
                <td>:</td>
                <td>
                    <%
                        //out.print("Bilangan Prima :"+request.getParameter("angka1"));
                        String a = request.getParameter("angka1");
                        String b = request.getParameter("angka2");
                        int min = Integer.parseInt(a);
                        int max = Integer.parseInt(b);
                        for(int i=min;i<=max;i++){
                            int x = 0;
                            for(int j=2;j<=i;j++){
                                if(i%j==0){
                                    if(i!=j){
                                        x = 1;
                                    }
                                    if(x != 1 && i==j){
                                        out.print(i+",");
                                    }
                                }
                            }
                        }
                        //out.print("Bilangan Prima : "+nilai);
                        //out.print("Welcome "+request.getParameter("angka1"));
                    %>
                </td>
            </tr>
            <tr>
                <td>Bilangan Fibonacci</td>
                <td>:</td>
                <td>
                    <%
                        //out.print("Bilangan Prima :"+request.getParameter("angka1"));
                        String c = request.getParameter("angka1");
                        String d = request.getParameter("angka2");
                        int min1 = Integer.parseInt(c);
                        int max1 = Integer.parseInt(d);
                        
                        int[] feb = new int[max1];
                        feb[0] = 0;
                        feb[1] = 1;
                        for(int i=2;i<max1;i++){
                            feb[i] = feb[i-1] + feb[i-2];
                        }
                        for(int i=min1;i<max1;i++){
                            if(feb[i]>=min1 && feb[i]<max1){
                                out.print(feb[i] + " ");
                            }
                        }
                    %>
                </td>
            </tr>
            <tr><td><br/></td></tr>
            <tr>
                <td>Nama : <%=request.getParameter("nama")%><td/>
            </tr>
            <tr>
                <td>NIM : <%=request.getParameter("nim")%></td>
            </tr>
        </table>
    </body>
</html>

Penjelasan Penggalan Script

Script untuk get parameter yang sudah diforward oleh home.jsp adalah sebagai berikut

<tr>
    <td>Nama : <%=request.getParameter("nama")%><td/>
</tr>
<tr>
    <td>NIM : <%=request.getParameter("nim")%></td>
</tr>

Tampilan home.jsp


Pada home.jsp ini hanya akan ada 2 inputan data saja (input data ini diperuntukan pada proses bilangan prima dan fibonacci), dan juga tombol submit.

Tidak ada input data "Bagus Dwiyanu" dan "1311510117" (parameter yg akan diforward)

Ketika form input sudah di isi, kemudian disubmit, pada hitung.jsp akan menampilkan proses bilangan prima, fibonacci, dan juga parameter yg sudah ter-forward.

Tampilan hitung.jsp


Demikianlah tutorial cara kerja JSP forward.
Semoga bermanfaat :)

Unknown Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

Tidak ada komentar:

Posting Komentar