美文网首页
转发与重定向

转发与重定向

作者: 旦暮何枯 | 来源:发表于2019-03-18 15:28 被阅读0次

请求转发

使用:forward 方法
流程:服务器将当前的request 和 response 对象交给指定的 web 组件处理
转发与重定向对浏览器不透明,浏览器视角:一次请求一次响应;地址栏 url 不变。

服务器端流程:

  • 获取转发对象 RequsetDispatcher
    • 从当前请求中获取转发对象,通过 HttpServletRequest 实现;
    • 通过servletContext 获取转发对象
  • 调用 转发对象的 forward 方法;

RequsetDispatcher 由 servlet 容器创建,封装一个由路径所标识的服务器资源。
有两个比较常用的方法, forward 和 include ;
include 方法让原组件和被转发到的组件都能输出响应信息

从当前请求中获取转发对象

RequestDispatcher rd = request.getRequestDispatcher("/servletFE");创建转发对象,设置转发路径
rd.forward(request,response);     // 转发

转发路径可以设置为绝对路径和相对路径,这里用的是绝对路径。

从 ServletContext 中获取转发对象

有两种获取方式,分别是通过转发对象名和转发路径;这里只能使用绝对路径;

所以一般为了避免失误,我们在通过路径获取转发对象的时候一般都是用绝对路径的

//        通过servletContext 获取转发对象; 有两种方式获取转发对象
        rd = this.getServletContext().getNamedDispatcher("ServletForwardEX");
        rd = this.getServletContext().getRequestDispatcher("/servletFE");
        rd.forward(request,response);     // 转发

请求重定向

通过 response 对象发送给浏览器一个新的 url 地址,让其重新请求;
即 两次请求两次响应

通过原请求的响应对象进行重定向

response.sendRedirect("servletRE");//设置请求重定向地址

重定向地址填写:
相对路径:重定向到项目资源
绝对路径:重定向到外部资源

总结

浏览器地址栏变化
请求范围

  • 请求转发: 只能在同一个 web-app 中
  • 重定向: 跨 web-app,服务器;重定位资源请求

请求过程

  • 请求转发:一次请求一次响应
  • 重定向: 两次请求两次响应
项目地址:https://github.com/wengfe/JAVA/tree/master/servletforward/src/main

相关文章

  • Servlet总结

    Servlet问题总结: 1.Servlet重定向与转发的区别?哪个是重定向?哪个是转发? 答:转发 reque...

  • Servlet入门(五)

    重定向与转发的区别: 1.重定向访问服务器两次,转发只访问服务器一次。 2.重定向可以看见目标页面的URL,转发只...

  • struts-default常用的跳转结果类型

    dispatcher 转发,不指定默认为转发 redirect 重定向 redirectAction 重定向...

  • 重定向与转发

    请求重定向与请求转发的区别: 1.写法: 转发: request.getRequestsDispatcher.fo...

  • jsp内置对象 转发与重定向的区别

    jsp内置对象 转发与重定向的比较 重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的...

  • 转发&重定向

    转发和重定向转发: forwardreturn ”forward:list.do“;重定向: redirectre...

  • 转发与重定向

    在进行web开发中,通常要进行servlet和servlet之间的相互跳转。servlet的跳转可以将一个项目...

  • 重定向与转发

    307 request 转发 request与response 对象不会新建 地址栏信息不变 目的地:应用...

  • 转发与重定向

    转发: 点 代表的是当前类的地址 ,一般不适用 HttpServletRequest request 接收数据 重...

  • 转发与重定向

    请求转发 使用:forward 方法流程:服务器将当前的request 和 response 对象交给指定的 we...

网友评论

      本文标题:转发与重定向

      本文链接:https://www.haomeiwen.com/subject/lltbmqtx.html