Mehmet Ethem SULAN :: Servlet ve JSP(Java Server Pages) :: Bir Servlet sayfasını Diğerine Sunucu Düzeyinde Yönlendirme(Servlet getRequestDispatcher() and forward())

Daha önce response.sendRedirect(“index.jsp”); ile yönlendirmeyi yapmıştım.Burada da request.getRequestDispatcher(“index.jsp”).forward(request, response); şeklinde getRequestDispatcher nesnesiyle sunucu düzeyinde yönlendirme sağlayabiliriz.Bu kullanımla sayfa içeriği değişmesine adres çubuğundaki değer değişmez.Bu nesne bu işlemi forward() metodyla gerçekleştirilir.Resimde parola görünsün diye text yaptım.

tanımlayabilirsiniz.

indexsayfanınResmi

package www.ethemsulan.com;
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;
public class KontrolServleti extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
 response.setContentType("text/html;charset=UTF-8");
   PrintWriter cikti = response.getWriter();
   String kulAd=request.getParameter("ad").trim();
   String kulPar=request.getParameter("parola").trim();
if(kulAd.equals("ethem")& kulPar.equals("sulan")){
   cikti.println("Yonlendiriliyorsunuz..");
//Dikkat servletin sadece ismini yaziyorsunuz yani .java yazmiyorsunuz.
//Çunku tarayıcı da sadece ismini kullanır ama
request.getRequestDispatcher("IslemlerServleti").
        forward(request, response);
        }else{
//jsp sayfasını belirtirken index.jap yanı uzantıyı belirtiyorsunuz.
//ya d ahtmlSayfaIsmi.html şeklinde uzantıyı belirtmeniz lazım.Çünkü
//Tarayıcı bu uzantıları kullanıyor.
request.getRequestDispatcher("index.jsp"
        ).forward(request, response);
//Bu şekilde de yönlendirme sağlanabilir.Ama tarayıcı adres
//çubuğundaki değer değişir.getRequestDispatcher nesnesi ait
//forward() metodu ile ile sayfa içeriği değişmesine rağmane yönlendirme
//sunucu düzeyinde olduğundan adres çubuğundaki değer değişmez.
        //response.sendRedirect("index.jsp");
        }
//Dikkat bu doPost() metodu bu şekilde tanımlanmalı.
//çünkü jsp den gelen değer POST ile formdan geliyor
  } }

Orj Kod:http://www.ethemsulan.pastebin.com/f5bd30aef

package www.ethemsulan.com;
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;
public class IslemlerServleti extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
   PrintWriter cikti = response.getWriter();
   cikti.println("Sisteme Giris Basarili");
    } }

Orj Kod:http://www.ethemsulan.pastebin.com/f6ce65e62

Comments

There is one comment for this post.

  1. Anonymous on Şubat 3, 2010 9:19 pm

    ethem hocam kodları fevkulade açıklıkta anlatıyorsun ve hepside herzaman işe yarıyacak kodlar ,eline sağlık. Eğer daha önceden ufak bir tecrüben yada bilgin var ise java ile kartlı geçiş sistemleri hakkında (Online Access Control System)önerebileceğin yada kendi tecrübeni aktarabilceğin bir kod deneyimin varmı ?

Write a Comment

Let me know what you think?