何时使用forward(),include()和sendRedirect()?

时间:2015-10-13 10:18:36

标签: java-ee servlets

我是Java EE env的新手,我阅读了很多课程来区分这三种方法,但大多数方法都包含定义......我需要一个具体的例子 使用这三种方法中的每一种?

  • 的sendRedirect()
  • 向前()
  • 包括()

3 个答案:

答案 0 :(得分:3)

何时使用此方法。

发送重定向

  

当您希望客户端启动完全新的请求时,该请求不完全取决于先前的操作。

转发

  

这是服务器端处理,客户端没有任何指示。   有两个条件   一:请求被完全处理并转发到像JSP这样的诱人技术来生成视图。   二:请求需要由另一个Servlet进一步处理,该servlet将决定最终输出。

包含

  

这可用于向另一个servlet发送请求以进行其他处理,但最终输出将由当前servlet决定。

希望这有助于。

答案 1 :(得分:1)

以下几点可以帮助您了解何时使用哪种方法:

<强>的sendRedirect()

  

这适用于客户端   它总是发送一个新的请求   它可以在服务器内外使用   示例:response.sendRedirect(“servlet2”);

转发()

  

forward()方法在服务器端工作   它将相同的请求和响应对象发送到另一个servlet   它只能在服务器内工作   示例:request.getRequestDispacher(“servlet2”)。forward(request,response);

包含()

  

include方法用于在翻译阶段包含文件   include指令的一个很好的例子是包含一个包含多页内容的公共页眉和页脚       或者在输入无效登录详细信息时加载相同的登录页面

答案 2 :(得分:0)

response.sendRedirect("servlet2")方法会将您重定向到另一个servlet。即servlet1 --> servlet2

  

您可以查看指示servlet2网址的网址。

request.getRequestDispatcher("servlet2").include(request, response)方法将包括servlet2页面和servlet1页面。即在servlet1本身中,您可以查看servlet的

  

您可以注意到显示servlet1网址的网址。

request.getRequestDispatcher("servlet2").forward(request, response)方法将在servlet1页面中显示servlet2页面。即在servlet1本身中,您正在查看servlet2 。它就像转发servlet一样。

  

您可以注意到显示servlet1网址的网址。

一般来说,Request Dispatcher属于HttpServletRequest&amp; sendRedirect属于HttpServletResponse 调度员在客户端维护 sendRedirect维护在服务器端。