response.sendRedirect()和request.getRequestDispatcher()之间有什么区别.forward(request,response)

 309283099_882fa8 发布于 2023-02-12 23:30

当我使用JAVA时,我的页面跳转有问题,如果我使用:

response.sendRedirect("login.jsp")

然后我得到这个网址: http://localhost:8080/login.jsp

但是,如果我使用

request.getRequestDispathcer("login.jsp").forward(request, response)

然后我得到这个网址:( http://localhost:8080/Shopping/login.jsp"购物"是我模块的名称).

有什么不同?

4 个回答
  • 为了简单解释差异,

      response.sendRedirect("login.jsp");
    

    不预先添加contextpath(指的是捆绑servlet的应用程序/模块)

    但是,而

     request.getRequestDispathcer("login.jsp").forward(request, response);
    

    将添加相应应用程序的contextpath

    此外,Redirect请求用于将资源重定向到不同的服务器或域.控制任务的传输由容器委托给浏览器.也就是说,重定向将标头发送回浏览器/客户端.此标头包含要由浏览器重定向的资源URL.然后浏览器向给定的URL发起新请求.

    转发请求用于转发到进行呼叫的服务器内可用的资源.这种控制转移由容器内部完成,不涉及浏览器/客户端.

    2023-02-12 23:45 回答
  • 1.redirect从服务器返回请求到浏览器,然后从浏览器重新发送请求到服务器.

    2.forward将请求发送到另一个servlet(servlet到servlet).

    2023-02-12 23:48 回答
  • 向前

    控制可以转发到进行呼叫的服务器内可用的资源.这种控制转移由容器内部完成,不涉及浏览器/客户端.这是forward和sendRedirect之间的主要区别.转发完成后,如果需要,原始请求和响应对象将与其他参数一起传输.

    重定向

    控制可以重定向到不同服务器或域的资源.控制任务的传输由容器委托给浏览器.也就是说,重定向将标头发送回浏览器/客户端.此标头包含要由浏览器重定向的资源URL.然后浏览器向给定的URL发起新请求.由于它是一个新请求,旧请求和响应对象将丢失.

    例如,sendRedirect可以将控制权从http://google.com转移到http://anydomain.com,但转发无法执行此操作.

    "会话"在前进和重定向中都不会丢失.

    要直观地看到forward和sendRedirect之间的区别,请查看浏览器的地址栏,在转发中,您将看不到转发的地址(因为浏览器不涉及)重定向,您可以看到重定向的地址.

    2023-02-12 23:48 回答
  • 简单地说Forward(ServletRequest请求,ServletResponse响应)和sendRedirect(String url)之间的区别是

    向前():

      forward()方法在服务器端执行.

      请求将转移到同一服务器内的其他资源.

      它不依赖于客户端的请求协议,因为该forward ()方法由servlet容器提供.

      请求由目标资源共享.

      此方法仅消耗一个调用.

      它可以在服务器中使用.

      我们看不到转发的消息,它是透明的.

      forward()方法比sendRedirect()方法快.

      它在RequestDispatcher接口中声明.

    的sendRedirect():

      sendRedirect()方法在客户端执行.

      请求将转移到其他资源到不同的服务器.

      sendRedirect()方法是在下面提供的,HTTP它只能用于HTTP客户端.

      为目标资源创建新请求.

      消耗了两个请求和响应调用.

      它可以在服务器内外使用.

      我们可以看到重定向的地址,它不是透明的.

      sendRedirect()方法较慢,因为在创建新请求时,旧请求对象将丢失.

      它在宣布HttpServletResponse.

    2023-02-12 23:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有