转发和重定向的区别

转发:request

重定向:response

问题解析:

  • 重定向是浏览器发送请求并收到响应以后再次向一个新地址发送请求,转发是服务器收到请求后,为了完成响应,转到另一个资源(servlet)
  • 重定向中有两次对象请求,不共享数据,转发只产生一次请求对象且在组件中共享数据
  • 重定向后地址栏地址改变,转发后地址栏地址不变
  • 重定向的新地址可以是任意的地址,转发必须是同一个应用内的某个资源

问题扩展:

获取servlet的转发和重定向的方式是什么?

  • 转发的方式:
    • 通过HttpServletRequest的getRequestDispatcher()方法获得
    • 通过ServletContext 的getRequestDispatcher()方法获得
  • 重定向的方式:
    • 通过HttpServletResponse的sendRedirect()方法获得

实际应用:

  • 重定向可以实现图片的异步上传
  • 一般访问web-inf下面文件,只能利用转发来实现。
posted @ 2022-12-04 20:07  It小飞呀  阅读(45)  评论(0编辑  收藏  举报