JSP Programı Örnekleri: Kayıt ve Giriş Formu

jsp örnek programlar

Bu eğitimde, JSP ile örnek programlar geliştirmeyi ve bu eğitimde MVC mimarisini uygulamayı anlatacağım.

Aşağıdaki program örnekleri geliştirilecektir:

  • Kayıt Formu
  • Giriş ve Çıkış Formu
  • JSP Formu

JSP aracılığıyla kayıt formunu kullanma

Kayıt formunda, isim, kullanıcı adı, şifre, adres, iletişim numarası vb. bilgilerin yer aldığı tüm bilgileri dolduracağınız bir formumuz olacak.

Bu form, uygulamaya kaydolmamıza yardımcı olacak. Tüm bilgilerimizi alıyorlar ve bir veritabanı veya önbellek.

Bu örnekte, aşağıdaki alanlara sahip olan "Guru Kayıt Formu"nu alacağız:

  1. İsim
  2. Soyisim
  3. Kullanıcı Adı
  4. Şifre
  5. Adres
  6. Sayı İletişim

Tüm bu bilgileri doldurduktan sonra gönder butonuna tıklıyoruz, bu butona tıkladığımızda tüm bilgiler kaydedilecektir.

Örnek 1: Register_1.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Registration Form</title>
</head>
<body>
<h1>Guru Register Form</h1>
<form action="guru_register" method="post">
			<table style="with: 50%">
				<tr>
					<td>First Name</td>
					<td><input type="text" name="first_name" /></td>
				</tr>
				<tr>
					<td>Last Name</td>
					<td><input type="text" name="last_name" /></td>
				</tr>
				<tr>
					<td>UserName</td>
					<td><input type="text" name="username" /></td>
				</tr>
					<tr>
					<td>Password</td>
					<td><input type="password" name="password" /></td>
				</tr>
				<tr>
					<td>Address</td>
					<td><input type="text" name="address" /></td>
				</tr>
				<tr>
					<td>Contact No</td>
					<td><input type="text" name="contact" /></td>
				</tr></table>
			<input type="submit" value="Submit" /></form>
</body>
</html>

Kodun açıklaması:

Kod Satırı 11: Burada action içeren bir form adı yani isteğin işleneceği servlet adını alıyoruz ve servlet adı guru_register.java. İstek POST yöntemiyle işlenecektir.

Kod Satırı 14-16: Burada giriş türünü metin olarak alıyoruz ve ad, addır

Kod Satırı 18-20: Burada giriş tipini metin ve isim soyadı olarak alıyoruz

Kod Satırı 22-24: Burada giriş tipini metin olarak alıyoruz ve isim kullanıcı adıdır

Kod Satırı 26-28: Burada giriş türünü şifre olarak alıyoruz (bu, yazıldığında şifreyi gizleyecektir) ve ismi şifre olarak alıyoruz

Kod Satırı 30-32: Burada giriş tipini metin, ismi ise adres olarak alıyoruz.

Kod Satırı 34-36: Burada giriş türünü metin olarak ve adı da kişi olarak alıyoruz

Kod Satırı 37: Burada gönder tipinde bir buton alıyoruz ve değer de gönderiliyor. Bu düğmeye tıklandığında eylem, istekte tüm parametre değerlerinin aktarılacağı ilgili guru_register sunucu uygulamasına gidecektir.

Örnek 2: Guru_register.java

package demotest;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class guru_register
 */
public class guru_register extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String first_name = request.getParameter("first_name");
		String last_name = request.getParameter("last_name");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String address = request.getParameter("address");
		String contact = request.getParameter("contact");
		
		if(first_name.isEmpty() || last_name.isEmpty() || username.isEmpty() || 
				password.isEmpty() || address.isEmpty() || contact.isEmpty())
		{
			RequestDispatcher req = request.getRequestDispatcher("register_1.jsp");
			req.include(request, response);
		}
		else
		{
			RequestDispatcher req = request.getRequestDispatcher("register_2.jsp");
			req.forward(request, response);
		}
	}

}

Kodun açıklaması:

Kod Satırı 14: Burada HttpServlet'i genişleten guru_servlet'i tanımlıyoruz.

Kod Satırı 18: Bu hareket doPost() Yukarıdaki JSP formundaki action özelliğinde POST'tan bahsettiğimizde çağrılacak olan yöntem.

Kod Satırı 20-25: Burada request.getParameter'ı kullanarak request i.efirst_name, last_name, kullanıcı adı, şifre, adres ve kişiden değerleri alıyoruz.

Kod Satırı 27-32: Burada request'ten getirilen parametrelerden herhangi birinin boş olup olmadığını kontrol ettiğimiz if koşulunu alıyoruz. Parametrelerden herhangi biri boşsa bu koşulu girecektir (first_name.isEmpty() || last_name.isEmpty || kullanıcı adı.isEmpty || şifre.isEmpty || adres.isEmpty || contact.isEmpty()) ve elimizde isteği Register_1.jsp'ye iletecek istek nesnesini kullanarak requestDispatcher nesnesini getirmek için. Burada istek ve yanıt nesnelerini de dahil ediyoruz.

Kod Satırı 33-37: Bu durum herhangi bir parametre boş olmadığında yürütülecektir. İsteği Register_2.jsp'ye iletecek request nesnesini kullanarak requestDispatcher nesnesini getirmemiz gerekecek. Burada istek ve yanıt nesnelerini iletiyoruz.

Örnek 3: Register_2.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Success Page</title>
</head>
<body>
           <a><b>Welcome User!!!!</b></a>
</body>
</html>

Kodun açıklaması:

Kod Satırı 10: Burada hoş geldiniz kullanıcı diyoruz. Bu JSP, tüm parametreler doldurulduğunda çağrılacaktır.

Yukarıdaki kodu çalıştırdığınızda aşağıdaki çıktıyı alırsınız:

JSP Aracılığıyla Kayıt Formunu Kullanma

JSP Aracılığıyla Kayıt Formunu Kullanma

Çıktı:

register_1.jsp'ye tıkladığımızda, ad, soyad, kullanıcı adı, parola, adres, iletişim gibi ayrıntıların yer aldığı bir form alacağız. Tüm ayrıntılar doldurulmuştur. Submit butonuna tıkladığımızda "Welcome User" mesajını alırız.

Giriş ve çıkış formu

Kayıt formu gibi bir giriş ve çıkış formumuz olacak.

Bu örnekte, "kullanıcı adı" ve "şifre" olmak üzere iki alanımız ve gönder düğmesi bulunan Giriş formunu aldık.

Gönder butonuna tıkladığımızda çıkış butonunu içeren bir karşılama mesajı alıyoruz.

Çıkış butonuna tıkladığımızda giriş formuna geri dönüyoruz.

Örnek 1: Register_3.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Login Form</title>
</head>
<body>
<form action="guru_login" method="post">
		<table style="with: 50%">

			<tr>
				<td>UserName</td>
				<td><input type="text" name="username" /></td>
			</tr>
				<tr>
				<td>Password</td>
				<td><input type="password" name="password" /></td>
			</tr>
		</table>
		<input type="submit" value="Login" /></form>
</body>
</html>

Kodun açıklaması:

Kod Satırı 10: Burada eylem içeren bir form adı alıyoruz, yani geçtiği servlet guru_login.java'dır. POST'unu geçireceği yöntem.

Kod Satırı 13-16: Burada text türünden bir giriş alanı “kullanıcı adı” alıyoruz.

Kod Satırı 17-20: Burada “password” tipinde bir giriş alanı alıyoruz.

Kod Satırı 22: Burada “Login” değeri olan “submit” butonunu alıyoruz ve üzerine tıklıyoruz, ardından request nesnesi kullanılarak her iki alanın da alındığı servlet guru_login’e gidiyor.

Guru_login.java(sunucu uygulaması)

package demotest;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class guru_login
 */
public class guru_login extends HttpServlet {

    public guru_login() {
        super();
        // TODO Auto-generated constructor stub
    }

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		if(username.isEmpty() || password.isEmpty() )
		{
			RequestDispatcher req = request.getRequestDispatcher("register_3.jsp");
			req.include(request, response);
		}
		else
		{
			RequestDispatcher req = request.getRequestDispatcher("register_4.jsp");
			req.forward(request, response);
		}
	}

}

Kodun açıklaması:

Kod Satırı 5-9: Burada koddaki gerekli ithalatları içe aktarıyoruz.

Kod Satırı 14: Burada HttpServlet'i genişleten guru_login servlet'ini alıyoruz.

Kod Satırı 21: İşte kullanıyoruz doPost() Yöntemi formdaki gibi POST yöntemini kullanıyoruz.

Kod Satırı 23-24: Burada istek nesnesini yani kullanıcı adı ve şifreyi kullanarak parametreleri alıyoruz.

Kod Satırı 25-29: Bu şekilde kullanıcı adı ve şifrenin boş olup olmadığını kontrol ettiğimiz “if” koşulunu alıyoruz. Bu durumda eğer boş ise request ve answer nesneleriyle birlikte Register_3.jsp'ye ileten requestdispatcher nesnesini alıyoruz.

Kod Satırı 30-34: Bu, her ikisi de boş değilse yürütülür ve isteği, istek ve yanıt nesneleriyle birlikte Register_4.jsp'ye iletir.

Örnek 2: Register_4.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Logged In</title>
</head>
<body>
	<table style="with: 50%">
	<tr><td>
	<% String username = request.getParameter("username"); %>
<a>Welcome   <% out.println(username); %> User!!!! You have logged in.</a></td></tr>
<tr></tr><tr><td></td><td></td><td><a href="register_3.jsp"><b>Logout</b></a></td></tr>
</table>
</body>
</html>

Kodun açıklaması:

Kod Satırı 12: Burada kullanıcı adı string nesnesindeki request nesnesinden “username” parametresini alıyoruz.

Kod Satırı 13: Burada kullanıcı adını içeren bir hoş geldiniz mesajımız var.

Kod Satırı 14: Burada, Register_3.jsp'ye yönlendiren formdan çıkış bağlantısını veriyoruz.

Yukarıdaki kodu çalıştırdığınızda aşağıdaki çıktıyı alırsınız:

Çıktı:

Burada Register_3.jsp'ye tıkladığımızda giriş butonu ile birlikte “kullanıcı adı” ve “şifre” olmak üzere iki alan alıyoruz.

Giriş ve çıkış formu

Login butonuna tıkladıktan sonra Logout butonu ile aşağıdaki mesajı alırsınız.

Giriş ve çıkış formu

Çıkış butonuna tıkladığınızda giriş sayfasına geri dönersiniz

Giriş ve çıkış formu

getParameter() Kullanarak JSP Form İşleme

JSP Form İşleme:

Formlar web işlemede yaygın yöntemdir. Web sunucusuna bilgi ve bu bilgiyi göndermemiz gerekiyor.

Web sunucusuna bilgi göndermek ve geri almak için yaygın olarak kullanılan iki yöntem vardır.

GET Yöntemi:

  • Bu, tarayıcıdan web sunucusuna bilgi aktarmanın varsayılan yöntemidir.
  • Kodlanmış bilgiyi URL sayfasına eklenen ?karakteriyle ayırarak gönderir.
  • Ayrıca boyut sınırlaması da var ve istekte yalnızca 1024 karakter gönderebiliyoruz.
  • GET yöntemiyle şifre ve hassas bilgi göndermekten kaçınmalıyız.

POST Yöntemi:

  • Gönderi yöntemi, sunucuya bilgi göndermenin en güvenilir yöntemidir.
  • Bilgileri ayrı bir mesaj olarak gönderir.
  • URL'de ?'den sonra metin dizesi olarak gönderilir.
  • Genellikle hassas bilgileri göndermek için kullanılır.

JSP, form verisi işlemeyi aşağıdaki yöntemleri kullanarak gerçekleştirir:

  1. getParameter(): Form parametresinin değerini almak için kullanılır.
  2. getParameterValues(): Parametrelerin birden fazla değerini döndürmek için kullanılır.
  3. getParameterNames(): Parametre isimlerini almak için kullanılır.
  4. getInputStream(): İstemcinin gönderdiği ikili veriyi okumak için kullanılır.

Örnek:

Bu örnekte “kullanıcı adı” ve “şifre” olmak üzere iki alanlı ve gönder butonu olan bir form aldık.

Action_form.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Form</title>
</head>
<body>
<form action="action_form_process.jsp" method="GET">
UserName: <input type="text" name="username">
<br />
Password: <input type="text" name="password" />
<input type="submit" value="Submit" />
</form>
</body>
</html>

Action_form_process.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<h1>Form Processing</h1>

<p><b>Welcome User:</b>
   <%= request.getParameter("username")%>
</p>

</body>
</html>

Kodun açıklaması: Action_form.jsp

Kod Satırı 10: Burada bir form tanımladık ve bu form aracılığıyla eylemi başka bir yere aktardık. JSP. Action parametresine GET metodu ile işlenmesi gereken JSP'yi ekliyoruz.

Burada kullanıcı adı ve şifre gibi bilgileri iletmek için GET yöntemini kullanıyoruz.

Kod Satırı 11-14: Burada text alanları olan kullanıcı adı ve şifre gibi alanları alıyoruz ve kullanıcıdan girdi alıyoruz.

Bu giriş getParameter yöntemi kullanılarak getirilebilir. Ayrıca, alan değerlerini action_form_process.jsp dosyasına aktarmamıza yardımcı olan gönderme türü içeren gönder düğmemiz var.

Action_form_process.jsp

Kod Satırı 14: Burada istek nesnesinin getParameter yöntemini kullanarak action_form.jsp'den giriş alanlarının değerlerini alıyoruz.

Yukarıdaki kodu çalıştırdığımızda aşağıdaki çıktıyı alırız:

JSP Form İşleme

JSP Form İşleme

Çıktı:

Action_form.jsp'yi çalıştırdığımızda iki alanlı kullanıcı adı ve şifre ile bir gönder butonu içeren bir form alıyoruz. Daha sonra kullanıcı adı ve şifreyi girdikten sonra gönder butonuna tıklayabiliriz ve bir sonraki sayfaya geçerek Form işleme sayfası olarak çıktı verir. karşılama mesajı.

Bu yazıyı şu şekilde özetleyin: