JSP ile Form İşleme
JSP ile form işleme örneği için metin kutusu,radio düğmeleri ve işaret kutuları gibi basit girdi elemanları içeren bir HTML sayfasını işleyen bir JSP sayfası geliştireceğiz.Bunun yanında FormBean adında özellik isimleri form eleman isimleri ile örtüşen bir Java Bean oluşturarak JSP motorunun introspection kullanarak POST işlemi sonucunda Bean’in otomatik örneklemesi göreceğiz.
FormBean.java ÇATISI
package com.jguru;
public class FormBean {
// isim,soyisim ve email için özelliklerin atanması
//ve karşılık gelen girdi elemanları ile karşılaştırılması
private String[] languages;
public FormBean() {
firstName="";
lastName="";
email="";
languages = new String[] { "1" };
notify="";
}
//isim,soyisim,email,notify ve dil get metodlarının yazılması gerekmektedir
// isim,soyisim,email,notify ve dil set metodlarının yazılması gerekmektedir
}
Form.jsp ÇATISI
<html>
<body bgcolor="#c8d8f8">
<form action="/examples/jsp/jdc/forms/form.jsp" method=post>
<center>
<table cellpadding=4 cellspacing=2 border=0>
<th bgcolor="#CCCCFF" colspan=2>
<font size=5>User Registration</font>
</th>
<tr>
<td valign=top>
<b>First Name</b>
<br>
<input type="text" name="firstName" size=15></td>
<td valign=top>
<b>Last Name</b>
<br>
<input type="text" name="lastName" size=15></td>
</tr>
<tr>
<td valign=top colspan=2>
<b>E-Mail</b>
<br>
<input type="text" name="email" size=20>
<br></td>
</tr>
<tr>
<td valign=top colspan=2>
<b>What languages do you program in?</b>
<br>
<input type="checkbox" name="languages" value="Java">Java
<input type="checkbox" name="languages" value="C++">C++
<input type="checkbox" name="languages" value="C">C<br>
<input type="checkbox" name="languages" value="Perl">Perl
<input type="checkbox" name="languages" value="COBOL">COBOL
<input type="checkbox" name="languages" value="VB">VB<br>
</td>
</tr>
<tr>
<td valign=top colspan=2>
<b>How often can we notify you regarding your interests?</b>
<br>
<input type="radio" name="notify" value="Weekly" checked>Weekly
<input type="radio" name="notify" value="Monthly">Monthly
<input type="radio" name="notify" value="Quarterly">Quarterly
<br></td>
</tr>
<tr>
<td align=center colspan=2>
<input type="submit" value="Submit"> <input type="reset" value="Reset">
</td>
</tr>
</table>
</center>
</form>
<%-- Form sadece post edildiğinde bean oluştur --%>
<%
if (request.getMethod().equals("POST")) {
%>
<jsp:useBean id="formHandler" class="com.jguru.FormBean">
<%-- setProperty etiketi oluşturulmalı ve set metodlarının introspection ile çağrılması sağlanmalıdır --%>
</jsp:useBean>
<p>
<hr>
<font color=red>
<b>You submitted:<P>
First Name:</b><br>
<%-- getProperty etiketi kullanılarak isim için get metodu çağrılmalıdır --%>
<br><b>Last Name:</b><br>
<%-- getProperty etiketi kullanılarak soyisim için get metodu çağrılmalıdır --%>
<br><b>Email:</b><br>
<%-- getProperty etiketi kullanılarak email için get metodu çağrılmalıdır --%>
<b>Languages:</b><br>
<%
String[] lang = formHandler.getLanguages();
if (!lang[0].equals("1")) {
out.println("<ul>");
for (int i=0; i<lang.length; i++)
out.println("<li>"+lang[i]);
out.println("</ul>");
} else out.println("Nothing was selected<br>");
%>
<b>Notification:</b><br>
<%-- getProperty etiketi kullanılarak notification için get metodu çağrılmalıdır --%>
<br>
<%
}
%>
</font>
</body>
</html>
Yapılacak işler
- Formu içeren JSP sayfası sunulmuştur.Formun kendi kendine bir POST işlemi yaptığına dikkat edilmelidir.FormBean JavaBean’i bir POST operasyonu yapıldığında örneklenmektedir.Introspection kullanılarak set metodları çağrılmalıdır.
- JSP sayfası TOMCAT içerisinde konuşlandırılmaıdır.
- FormBean.java adında özelliklerin form elemanları isimleri ile örtüştüğü bir bean oluşturulmalıdır.
- FormBean.java kaynak kodu derlenmelidir.
- Bean TOMCAT içerisine konuşlandırılmalıdır.
FORMBEAN.JAVA
FORM.JSP
JSP sayfasına TOMCAT içerisinde erişim geçekleştirdiğinizde karşınıza çıkacak olan ayfa izleyen şeklide olacaktır.
Form içerisinde verilerinize sunulan alanlara girdiğinizde hazırlamış olduğumuz kod girdiğiniz bilgileri size izleyen şekilde sunacaktır.
Dosya Listesi