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);
Yorumlar
Yorum Gönder