sendRedirect()
módszer átirányítja a választ egy másik erőforrásra. Ez a módszer valójában az ügyfelet (böngészőt) hozza létre, hogy új kérést hozzon létre az erőforráshoz. Az ügyfél láthatja az új url-t a böngészőben.
a sendRedirect() elfogadja a relatív URL-t, így a szerveren belüli vagy kívüli erőforrásokhoz juthat.
szervlet: sendRedirect () és Request Dispatcher
az átirányítás és a kérés diszpécser közötti fő különbség az, hogy az átirányítás miatt az ügyfél(böngésző) új kérést hoz létre az erőforrás eléréséhez, a felhasználó láthatja az új URL-t, míg a request dispatch az erőforrást ugyanabban a kérésben kapja meg, és az URL nem változik.
egy másik nagyon fontos különbség az, hogy a sendredirect() a válaszobjektumon működik, míg a kérés feladása a kérés objektumon működik.
példa a sendRedirect használatára()
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class MyServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { response.sendRedirect("https://www.studytonight.com"); } finally { out.close(); } }}
különbség a forward() és a sendRedirect között()
továbbítás () | küldésközvetlen() |
---|---|
szerver oldalon működik. | működik a kliens oldalon. |
mindig ugyanazt a kérés és válasz objektumot küldi. | mindig új kérést küld az objektumhoz. |
csak a szerveren belül működik. | a szerveren belül és kívül is működik. |
ebben a módszerben az összes feldolgozást a web container belsőleg kezeli. | ebben a módszerben az összes feldolgozást egy másik szervlet kezeli. |
ez gyorsabb. | lassabb. |
a forward() metódus használata a címsorban látható. | a forward() módszer cím nem látható a címsorban. |
requestdispatcher felület használható nyilatkozatot. | HttpServletResponse használják nyilatkozatot. |
nagyon hasznos az MVC tervezési mintában a közvetlen hozzáférés elrejtése. | az MVC tervezési mintában nem hasznos a közvetlen hozzáférés elrejtése. |
újra felhasználja az objektumot. | nem használja újra az objektumot. |
példa: kérés.getRequestDispacher (“servlet_1”).előre (kérés válasz); | példa: válasz.sendRedirect (“Servlet_1”); |