我是Java EE env的新手,我阅读了很多课程来区分这三种方法,但大多数方法都包含定义......我需要一个具体的例子 使用这三种方法中的每一种?
答案 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维护在服务器端。