Servlet Ders04 - RequestDispatcher


   RequestDispatcher arayüzü bir isteği başka bir kaynağa yönlendirmeye veya isteğe bir kaynak eklemeye yarar.
Yönlendirme işlemi forward,
Kaynak ekleme işlemi include fonksiyonu ile yapılır.


Ön Bilgi
//RequestDispatcher nesnesi oluşturup kaynağı oraya yönlendirme
RequestDispatcher rd=request.getRequestDispatcher("/x.html");
rd.forward(request, response);

//RequestDispatcher nesnesi oluşturup ilgili kaynağı sayfaya dahil etme
RequestDispatcher rd=request.getRequestDispatcher("/x.html");
rd.include(request, response);

Servlet.java
package test;

import java.io.IOException;
import java.io.PrintWriter;

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

@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
 private static final long serialVersionUID = 1L;

 protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("text/html");
  PrintWriter out=response.getWriter();
  
  String ad=request.getParameter("ad");
  String sifre=request.getParameter("sifre");
  
  RequestDispatcher rd;
  
  if(ad.equals("enes")&sifre.equals("1234")){
   rd=request.getRequestDispatcher("/dogru.html");
   rd.forward(request, response);
  }
  else{
   
   rd=request.getRequestDispatcher("/index.html");
   rd.include(request, response);
   out.println("yanlis");
  }
  
  
 }

 protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request, response);
 }

} 

index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>RequestDispatcher</title>
</head>
<body>

<form action="Servlet" method="post">
Ad<br/>
<input type="text" name="ad"/><br/><br/>
Şifre<br/>
<input type="password" name="sifre"/><br/><br/>
<input type="submit" value="gonder"/>
</form>
</body>
</html>

dogru.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Dogru</title>
</head>
<body>
<h1>Dogru</h1>
</body>
</html>

Açıklamalar

@WebServlet("/Servlet")
//Bu Servlet urlsinin /Servlet olacağını belirtir.

response.setContentType("text/html");
//response içerik tipinin text/html türünde olduğunu belirtir 

PrintWriter out=response.getWriter();
//out nesnesi server tarafından çıktı üretilmek için oluşturulur.

request.getParameter("x");
//Formda girilen name="x" isimli parametrenin değerini alabilmek için kullanılır.

//RequestDispatcher nesnesi oluşturup kaynağı oraya yönlendirir.
RequestDispatcher rd=request.getRequestDispatcher("/x.html");
rd.forward(request, response);

//RequestDispatcher nesnesi oluşturup ilgili kaynağı sayfaya dahil eder.
RequestDispatcher rd=request.getRequestDispatcher("/x.html");
rd.include(request, response);

Servlet RequestDispatcher projesi oluşturma

Servlet RequestDispatcher projesi oluşturma

Servlet RequestDispatcher projesi oluşturma

Servlet RequestDispatcher projesi oluşturma

Yorumlar

Bu blogdaki popüler yayınlar

Java SE Ders24 - Composition (Kompozisyon)

Spring Ders20 - Aspect Oriented Programming - AspectJ Annotation Style

JSF Ders30 - Page Template (Sayfa Şablonu)