Servlet ile Form Bilgilerini Okumak
Servlet Dersleri‘ne devam ediyoruz. Önceki dersimizde basit bir Servlet Örneği yapmıştık. (Buradan) . Bu yazımızda ise daha derinlere inmeye devam ediyoruz.
Html sayfamızdaki Form’dan bilgileri alacak olan bir Servlet örneği yapacağız.
Basit bir Html Form yapacağız bu form’da kullanıcıdan Ad, Soyad bilgilerini alacağız. Servlet bu formdan gelen bilgileri getParameter() metodu sayesinde alacağız. getParameter , HttpServetRequest’in bir metodudur. Formdan bilgileri doGet() ya da doPost() olarak alınır. Bunun belirlenmesi Html formumuzun gönderim şekli ile alakalıdır. getParameter medotu String değer alır. Aldığımız ya da gönderdiğimiz veriler String tipinde olacaktır. İlgili değişkenleri eğer integer veri tipine çevirmemiz gerekiyorsa aldıktan sonra çevirmemiz gerekmektedir.
getParameter metodu ile Servlet’imize bu bilgileri aldıktan sonra bu bilgileri okuma işlemleri getParameterValues() metodu ile yapılır.
Şimdi uygulamamızı yapmaya başlayalım. Yapacağımız iş öncelikle Html Formumuzu oluşturmak olacak.
Formuz bu şekilde olacaktır. Kodlarımıza bakalım.
<html> <head> <title>Form Bilgilerini alan Servlet</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div>Kullanıcı Bilgileri</div> <form action="http://localhost:8080/servlet/formservlet" method="get"> Adınız: <input type="text" name="Ad"></input> Soyadınız: <input type="text" name="Soyad"></input> <input type="submit" value="Gönder"></input> </form> </body> </html>
Formumuz tamamdır. Burada önemli olan yer
<form action="http://localhost:8080/servlet/formservlet" method="get">
kısmıdır. Get yöntemiyle Servletimize bu verileri göndereceğiz.
Şimdi sıra geldi Servlet’imizi yapmaya. Servletimizi yazalım ardından önemli noktaları inceleyelim.
package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * @author Burakkutbay.com */ public class Formservlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException{ res.setContentType("text/html"); PrintWriter out=res.getWriter(); out.print("<html><head><title>Sonuç Servlet"); out.print("</title></head><body>"); String isim; String soyisim; isim=req.getParameter("Ad"); soyisim=req.getParameter("Soyad"); out.print("Merhaba " + isim + " " + soyisim); out.print("</body></html>"); } }
Şimdi adım adım inceleyelim. İlk olarak yaptığmız şey Servletimizde kullanacağımız kütüphanelerimizi ekliyoruz.
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
Html formumuzda Get metodunu kullandığımız için Servletimizde doGet() metodunu kullanıyoruz.
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException{
Servlet geri döndüreceği tipi belirliyoruz.
res.setContentType("text/html");
Değişkenlerimizi tanımlıyoruz. Bu değişkenlerimiz bizim formdan alacağımız verileri bu değikenlere aktaracağız.
String isim; String soyisim;
Formdan veri almamızı sağlayan kod bloğuna geldi sıra. Bu blokta yapılan iş en yukarıda da anlattığım gibi HttpServletRequest’in metodu olan getParameter ile Html Formumuzdaki değerleri almamızı sağlamaktadır.
isim=req.getParameter("Ad"); soyisim=req.getParameter("Soyad");
Eğer boş bir değer gönderilirse bu değer null olacaktır. Bunun içinde bir kontrol yaptırabilirsiniz. Bu kontrolü bir if yardımı ile eğer getParameter ile aldığınız değer null ise programın hata vermesini önleyebilirsiniz.
Servletimize aldığımız değerleri ekrana yazdırmak ise oldukça kolay. Bu yazdırma işlemi ise;
out.print("Merhaba " + isim + " " + soyisim);
Şeklinde yazarak Form Bilgilerini Servlet’e aktararak işlemlerimizi gerçekleştirebilmekteyiz.
Servlet Yazılarına devam edeceğiz.
Bol kodlu günler.
devamı gelsin :C
Merhaba,
Sürekli HTTP Status 404 – Not Found hatası alıyorum. Intellij kullanıyorum. Sebebi ne olabilir acaba? Araştırdım çözemedim.