yuku@
yuku
: 2008-02-04 07:33:46 UTC+0000
Keluhan terhadap JSP
Ku masih berusaha untuk bisa memahami kenapa orang2 lebih suka pake JSP
daripada PHP. Dan salah satu subjek yang kuambil sekarang namanya Internet
Programming dan itu pake JSP. Emang sengaja ku ambil itu, siapa tau bisa
berpendapat bahwa JSP emang bagus kalo tau cara pakenya.
JSP ruwet bukan main, ruepot bukan main pula. Denger2 bagusnya JSP karena
kode2 bisa jauh lebih teratur dan berstruktur bagus. Tapi ko menurutku repot
sekali. Harusnya repot2 itu bisa diatasi dengan JSTL dan EL yang emang
sengaja buat atasi masalah itu.
[1] Misalnya, kalau pake EL, *harapanku*, daripada tulis seperti ini:
<%
Orang orang = antahBerantah.getOrang();
%>
<p>Selamat siang, mas <%= orang.getNama() %></p>
bisa disingkat jadi:
<%
Orang orang = antahBerantah.getOrang();
%>
<p>Selamat siang, mas ${orang.nama}</p>
jauh lebih enak diliat bukan?
Namun ternyata tidak! Variabel "orang" di kode Java beda konteks dengan
"orang" di kode EL.
Jadi harus begini:
<%
Orang orang = antahBerantah.getOrang();
pageContext.setAttribute("orang", orang); // kasih variabel "orang"
%>
<p>Selamat siang, mas ${orang.nama}</p>
OK, ... entahlah EL bikin cape ketik ato irit ketik.
[2] Ambil parameter cape deh!!!
Mari kita bikin halaman sederhana yang kerjanya cuma keluarin dua kalinya
nilai parameter "angka". (misalnya angka=4, outputnya jadi 8)
Di php begini:
<?php
echo $_REQUEST['angka']*2;
?>
Beres.
Gimana dengan JSP?
1. ambil nilai angka.
int angka = request.getParameter("angka");
2. ups, salah. getParameter returnnya String bukan int.
int angka = Integer.parseInt(request.getParameter("angka"));
3. OK beres, lalu bawahnya kita tambahkan output
out.print(angka * 2);
4. Beres? Ngaa! Gimana kalo orangnya masukin parameter angka=iseng?
java.lang.NumberFormatException !!! dan halamannya jadi acak adul dengan
stack trace.
5. OK mari tangani
int angka = 0;
try {
angka = Integer.parseInt(request.getParameter("angka"));
} catch (NumberFormatException e) {
}
6. Tampaknya beres.
Perbandingan sekali lagi.
*PHP*
<?php
echo $_REQUEST['angka']*2;
?>
*JSP*
<%
int angka = 0;
try {
angka = Integer.parseInt(request.getParameter("angka"));
} catch (NumberFormatException e) {
}
out.print(angka * 2);
%>